Commit Graph

65 Commits

Author SHA1 Message Date
Justin Ruggles
10e645e9cb lavr: handle clipping in the float to s32 conversion
We cannot clip to INT_MAX because that value cannot be exactly
represented by a float value and ends up overflowing during conversion
anyway. We need to use a slightly smaller float value, which ends up
with slightly inaccurate results for samples which clip or nearly clip,
but it is close enough. Using doubles as intermediates in the conversion
would be more accurate, but it takes about twice as much time.

Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2012-10-13 12:34:34 +02:00
Anton Khirnov
006afc7a0b lavr: bump major to 1 and declare it stable. 2012-10-05 13:50:13 +02:00
Anton Khirnov
e7ba5b1de0 lavr: change the type of the data buffers to uint8_t**.
This is more consistent with what the rest of Libav does.

This breaks API.
2012-10-05 13:49:44 +02:00
Mans Rullgard
8ff7857861 ARM: libavresample: NEON optimised generic fltp to s16 conversion
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-13 19:15:43 +01:00
Mans Rullgard
d26de339af ARM: libavresample: NEON optimised stereo fltp to s16 conversion
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-13 19:15:43 +01:00
Mans Rullgard
643b5b794f ARM: libavresample: NEON optimised flat float to s16 conversion
Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-09-13 19:15:42 +01:00
Tim Walker
b901c30da6 lavr/audio_mix_matrix: acknowledge the existence of LFE2.
Signed-off-by: Justin Ruggles <justin.ruggles@gmail.com>
2012-09-12 18:26:53 -04:00
Diego Biurrun
e0c6cce447 x86: Replace checks for CPU extensions and flags by convenience macros
This separates code relying on inline from that relying on external
assembly and fixes instances where the coalesced check was incorrect.
2012-09-08 18:18:34 +02:00
Martin Storsjö
c7b610aa0b avopt: Explicitly store float/double option defaults in .dbl
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-04 23:13:51 +03:00
Martin Storsjö
e6153f173a avopt: Store defaults for AV_OPT_TYPE_INT in the i64 union member
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-04 23:13:44 +03:00
Martin Storsjö
124134e424 avopt: Store defaults for AV_OPT_TYPE_CONST in the i64 union member
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-09-04 23:13:32 +03:00
Diego Biurrun
17337f54c0 x86: Split inline and external assembly #ifdefs 2012-08-31 01:53:25 +02:00
Diego Biurrun
a886b279a0 x86: cosmetics: Comment some #endifs for better readability 2012-08-30 18:50:33 +02:00
Anton Khirnov
4d7adec8bd AVOptions: store defaults for INT64 options in int64 union member.
Double does not have enough precision to represent all int64 numbers
exactly.
2012-08-24 11:25:06 +02:00
Justin Ruggles
06e751a40f lavr: x86: optimized 6-channel flt to fltp conversion 2012-08-23 20:10:57 -04:00
Justin Ruggles
e07c9705c8 lavr: x86: optimized 2-channel flt to fltp conversion 2012-08-23 20:10:57 -04:00
Justin Ruggles
5245c9f3ad lavr: x86: optimized 6-channel flt to s16p conversion 2012-08-23 20:10:57 -04:00
Justin Ruggles
31d0d7181d lavr: x86: optimized 2-channel flt to s16p conversion 2012-08-23 20:10:57 -04:00
Justin Ruggles
6092dafb5a lavr: x86: optimized 6-channel s16 to fltp conversion 2012-08-23 20:10:57 -04:00
Justin Ruggles
91851a7b37 lavr: x86: optimized 2-channel s16 to fltp conversion 2012-08-23 20:10:57 -04:00
Justin Ruggles
205ace8843 lavr: x86: optimized 6-channel s16 to s16p conversion 2012-08-23 20:10:57 -04:00
Justin Ruggles
8eeffa8ada lavr: x86: optimized 2-channel s16 to s16p conversion 2012-08-23 20:10:57 -04:00
Justin Ruggles
b66e20d2aa lavr: x86: optimized 2-channel fltp to flt conversion 2012-08-23 20:10:56 -04:00
Justin Ruggles
d5b4e50c47 lavr: x86: optimized 6-channel fltp to s16 conversion 2012-08-23 20:10:56 -04:00
Justin Ruggles
a58a013980 lavr: x86: optimized 2-channel fltp to s16 conversion 2012-08-23 20:10:56 -04:00
Justin Ruggles
90cc27f813 lavr: x86: optimized 6-channel s16p to flt conversion 2012-08-23 20:10:56 -04:00
Justin Ruggles
46f929adad lavr: x86: optimized 2-channel s16p to flt conversion 2012-08-23 20:10:56 -04:00
Justin Ruggles
13df7d2d40 lavr: x86: optimized 6-channel s16p to s16 conversion 2012-08-23 20:10:56 -04:00
Justin Ruggles
c0e12535aa lavr: x86: optimized 2-channel s16p to s16 conversion 2012-08-23 20:10:56 -04:00
Martin Storsjö
1d9c2dc89a Don't include common.h from avutil.h
Signed-off-by: Martin Storsjö <martin@martin.st>
2012-08-15 22:32:06 +03:00
John Stebbins
4cf4028331 libavresample: add mix level normalization option
Provides an option to disable mix level normalization

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-08-14 23:36:56 +02:00
Diego Biurrun
3aa696e883 avresample: De-doxygenize some comments where Doxygen is not appropriate 2012-08-11 20:22:01 +02:00
Diego Biurrun
804d7a1aa6 doxygen: Fix function parameter names to match the code 2012-08-09 20:05:55 +02:00
Mans Rullgard
a3df4781f4 x86: add colons after labels
nasm prints a warning if the colon is missing.

Signed-off-by: Mans Rullgard <mans@mansr.com>
2012-08-07 15:20:56 +01:00
Justin Ruggles
8821ae649e lavr: fix handling of custom mix matrices
Adds some validation for changing parameters after setting the matrix and
fixes a bug in the conversion path setup.
2012-08-04 10:28:22 -04:00
Justin Ruggles
e9da9a3111 lavr: x86: improve non-SSE4 version of S16_TO_S32_SX macro
Removes a false dependency on existing contents of the 2nd dst register,
giving better performance for OOE.
2012-07-27 14:21:32 -04:00
Justin Ruggles
2f096bb10e lavr: add x86-optimized mixing functions
Adds optimized functions for mixing 3 through 8 input channels to 1 and 2
output channels in fltp or s16p format with flt coeffs.
2012-07-27 11:25:48 -04:00
Ronald S. Bultje
30b45d9c38 x86inc: automatically insert vzeroupper for YMM functions. 2012-07-26 13:43:16 -07:00
Justin Ruggles
0dadf9d1e9 lavr: x86: add missing vzeroupper in ff_mix_1_to_2_fltp_flt() 2012-07-25 15:41:25 -04:00
Justin Ruggles
6410397600 lavr: resampling: add support for s32p, fltp, and dblp internal sample formats
Based partially on implementation by Michael Niedermayer <michaelni@gmx.at> in
libswresample in FFmpeg. See commits:
7f1ae79d38
24ab1abfb6
2012-07-08 15:22:11 -04:00
Justin Ruggles
372647aed0 lavr: resampling: add filter type and Kaiser window beta to AVOptions 2012-07-08 15:22:11 -04:00
Justin Ruggles
8ca08066fc lavr: Use AV_SAMPLE_FMT_NONE to auto-select the internal sample format
Also make this the default value.
2012-07-08 15:22:11 -04:00
Justin Ruggles
db0e7bd0bd lavr: mix: validate internal sample format in ff_audio_mix_init() 2012-07-08 15:22:11 -04:00
Diego Biurrun
2047e40e6e Clarify Doxygen comment for FF_API_* #defines. 2012-07-04 15:10:10 +02:00
Justin Ruggles
acd9948e74 lavr: x86: fix ff_conv_fltp_to_flt_6ch function prototypes
Changed to match the number of parameters in conv_func_interleave(), which is
how they are called. The change isn't strictly necessary because the 4th
parameter is not used, but the code is clearer if they match.
2012-06-26 12:29:35 -04:00
Justin Ruggles
14a34d90ad lavr: x86: merge some branches 2012-06-25 13:49:18 -04:00
Justin Ruggles
4e4dd71730 lavr: Add x86-optimized function for flt to s32 conversion 2012-06-18 16:16:59 -04:00
Justin Ruggles
6c63cbfe7a lavr: Add x86-optimized function for flt to s16 conversion 2012-06-18 16:16:59 -04:00
Justin Ruggles
97ce1ba867 lavr: Add x86-optimized functions for s32 to flt conversion 2012-06-18 16:16:59 -04:00
Justin Ruggles
5904f25b9f lavr: Add x86-optimized functions for s32 to s16 conversion 2012-06-18 16:16:59 -04:00