Commit Graph

158 Commits

Author SHA1 Message Date
Andrew Wason
e9b1d5ae5e fix swr_convert buffering of packed audio
swr_convert is not properly buffering packed input audio when the
output is not large enough, and when resampling is not actually needed
(same samplerate and no SWR_FLAG_RESAMPLE).

buf_set() is only handling the first channel and leaving the others as-is.

Sample program to reproduce the problem is here https://gist.github.com/2431768

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-21 01:57:21 +02:00
Michael Niedermayer
44239bd9f2 swr: add a swr_flags AVOption
Using swr_flags instead of plain flags will avoid conflicts that
arise with plain flags and multiple libs (which all have AVOption flags)

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-11 14:10:22 +02:00
Michael Niedermayer
c1d404b9e4 swr: add a dither_scale parameter to tune the amplitude of the dither.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-11 13:44:48 +02:00
Michael Niedermayer
a2c92e6063 swr: pass context to swri_get_dither()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-11 13:44:15 +02:00
Michael Niedermayer
f8a237a307 swr: add triangular highpass dither
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-11 13:27:22 +02:00
Michael Niedermayer
1fc4ff2205 swr: generate more dither noise to improve quality.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-11 13:26:32 +02:00
Michael Niedermayer
22057e8ecb swr: add swr_get_class()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-11 13:25:56 +02:00
Michael Niedermayer
b1ef4dc406 swr: add triangular dither support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-10 21:18:33 +02:00
Michael Niedermayer
0cff3e130b swr: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-10 21:18:32 +02:00
Michael Niedermayer
0170889372 swr: add SWR_DITHER_RECTANGULAR to AVOptions array
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-10 21:18:32 +02:00
Michael Niedermayer
db2eadb2f5 swr: add dither support.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-10 19:54:41 +02:00
Michael Niedermayer
3d9338b1c2 swr: support int32 and float as internal sample formats
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-10 13:19:29 +02:00
Michael Niedermayer
7f1ae79d38 swr: support float & int32 in the resampler
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-10 13:18:49 +02:00
Michael Niedermayer
87688727e4 swr: remove unused variable
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-01 22:11:34 +02:00
Michael Niedermayer
dc984da961 swr: fix pointer type warnings
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-04-01 22:10:40 +02:00
Michael Niedermayer
59b038b4a4 swr: realloc_audio: support packed audio buffers
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-25 21:50:00 +02:00
Michael Niedermayer
1b0fcf33b8 swr: More flexible and convenient buffering
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-25 21:49:42 +02:00
Michael Niedermayer
e0c7128302 swr: fix segfault when 0 out size is used.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-25 12:22:06 +02:00
Michael Niedermayer
8b11ae8a9a swr: Fix partial flushing.
Found-by: durandal_1707
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-25 06:37:01 +02:00
Michael Niedermayer
4f16153d35 swr: allow flushing in multiple steps if the output is too small.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-25 03:33:06 +02:00
Michael Niedermayer
ae03b2141e swr: check that there is enough information to do rematrixing when needed.
Fixes assertion failure.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-23 12:10:08 +01:00
Lou Logan
2d38081b4f cosmetics: fix some typos
Patch attached.
From 2d4094fc0dcb4ccd0735eb7e1719e228ebb56bb9 Mon Sep 17 00:00:00 2001
From: Lou Logan <lou@lrcd.com>
Date: Mon, 12 Mar 2012 14:13:44 -0800
Subject: [PATCH] cosmetics: fix some typos

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2012-03-13 01:14:04 +01:00
Nicolas George
560b224f53 libswr: allow to set custom matrices. 2012-02-20 20:46:35 +01:00
Michael Niedermayer
320b8d6335 swr: fix swresample_version()
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-12-23 23:26:02 +01:00
Michael Niedermayer
3339f87dbd swr: increase LIBSWRESAMPLE_VERSION_MICRO to 100
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-12-22 03:09:41 +01:00
Michael Niedermayer
4468ad827a swr: add swresample_version swresample_configuration and swresample_license
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-12-22 03:08:47 +01:00
Michael Niedermayer
aa1c590b29 swr: fix assert failure
Bug found by: Oana Stratulat
GCI-id: 7211207

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-12-20 11:28:34 +01:00
Clément Bœsch
0232f788b6 swr: fix invalid sample format message.
If the sample format is invalid, av_get_sample_fmt_name() will always
return NULL.
2011-11-24 16:55:45 +01:00
Clément Bœsch
58205edcc6 swr: use native planar sample formats. 2011-11-24 16:55:45 +01:00
Clément Bœsch
afb0470a25 swr: fix test program.
The number of used channels need to be reset to zero when
swr_alloc_set_opts() is called successive times.

This is a regression introduced in c8136ebd.
2011-11-24 16:55:44 +01:00
Clément Bœsch
bdd22e3523 swr: change minimum I/O channel count to zero.
This will silence the warning of av_set_opt_int() in swr for
input/output channels when the layout is not yet defined (or supported).
2011-11-20 16:06:16 +01:00
Clément Bœsch
0bfc03df3a swr: move code to avoid resample forward declaration. 2011-11-17 18:30:03 +01:00
Clément Bœsch
eafa2b6005 swr: introduce a public function to customize the channel mapping. 2011-11-17 18:30:03 +01:00
Clément Bœsch
1dbd433f0d swr: use av_opt_set_int() instead of manual assignments in swr_alloc_set_opts(). 2011-11-17 17:57:20 +01:00
Clément Bœsch
acd56efbeb swr: correctly raise rematrix AVERROR. 2011-11-17 17:56:52 +01:00
Clément Bœsch
a768b9d825 swr: make swr_* functions match the prototypes. 2011-11-17 10:16:07 +01:00
Clément Bœsch
645c61fb2b swr: rename swr_alloc2() to swr_alloc_set_opts(). 2011-11-17 10:16:07 +01:00
Clément Bœsch
c4deb90cfa swr: use "swri_" prefix instead of "swr_" for the private API. 2011-11-17 10:16:07 +01:00
Clément Bœsch
fc6351d019 swr: make audio convert code explicitely private.
Only what's declared in libswresample/swresample.h is public.
2011-11-17 10:16:07 +01:00
Clément Bœsch
df72ae673f swr: replace deprecated av_set_int() with av_opt_set_int(). 2011-11-16 07:27:20 +01:00
Clément Bœsch
ad561b5707 swr: replace deprecated av_opt_set_defaults2() with av_opt_set_defaults(). 2011-11-16 07:27:20 +01:00
Clément Bœsch
180aa82c1d swr: replace deprecated av_get_bits_per_sample_fmt() with av_get_bytes_per_sample(). 2011-11-16 07:27:20 +01:00
Clément Bœsch
f9368466c4 swr: use designated initializers for the class. 2011-11-16 07:27:20 +01:00
Clément Bœsch
c8136ebd6a swr: set the default used_ch_count value to zero.
This allows an appropriate behaviour when it is not specified (fallback
to the number of input channels).

Fixes Ticket523
2011-11-14 22:11:28 +01:00
Clément Bœsch
f5cd136f2b ffmpeg: add -map_channel option.
Based on an initial work by Baptiste Coudurier.
2011-11-04 19:40:32 +01:00
Michael Niedermayer
71f5712cb5 swr: Support flushing last samples out.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-11-04 16:31:51 +01:00
Michael Niedermayer
2f86566a31 rematrix: add parameter to tune volume
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-26 00:46:46 +02:00
Michael Niedermayer
44a2bb75a7 swr: Fix swresample.c:293:5: warning: passing argument 2 of ‘fill_audiodata’ from incompatible pointer type
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-21 00:36:00 +02:00
Michael Niedermayer
36e5e51ae3 swr: remove unused variable.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-21 00:34:37 +02:00
Clément Bœsch
539399d4d1 AVOptions: rename remaining FF_OPT_TYPE_* to AV_OPT_TYPE_*. 2011-10-17 07:33:10 +02:00
Carl Eugen Hoyos
7f16ec61e1 Do not warn about wrong channel layout if no channel layout is defined. 2011-10-16 17:12:53 +02:00
Marton Balint
177ed7e818 swresample: use av_get_default_channel_layout instead of guess_layout
Signed-off-by: Marton Balint <cus@passwd.hu>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-07 02:53:18 +02:00
Michael Niedermayer
67b2df792f swresample: Try to handle cases with input channel count and layout mismatching.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-06 20:21:40 +02:00
Michael Niedermayer
503e5e9db5 libswresample: support directly converting sampleformats and packed/planar in a single pass.
Previously a intermediate planar format was used when both input and output where packed.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-06 00:07:03 +02:00
Michael Niedermayer
834b3760a7 swresample: check for invalid sample formats.
Bug-Found-by: Justin Ruggles
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-01 01:39:17 +02:00
Michael Niedermayer
a75b254c74 swr: minor fixes to get planar audio working
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-10-01 01:17:39 +02:00
Nicolas George
b592f9bb65 swresample: remove unused variable.
Signed-off-by: Nicolas George <nicolas.george@normalesup.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-28 16:11:01 +02:00
Michael Niedermayer
b5875b9111 Add libswresample.
Similar to libswscale this does resampling and format convertion, just for audio
instead of video.
changing sampling rate, sample formats, channel layouts and sample packing all
in one with a very simple public interface.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2011-09-19 07:04:17 +02:00