Christophe Gisquet
5fdbfcb5b7
dcadsp: split lfe_dir cases
...
The x86 runs short on registers because numerous elements are not static.
In addition, splitting them allows more optimized code, at least for x86.
Arm asm changes by Janne Grunau.
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-02-07 22:54:18 +01:00
Christophe Gisquet
5b59a9fc61
x86: dcadsp: implement int8x8_fmul_int32
...
For the callable function (as opposed to the inline one):
C SSE SSE2 SSE4
Win32: 47 42 29 26
Win64: 30 33 25 23
The SSE version is neither compiled nor set for ARCH_X86_64, as the
inlinable function takes over.
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-02-07 22:52:40 +01:00
Christophe Gisquet
2bd44cb705
dcadsp: add int8x8_fmul_int32 to dsp context
...
It is currently declared as a macro who is set to inlinable functions,
among which a Neon and a default C implementations.
Add a DSP parameter to each inline function, unused except by the
default C implementation which calls a function from the DSP context.
On an Arrandale CPU, gain for an inlined SSE2 function vs. a call:
- Win32: 29 to 26 cycles
- Win64: 25 to 23 cycles
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-02-07 22:51:59 +01:00
Michael Niedermayer
ae01af2475
Merge commit '30d70e79a6b4ac7f4eb66446a9da275161ef6ea7'
...
* commit '30d70e79a6b4ac7f4eb66446a9da275161ef6ea7':
dcadec: set AV_FRAME_DATA_MATRIXENCODING side data.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-05 22:34:21 +01:00
Michael Niedermayer
bc7f76377c
Merge commit '6bfdb2de881372048be7fbda643417e1fd3ce93c'
...
* commit '6bfdb2de881372048be7fbda643417e1fd3ce93c':
dcadec: set the output channel mode more accurately.
Conflicts:
libavcodec/dcadec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-05 22:27:34 +01:00
Tim Walker
30d70e79a6
dcadec: set AV_FRAME_DATA_MATRIXENCODING side data.
2014-01-05 16:41:56 +01:00
Tim Walker
6bfdb2de88
dcadec: set the output channel mode more accurately.
...
When downmixing 2.1 to 2-channel, if the 2.0 portion is Lt/Rt, sum-difference or dual mono, the actual output will be the same (with the LFE either mixed-in or discarded).
Also, when downmixing an arbitrary layout to 2-channel, if the bitstream contains custom downmix coefficients targeting Lt/Rt, then the output will be Lt/Rt rather than regular Stereo.
2014-01-05 16:41:56 +01:00
Michael Niedermayer
b6a9719941
dcadec: Decode LFE to avoid adding random data when downmixing with LFE
...
Signed-off-by: Tim Walker <tdskywalker@gmail.com>
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-12-06 23:37:05 +01:00
Michael Niedermayer
a3b9f53d7b
Merge remote-tracking branch 'qatar/master'
...
* qatar/master:
dcadec: Add some logging before returning on error
Conflicts:
libavcodec/dcadec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-30 21:09:42 +01:00
Tim Walker
7dc827b709
dcadec: Add some logging before returning on error
...
Based on a patch by Michael Niedermayer.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2013-11-30 13:01:35 +01:00
Michael Niedermayer
6e7de11444
avcodec/dcadec: decode LFE so we dont just add random data when downmixing with LFE
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 14:13:05 +01:00
Michael Niedermayer
d2e46b11e4
avcodec/dcadec: set AV_CLASS_CATEGORY
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 04:56:37 +01:00
Michael Niedermayer
55bd20a841
avcodec/dcadec: AVClass is const
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 04:56:18 +01:00
Michael Niedermayer
5b3c684147
Merge remote-tracking branch 'qatar/master'
...
* qatar/master:
dcadec: add disable_xch private option.
Conflicts:
libavcodec/dcadec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 04:39:52 +01:00
Michael Niedermayer
3f41e57fa8
Merge commit '220494ad0b2e9e980ef703b46b69308236f29be5'
...
* commit '220494ad0b2e9e980ef703b46b69308236f29be5':
dcadec: treat all 2-channel modes as Stereo in dca_downmix.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 04:21:34 +01:00
Michael Niedermayer
97468463a2
Merge commit 'aaa44d0299338e3bc90128816c21dbfab06cdb48'
...
* commit 'aaa44d0299338e3bc90128816c21dbfab06cdb48':
dca: support mixing LFE in dca_downmix.
Conflicts:
libavcodec/dcadec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 04:00:59 +01:00
Michael Niedermayer
12235a3ed2
avcodec/dcadec: print more details about errors
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 03:42:03 +01:00
Michael Niedermayer
43ec456320
Merge commit '44b17d794aa508ae21f438ae80bfe8aaf4b426e1'
...
* commit '44b17d794aa508ae21f438ae80bfe8aaf4b426e1':
dca: extract core substream's embedded downmix coeffcient codes, if present.
Conflicts:
libavcodec/dcadata.h
libavcodec/dcadec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 03:28:15 +01:00
Michael Niedermayer
c122e697fa
Merge commit '27245b4e1bbb7a863341db321b5bdc5792e427d9'
...
* commit '27245b4e1bbb7a863341db321b5bdc5792e427d9':
dca: remove embedded downmix coefficient extraction.
Conflicts:
libavcodec/dcadata.h
libavcodec/dcadec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 01:12:02 +01:00
Michael Niedermayer
a7f8817720
Merge commit 'b6d5e6aa10a2f09351f287e876f7ed4504e1f75d'
...
* commit 'b6d5e6aa10a2f09351f287e876f7ed4504e1f75d':
dca: convert dca_default_coeffs to float.
Conflicts:
libavcodec/dcadata.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 00:32:14 +01:00
Michael Niedermayer
e9a47896a0
Merge commit '25609b63d2e07d26d610f485a22082d32c96c0f5'
...
* commit '25609b63d2e07d26d610f485a22082d32c96c0f5':
dcadec: store the stereo downmix coefficients as float in the DCAContext.
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 00:24:41 +01:00
Michael Niedermayer
cb751a6a96
Merge commit '89de5157b1cbe7807d3ec1d51bd56a75e98c002e'
...
* commit '89de5157b1cbe7807d3ec1d51bd56a75e98c002e':
dcadec: implement request_channel_layout.
Conflicts:
libavcodec/dcadec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-29 00:18:42 +01:00
Tim Walker
3c8507a845
dcadec: add disable_xch private option.
...
This supplements the deprecated request_channels-based control of XCh decoding.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-28 22:02:53 +01:00
Tim Walker
220494ad0b
dcadec: treat all 2-channel modes as Stereo in dca_downmix.
...
The check for (prim_channels > 2) before calling dca_downmix made these
cases unreachable, but now 2.1 layouts will go through the downmix code.
Having dual mono, Lt/Rt and sum-difference layouts print errors when
regular Stereo doesn't seems pointless.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-28 22:02:53 +01:00
Tim Walker
aaa44d0299
dca: support mixing LFE in dca_downmix.
...
Embedded downmix coefficients can use this.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-28 22:02:53 +01:00
Tim Walker
44b17d794a
dca: extract core substream's embedded downmix coeffcient codes, if present.
...
As per ETSI TS 102 114 V1.4.1 specification.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-28 22:02:53 +01:00
Tim Walker
27245b4e1b
dca: remove embedded downmix coefficient extraction.
...
It was based on an old, seemingly incorrect specification, so default
coefficients were always used anyway.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-28 22:02:50 +01:00
Tim Walker
b6d5e6aa10
dca: convert dca_default_coeffs to float.
...
Easier to read, modify, and avoids relying on an outdated table.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-28 21:38:22 +01:00
Tim Walker
25609b63d2
dcadec: store the stereo downmix coefficients as float in the DCAContext.
...
The 7-bit codes previously used are absent from the ETSI 102 114 V1.4.1 spec.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-28 21:35:22 +01:00
Tim Walker
89de5157b1
dcadec: implement request_channel_layout.
...
Signed-off-by: Anton Khirnov <anton@khirnov.net>
2013-11-28 21:10:29 +01:00
Michael Niedermayer
8540368582
Merge commit '37a3cac78c6b13dc4e2c4f33ef53eed722d6f7b9'
...
* commit '37a3cac78c6b13dc4e2c4f33ef53eed722d6f7b9':
dcadec: simplify an expression
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-11-19 04:09:03 +01:00
Tim Walker
37a3cac78c
dcadec: simplify an expression
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2013-11-19 02:02:49 +01:00
Michael Niedermayer
ee77140afa
Merge commit 'b2bed9325dbd6be0da1d91ffed3f513c40274fd2'
...
* commit 'b2bed9325dbd6be0da1d91ffed3f513c40274fd2':
cosmetics: Group .name and .long_name together in codec/format declarations
Conflicts:
libavcodec/8svx.c
libavcodec/alac.c
libavcodec/cljr.c
libavcodec/dnxhddec.c
libavcodec/dnxhdenc.c
libavcodec/dpxenc.c
libavcodec/dvdec.c
libavcodec/dvdsubdec.c
libavcodec/dvdsubenc.c
libavcodec/ffv1dec.c
libavcodec/flacdec.c
libavcodec/flvdec.c
libavcodec/fraps.c
libavcodec/frwu.c
libavcodec/g726.c
libavcodec/gif.c
libavcodec/gifdec.c
libavcodec/h261dec.c
libavcodec/h263dec.c
libavcodec/iff.c
libavcodec/imc.c
libavcodec/libopencore-amr.c
libavcodec/libopenjpegdec.c
libavcodec/libopenjpegenc.c
libavcodec/libspeexenc.c
libavcodec/libvo-amrwbenc.c
libavcodec/libvorbisenc.c
libavcodec/libvpxenc.c
libavcodec/libx264.c
libavcodec/libxavs.c
libavcodec/libxvid.c
libavcodec/ljpegenc.c
libavcodec/mjpegbdec.c
libavcodec/mjpegdec.c
libavcodec/mpeg12dec.c
libavcodec/mpeg4videodec.c
libavcodec/msmpeg4dec.c
libavcodec/pgssubdec.c
libavcodec/pngdec.c
libavcodec/pngenc.c
libavcodec/proresdec_lgpl.c
libavcodec/proresenc_kostya.c
libavcodec/ra144enc.c
libavcodec/rawdec.c
libavcodec/rv10.c
libavcodec/sp5xdec.c
libavcodec/takdec.c
libavcodec/tta.c
libavcodec/v210dec.c
libavcodec/vp6.c
libavcodec/wavpack.c
libavcodec/xbmenc.c
libavcodec/yop.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-10-04 12:34:23 +02:00
Diego Biurrun
b2bed9325d
cosmetics: Group .name and .long_name together in codec/format declarations
2013-10-03 23:32:01 +02:00
Michael Niedermayer
8c320b3c08
Merge commit 'a9d50bb578ec04c085a25f1e023f75e0e4499d5e'
...
* commit 'a9d50bb578ec04c085a25f1e023f75e0e4499d5e':
dcadec: Validate the lfe parameter
Conflicts:
libavcodec/dcadec.c
See: 3b2cd83a829e01a603b52fdc058a054b7899d06e
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-09-20 15:37:55 +02:00
Martin Storsjö
a9d50bb578
dcadec: Validate the lfe parameter
...
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-09-20 14:14:45 +03:00
Michael Niedermayer
366e415836
Merge commit '800ffab48a7844dd5dc0a33b8f6b8e5ed718cf2e'
...
* commit '800ffab48a7844dd5dc0a33b8f6b8e5ed718cf2e':
dcadsp: Add a new method, qmf_32_subbands
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-22 12:10:59 +02:00
Michael Niedermayer
1573274b91
Merge commit '26ffcc7de1d98f77400a2ebe4e75055515c54587'
...
* commit '26ffcc7de1d98f77400a2ebe4e75055515c54587':
dcadec: Use int32_to_float_fmul_array8
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-22 11:48:43 +02:00
Ben Avison
800ffab48a
dcadsp: Add a new method, qmf_32_subbands
...
This does most of the work formerly carried out by
the static function qmf_32_subbands() in dcadec.c.
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-07-22 10:15:42 +03:00
Ben Avison
26ffcc7de1
dcadec: Use int32_to_float_fmul_array8
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-07-22 10:15:35 +03:00
Christophe Gisquet
b6293e2798
fmtconvert: Explicitly use int32_t instead of int
...
Signed-off-by: Martin Storsjö <martin@martin.st>
2013-07-17 11:02:47 +03:00
Michael Niedermayer
cce254373c
Merge commit '3802833bc1f79775a1547c5e427fed6e92b77e53'
...
* commit '3802833bc1f79775a1547c5e427fed6e92b77e53':
dca: Respect the current limits in the downmixing capabilities
Conflicts:
libavcodec/dcadec.c
See: 8e77c3846e91b1af9df4084736257d9899156eef
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-12 14:49:27 +02:00
Michael Niedermayer
107a56c1ed
Merge commit 'f261e508459e28beca59868a878e1519a44bb678'
...
* commit 'f261e508459e28beca59868a878e1519a44bb678':
dca: Error out on missing DSYNC
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-07-12 14:13:22 +02:00
Luca Barbato
3802833bc1
dca: Respect the current limits in the downmixing capabilities
...
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2013-07-12 04:34:49 +02:00
Luca Barbato
f261e50845
dca: Error out on missing DSYNC
...
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2013-07-12 04:34:49 +02:00
Christophe Gisquet
f49564c607
fmtconvert: int32_t input to int32_to_float_fmul_scalar
...
It was previously declared as int.
Does not change fate results for x86.
Conflicts:
libavcodec/ppc/fmtconvert_altivec.c
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2013-05-18 18:01:16 +02:00
Paul B Mahol
aa96439fae
lavc: remove unused put_bits.h headers
...
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-04-24 23:17:09 +00:00
Michael Niedermayer
b1064dd783
Merge commit '1db6a080bddd14fed6b29140ecd2e21e42b1c022'
...
* commit '1db6a080bddd14fed6b29140ecd2e21e42b1c022':
dca: Move ff_dca_convert_bitstream() to the DCA common code
vdpau: wrap codec specific functions in appropiate #ifs
Conflicts:
libavcodec/Makefile
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2013-03-28 11:18:23 +01:00
Diego Biurrun
1db6a080bd
dca: Move ff_dca_convert_bitstream() to the DCA common code
...
This makes the DCA parser and decoder independent.
2013-03-27 14:21:45 +01:00
Paul B Mahol
a9b424879f
lavc & lavf: replace deprecated av_log* functions
...
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2013-03-15 18:10:28 +00:00