Michael Niedermayer
c55e637072
avcodec/ac3dec: Fix: runtime error: index -1 out of bounds for type 'INTFLOAT [2]'
...
It seems dual mono with a LFE channel is not forbidden
Fixes: 1570/clusterfuzz-testcase-minimized-6455337349545984
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-05-14 15:30:08 +02:00
Michael Niedermayer
9351a156de
avcodec/ac3dec: Keep track of band structure
...
It is needed in some corner cases that seem not to be forbidden
Fixes: out of array index
Fixes: 1538/clusterfuzz-testcase-minimized-4696904925446144
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/targets/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-05-13 20:36:33 +02:00
Muhammad Faiz
31f61b0d4f
avcodec: do not use AVFrame accessor
...
Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
2017-04-23 14:27:47 +07:00
Clément Bœsch
c66bd8f3ff
Merge commit 'b57e38f52cc3f31a27105c28887d57cd6812c3eb'
...
* commit 'b57e38f52cc3f31a27105c28887d57cd6812c3eb':
ac3dsp: x86: Replace inline asm for in-decoder downmixing with standalone asm
Merged-by: Clément Bœsch <u@pkh.me>
2017-03-22 12:49:29 +01:00
Clément Bœsch
e39d4ff150
Merge commit '43717469f9daa402f6acb48997255827a56034e9'
...
* commit '43717469f9daa402f6acb48997255827a56034e9':
ac3dsp: Reverse matrix in/out order in downmix()
Merged-by: Clément Bœsch <u@pkh.me>
2017-03-22 11:29:46 +01:00
Clément Bœsch
4ac44520e5
Merge commit '8495d84f0101464b15517860db33e8605586d87e'
...
* commit '8495d84f0101464b15517860db33e8605586d87e':
ac3dec: Add some inline hints
Merged-by: Clément Bœsch <u@pkh.me>
2017-03-15 21:58:13 +01:00
Clément Bœsch
151b5e4a53
Merge commit '3db51bf671defd47f2ec5ab67b11fb7730fb5e5a'
...
* commit '3db51bf671defd47f2ec5ab67b11fb7730fb5e5a':
ac3dec: Simplify skipping
Merged-by: Clément Bœsch <u@pkh.me>
2017-03-15 21:57:57 +01:00
Clément Bœsch
2e3221c303
Merge commit 'f0ccc65bc9ab9ddf1366066395564c71bcc825ee'
...
* commit 'f0ccc65bc9ab9ddf1366066395564c71bcc825ee':
ac3dec: Split coupling-specific code from decode_audio_block()
Merged-by: Clément Bœsch <u@pkh.me>
2017-03-15 21:56:47 +01:00
Clément Bœsch
7c4dbd1df9
Merge commit 'a5ebe5d1217942238c641c83b24ef1106e53934a'
...
* commit 'a5ebe5d1217942238c641c83b24ef1106e53934a':
ac3dec: Split spx-specific code from decode_audio_block()
Merged-by: Clément Bœsch <u@pkh.me>
2017-03-15 21:43:59 +01:00
Jonathan Campbell
d5d474aea5
avcodec/ac3dec: add consistent noise generation option.
...
use av_lfg_init_from_data() to seed AC-3 dithering from the AC-3 frame
data to make it consistent given the same AC-3 frame, if option is set.
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-01-22 02:29:16 +01:00
Michael Niedermayer
cee1f4c069
avcodec/ac3dec: Check expacc
...
this is somewhat a magic number, which can be understood from reading section
"7.1.2 Exponent Strategy" of the ac3 specification, in short:
Three exponents each represented as number 0-4 are grouped together and
base-5 encoded, so the maximal correct value is 25*4 + 5*4 + 4 = 124.
Reviewed-by: Andreas Cadhalpun <andreas.cadhalpun@googlemail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-11-03 22:05:46 +01:00
Justin Ruggles
b57e38f52c
ac3dsp: x86: Replace inline asm for in-decoder downmixing with standalone asm
...
Adds a wrapper function for downmixing which detects channel count changes
and updates the selected downmix function accordingly.
Simplification and porting to current x86inc infrastructure by Diego Biurrun.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-10-01 00:46:25 +02:00
Justin Ruggles
43717469f9
ac3dsp: Reverse matrix in/out order in downmix()
...
Also use (float **) instead of (float (*)[2]). This matches the matrix
layout in libavresample so we can reuse assembly code between the two.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-10-01 00:45:55 +02:00
Nikolas Bowe
96cd6f672e
avcodec/(e)ac3: Fix target_level for EAC3.
...
Currently when using target_level with EAC3 it produces silence. This small patch fixes target_level for decoding EAC3.
Example:
ffmpeg -y -i /tmp/test.wav -acodec eac3 -dialnorm -14 -ac 6 -b:a 384000 /tmp/test.m2ts
ffmpeg -y -target_level -24 -i /tmp/test.m2ts -acodec pcm_s16le -f matroska /tmp/out.mkv
ffplay /tmp/out.mkv
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-09-15 12:18:55 +02:00
Luca Barbato
8495d84f01
ac3dec: Add some inline hints
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-07-29 18:46:48 +02:00
Luca Barbato
3db51bf671
ac3dec: Simplify skipping
...
skip_bits_long() can skip up to 32-bit ranges.
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-07-29 18:46:48 +02:00
Luca Barbato
f0ccc65bc9
ac3dec: Split coupling-specific code from decode_audio_block()
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-07-29 18:46:48 +02:00
Luca Barbato
a5ebe5d121
ac3dec: Split spx-specific code from decode_audio_block()
...
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-07-29 18:46:48 +02:00
Derek Buitenhuis
13b77e09c7
Merge commit '33275a0de05e9bc321f2537a2a67921fab81624f'
...
* commit '33275a0de05e9bc321f2537a2a67921fab81624f':
ac3dec: change logging of skipped E-AC-3 substreams.
Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-08 23:07:01 +01:00
Michael Niedermayer
9ac154d1fa
avcodec/ac3dec: Reset SPX when switching from EAC3 to AC3
...
Fixes Ticket5319
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-04-25 04:08:21 +02:00
Tim Walker
33275a0de0
ac3dec: change logging of skipped E-AC-3 substreams.
...
Change log level from warning to debug: the E-AC-3 "core"
substream can be successfully decoded without the additional
and dependent substreams, and their presence is already
indicated via avpriv_request_sample in ff_eac3_parse_header.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2016-04-02 14:06:40 +02:00
Michael Niedermayer
052e692e85
avcodec/ac3dec: Print the value of out of range exponents
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2015-12-24 20:47:25 +01:00
Ganesh Ajjanagadde
7b11eead1b
avcodec/ac3: always use hardcoded tables
...
The table in question is a 253 byte one. In fact, it turns out that
dynamic generation of the table results in an increased binary size.
Code compiled with GCC 5.2.0, x86-64 (size in bytes), before and after
patch:
old: 62321064 libavcodec/libavcodec.so.57
new: 62320536 libavcodec/libavcodec.so.57
Thus, it always make sense to statically allocate this.
Tested with FATE with/without --enable-hardcoded-tables.
Reviewed-by: wm4 <nfxjfg@googlemail.com>
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com>
2015-11-30 18:29:57 -05:00
Andreas Cadhalpun
957f92729a
avcodec: drop 2 suffix from avpriv_ac3_parse_header2
...
avpriv_ac3_parse_header was removed in commit 3dfb643
.
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
2015-10-22 00:34:54 +02:00
Hendrik Leppkes
b27ddffbfb
Merge commit 'dc70c19476e76f1118df73b5d97cc76f0e5f6f6c'
...
* commit 'dc70c19476e76f1118df73b5d97cc76f0e5f6f6c':
lavc: Drop deprecated request_channels related functions
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-09-05 16:42:44 +02:00
Vittorio Giovara
dc70c19476
lavc: Drop deprecated request_channels related functions
...
Deprecated in 04/2011.
2015-08-28 16:01:16 +02:00
Michael Niedermayer
94d68a41fa
Merge commit '7c6eb0a1b7bf1aac7f033a7ec6d8cacc3b5c2615'
...
* commit '7c6eb0a1b7bf1aac7f033a7ec6d8cacc3b5c2615':
lavc: AV-prefix all codec flags
Conflicts:
doc/examples/muxing.c
ffmpeg.c
ffmpeg_opt.c
ffplay.c
libavcodec/aacdec.c
libavcodec/aacenc.c
libavcodec/ac3dec.c
libavcodec/ac3enc_float.c
libavcodec/atrac1.c
libavcodec/atrac3.c
libavcodec/atrac3plusdec.c
libavcodec/dcadec.c
libavcodec/ffv1enc.c
libavcodec/h264.c
libavcodec/h264_loopfilter.c
libavcodec/h264_mb.c
libavcodec/imc.c
libavcodec/libmp3lame.c
libavcodec/libtheoraenc.c
libavcodec/libtwolame.c
libavcodec/libvpxenc.c
libavcodec/libxavs.c
libavcodec/libxvid.c
libavcodec/mpeg12dec.c
libavcodec/mpeg12enc.c
libavcodec/mpegaudiodec_template.c
libavcodec/mpegvideo.c
libavcodec/mpegvideo_enc.c
libavcodec/mpegvideo_motion.c
libavcodec/nellymoserdec.c
libavcodec/nellymoserenc.c
libavcodec/nvenc.c
libavcodec/on2avc.c
libavcodec/options_table.h
libavcodec/opus_celt.c
libavcodec/pngenc.c
libavcodec/ra288.c
libavcodec/ratecontrol.c
libavcodec/twinvq.c
libavcodec/vc1_block.c
libavcodec/vc1_loopfilter.c
libavcodec/vc1_mc.c
libavcodec/vc1dec.c
libavcodec/vorbisdec.c
libavcodec/vp3.c
libavcodec/wma.c
libavcodec/wmaprodec.c
libavcodec/x86/hpeldsp_init.c
libavcodec/x86/me_cmp_init.c
Merged-by: Michael Niedermayer <michael@niedermayer.cc>
2015-07-27 22:10:35 +02:00
Vittorio Giovara
7c6eb0a1b7
lavc: AV-prefix all codec flags
...
Convert doxygen to multiline and express bitfields more simply.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-27 15:24:58 +01:00
Vittorio Giovara
def97856de
lavc: AV-prefix all codec capabilities
...
Express bitfields more simply.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-07-27 15:24:58 +01:00
Michael Niedermayer
71258e5d87
avcodec/ac3dec: Put CONFIG* first in if()
...
This may fix build failures with EAC3 disabled and is more consistent
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-26 15:41:27 +01:00
James Almer
bf2bd5b807
avcodec/ac3dec_fixed: fix compilation when ac3dec is disabled
...
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: James Almer <jamrial@gmail.com>
2015-03-17 19:25:55 -03:00
Michael Niedermayer
94ccbad488
avcodec/ac3dec: Fix undefined shifts
...
Found-by: Clang -fsanitize=shift
Reported-by: Thierry Foucu <tfoucu@google.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-15 04:30:41 +01:00
Christophe Gisquet
73ebbfdff0
ac3dec: cosmetics
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-14 15:25:42 +01:00
Christophe Gisquet
c4bf3833f4
ac3_fixed: fix computation of spx_noise_blend
...
It was set to 1 instead of sqrt(3)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-14 14:05:22 +01:00
Christophe Gisquet
b083440060
ac3_fixed: fix out-of-bound read
...
Should also improve decoding, but actually doesn't...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-03-14 14:05:18 +01:00
Michael Niedermayer
a94eba6f0c
Merge commit '7f9f771eac0d37a632e0ed9bd89961d57fcfb7e0'
...
* commit '7f9f771eac0d37a632e0ed9bd89961d57fcfb7e0':
avcodec: Don't anonymously typedef structs
Conflicts:
libavcodec/alac.c
libavcodec/cinepak.c
libavcodec/cscd.c
libavcodec/dcadec.c
libavcodec/g723_1.c
libavcodec/gif.c
libavcodec/iff.c
libavcodec/kgv1dec.c
libavcodec/libopenjpegenc.c
libavcodec/libspeexenc.c
libavcodec/ra288.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-14 21:18:17 +01:00
Diego Biurrun
7f9f771eac
avcodec: Don't anonymously typedef structs
2015-02-14 10:13:49 -08:00
Paul B Mahol
c93a7b264f
avcodec/ac3dec: use init_get_bits8()
...
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2015-02-04 09:45:41 +00:00
Michael Niedermayer
8bce5c8e74
avcodec/ac3dec: Use avpriv_float_dsp_alloc()
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-11-20 22:30:48 +01:00
Jean-Francois Thibert
12df9b9a15
Improved AC3 decoder level support (heavy drc, dialnorm)
...
Added support for AC3 heavy dynamic range compression used
to restrict the output range and added a setting to specify
the output target level and use the dialog normalization
field to apply it in the digital domain.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-08-27 14:31:39 +02:00
Michael Niedermayer
35bb74900b
Merge commit 'c67b449bebbe0b35c73b203683e77a0a649bc765'
...
* commit 'c67b449bebbe0b35c73b203683e77a0a649bc765':
dsputil: Split bswap*_buf() off into a separate context
Conflicts:
configure
libavcodec/4xm.c
libavcodec/ac3dec.c
libavcodec/ac3dec.h
libavcodec/apedec.c
libavcodec/eamad.c
libavcodec/flacenc.c
libavcodec/fraps.c
libavcodec/huffyuv.c
libavcodec/huffyuvdec.c
libavcodec/motionpixels.c
libavcodec/truemotion2.c
libavcodec/x86/Makefile
libavcodec/x86/dsputil_init.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-06-23 13:31:26 +02:00
Diego Biurrun
c67b449beb
dsputil: Split bswap*_buf() off into a separate context
2014-06-22 18:22:31 -07:00
Michael Niedermayer
c00f368caa
avcodec/ac3dec: use av_freep() for saftey
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-02 04:38:16 +02:00
Michael Niedermayer
91b105ce5b
avcodec/ac3dec: avoid #if, use if() instead, its cleaner and shorter
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Nedeljko Babic <nbabic@mips.com>
2014-04-01 19:58:47 +02:00
Michael Niedermayer
b219142921
avcodec/ac3: rename identifier used to select the fixed point variant
...
the CONFIG_ prefix is used by configure, using it for other things
is potentially confusing to the reader
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Nedeljko Babic <nbabic@mips.com>
2014-04-01 19:58:31 +02:00
Nedeljko Babic
696e34a6e1
libavcodec: Implementation of AC3 fixedpoint decoder
...
Signed-off-by: Nedeljko Babic <nbabic@mips.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-04-01 19:01:57 +02:00
Michael Niedermayer
eadc21cfe7
avcodec/ac3_parser: add avpriv_ac3_parse_header2() and use it in libavcodec
...
The new function has the ability to allocate the structure, allowing it to grow
without needing major bumps
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-03-01 01:51:01 +01:00
Michael Niedermayer
1db87da351
Merge commit '9cd4bc41760f8ad879e248920eacbe1e7757152c'
...
* commit '9cd4bc41760f8ad879e248920eacbe1e7757152c':
ac3dec: set AV_FRAME_DATA_DOWNMIX_INFO side data.
Conflicts:
libavcodec/version.h
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-16 02:18:58 +01:00
Tim Walker
9cd4bc4176
ac3dec: set AV_FRAME_DATA_DOWNMIX_INFO side data.
2014-02-15 22:25:00 +01:00
Michael Niedermayer
3c7195a969
Merge commit '23d461fe8714a20ee5e6929f22c61512fdda568e'
...
* commit '23d461fe8714a20ee5e6929f22c61512fdda568e':
ac3dec: Allow asymmetric application of DRC when drc_scale > 1
Conflicts:
libavcodec/ac3dec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-01-30 14:55:03 +01:00