Michael Niedermayer
361e0310d9
avcodec/mlpdec: Check quant_step_size against huff_lsbs
...
This reorders the operations so as to avoid computations with the above arguments
before they have been initialized.
Fixes part of 1708/clusterfuzz-testcase-minimized-5035111957397504
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-06-03 23:30:31 +02:00
Michael Niedermayer
ac8dfcbd89
avcodec/mlpdec: Do not leave invalid values in matrix_out_ch[] on error
...
Fixes: runtime error: index 12 out of bounds for type 'uint8_t [8]'
Fixes: 1832/clusterfuzz-testcase-minimized-6574546079449088
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-27 14:37:42 +02:00
Michael Niedermayer
42e42af76c
avcodec/mlpdec: Fix runtime error: shift exponent -5 is negative
...
Fixes part of 1708/clusterfuzz-testcase-minimized-5035111957397504
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-05-22 19:42:39 +02:00
Michael Niedermayer
64ea4d102a
avcodec/mlpdec: Do not leave a invalid num_primitive_matrices in the context
...
Fixes: runtime error: index 8 out of bounds for type 'uint8_t [8]'
Fixes: 1699/clusterfuzz-testcase-minimized-6327177438035968
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-20 01:24:11 +02:00
Michael Niedermayer
25c81e4b73
avcodec/mlpdec: Fix: runtime error: left shift of negative value -8
...
Fixes: 1658/clusterfuzz-testcase-minimized-4889937130291200
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-18 04:08:31 +02:00
Michael Niedermayer
552adf1dd3
avcodec/mlpdec: Fix runtime error: left shift of negative value -1
...
Fixes: 1636/clusterfuzz-testcase-minimized-5310494757879808
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-17 00:54:00 +02:00
Michael Niedermayer
e3e51f8c14
avcodec/mlpdec: Check that there is enough data for headers
...
Fixes: out of array access
Fixes: 1541/clusterfuzz-testcase-minimized-6403410590957568
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 23:15:13 +02:00
Michael Niedermayer
74dc728a2c
avcodec/mlp: Fix multiple runtime error: left shift of negative value -1
...
Fixes: 1512/clusterfuzz-testcase-minimized-4713846423945216
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 15:54:33 +02:00
Michael Niedermayer
c535436cbe
avcodec/mlpdec: Fix runtime error: left shift of negative value -22
...
Fixes: 1355/clusterfuzz-testcase-minimized-6662205472768000
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-06 12:08:14 +02:00
Ganesh Ajjanagadde
094a1985d6
avcodec/mlpdec: fix a undefined left shift of negative number
...
This fixes a -Wshift-negative-value reported with clang 3.7+, e.g
http://fate.ffmpeg.org/log.cgi?time=20150918181527&log=compile&slot=x86_64-darwin-clang-polly-vectorize-stripmine-3.7 .
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2015-09-20 00:30:39 +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
444e9874a7
Merge commit 'def97856de6021965db86c25a732d78689bd6bb0'
...
* commit 'def97856de6021965db86c25a732d78689bd6bb0':
lavc: AV-prefix all codec capabilities
Conflicts:
cmdutils.c
ffmpeg.c
ffplay.c
libavcodec/8svx.c
libavcodec/aacenc.c
libavcodec/ac3dec.c
libavcodec/adpcm.c
libavcodec/alac.c
libavcodec/atrac3plusdec.c
libavcodec/bink.c
libavcodec/dnxhddec.c
libavcodec/dvdec.c
libavcodec/dvenc.c
libavcodec/ffv1dec.c
libavcodec/ffv1enc.c
libavcodec/fic.c
libavcodec/flacdec.c
libavcodec/flacenc.c
libavcodec/flvdec.c
libavcodec/fraps.c
libavcodec/frwu.c
libavcodec/gifdec.c
libavcodec/h261dec.c
libavcodec/hevc.c
libavcodec/iff.c
libavcodec/imc.c
libavcodec/libopenjpegdec.c
libavcodec/libvo-aacenc.c
libavcodec/libvorbisenc.c
libavcodec/libvpxdec.c
libavcodec/libvpxenc.c
libavcodec/libx264.c
libavcodec/mjpegbdec.c
libavcodec/mjpegdec.c
libavcodec/mpegaudiodec_float.c
libavcodec/msmpeg4dec.c
libavcodec/mxpegdec.c
libavcodec/nvenc_h264.c
libavcodec/nvenc_hevc.c
libavcodec/pngdec.c
libavcodec/qpeg.c
libavcodec/ra288.c
libavcodec/rv10.c
libavcodec/s302m.c
libavcodec/sp5xdec.c
libavcodec/takdec.c
libavcodec/tiff.c
libavcodec/tta.c
libavcodec/utils.c
libavcodec/v210dec.c
libavcodec/vp6.c
libavcodec/vp9.c
libavcodec/wavpack.c
libavcodec/yop.c
Merged-by: Michael Niedermayer <michael@niedermayer.cc >
2015-07-27 22:50:18 +02: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
Hendrik Leppkes
dc2d0e06af
mlpdec: support TrueHD streams with an Atmos substream
...
The fourth substream is being discarded, since its not raw audio data,
but an encoded Atmos stream which needs a specialized decoder.
Fixes decoding of the true hd stream from Transformers\ -\ Age\ of\ Extinction\ 2014\ 1080P-003.mkv
Signed-off-by: Anton Khirnov <anton@khirnov.net >
2015-03-11 16:06:40 +01:00
Hendrik Leppkes
f36f6a608b
mlpdec: support major sync headers with optional extension blocks
...
Signed-off-by: Anton Khirnov <anton@khirnov.net >
2015-03-11 16:03:13 +01:00
Michael Niedermayer
9b424accbe
Merge commit '2ffb0598dbdb81c40650952aa9299fa02fa5e834'
...
* commit '2ffb0598dbdb81c40650952aa9299fa02fa5e834':
mlpdec: check for negative index
Conflicts:
libavcodec/mlpdec.c
See: 8491ac3ad2
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2014-11-13 13:59:53 +01:00
Vittorio Giovara
2ffb0598db
mlpdec: check for negative index
...
CC: libav-stable@libav.org
Bug-Id: CID 970924
2014-11-13 01:41:26 +01:00
James Almer
0de1d6287e
x86/mlpdec: add ff_mlp_rematrix_channel_{sse4,avx2}
...
2x to 2.5x faster than the C version.
Reviewed-by: Michael Niedermayer <michaelni@gmx.at >
Signed-off-by: James Almer <jamrial@gmail.com >
2014-10-02 22:11:55 -03:00
James Almer
ddb813b0ef
mlpdec: move rematrix_channels code to output_data()
...
Reviewed-by: Michael Niedermayer <michaelni@gmx.at >
Signed-off-by: James Almer <jamrial@gmail.com >
2014-10-02 22:11:51 -03:00
Hendrik Leppkes
36bf549b27
mlpdec: support TrueHD streams with an Atmos substream
...
The fourth substream is being discarded, since its not raw audio data,
but an encoded Atmos stream which needs a specialized decoder.
Fixes decoding of the true hd stream from Transformers\ -\ Age\ of\ Extinction\ 2014\ 1080P-003.mkv
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2014-09-21 14:38:32 +02:00
Hendrik Leppkes
ff34b2d6d3
mlpdec: support major sync headers with optional extension blocks
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2014-09-21 13:32:56 +02:00
Michael Niedermayer
fa160af08b
avcodec/mlpdec: fix () in MSB_MASK() macro
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2014-05-25 05:18:18 +02:00
Michael Niedermayer
179cf14832
Merge commit 'fcf5fc444522d24caa9907225802817ae788f511'
...
* commit 'fcf5fc444522d24caa9907225802817ae788f511':
truehd: tune VLC decoding for ARM.
Conflicts:
libavcodec/mlpdec.c
See: e555e1bc39
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2014-03-26 20:58:03 +01:00
Ben Avison
b01a2562ae
truehd: break out part of output_data into platform-specific callback.
...
Verified with profiling that this doesn't have a measurable effect upon
overall performance.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2014-03-26 20:56:38 +01:00
Ben Avison
3f4e73afe9
truehd: break out part of rematrix_channels into platform-specific callback.
...
Verified with profiling that this doesn't have a measurable effect upon
overall performance.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2014-03-26 20:41:48 +01:00
Ben Avison
b9eb03416d
truehd: break out part of output_data into platform-specific callback.
...
Verified with profiling that this doesn't have a measurable effect upon
overall performance.
Signed-off-by: Martin Storsjö <martin@martin.st >
2014-03-26 19:54:29 +02:00
Ben Avison
fcf5fc4445
truehd: tune VLC decoding for ARM.
...
Profiling on a Raspberry Pi revealed the best performance to correspond
with VLC_BITS = 5. Results for overall audio decode and the get_vlc2 function
in particular are as follows:
Before After
Mean StdDev Mean StdDev Confidence Change
6:2 total 348.8 20.1 339.6 15.1 88.8% +2.7% (insignificant)
6:2 function 38.1 8.1 26.4 4.1 100.0% +44.5%
8:2 total 339.1 15.4 324.5 15.5 99.4% +4.5%
8:2 function 33.8 7.0 27.3 5.6 99.7% +23.6%
6:6 total 604.6 20.8 572.8 20.6 100.0% +5.6%
6:6 function 95.8 8.4 68.9 8.2 100.0% +39.1%
8:8 total 766.4 17.6 741.5 21.2 100.0% +3.4%
8:8 function 106.0 11.4 86.1 9.9 100.0% +23.1%
Signed-off-by: Martin Storsjö <martin@martin.st >
2014-03-26 19:54:12 +02:00
Ben Avison
4e5aa080bb
truehd: break out part of rematrix_channels into platform-specific callback.
...
Verified with profiling that this doesn't have a measurable effect upon
overall performance.
Signed-off-by: Martin Storsjö <martin@martin.st >
2014-03-26 19:54:05 +02:00
Ben Avison
e555e1bc39
truehd: tune VLC decoding for ARM.
...
Profiling on a Raspberry Pi revealed the best performance to correspond
with VLC_BITS = 5. Results for overall audio decode and the get_vlc2 function
in particular are as follows:
Before After
Mean StdDev Mean StdDev Confidence Change
6:2 total 348.8 20.1 339.6 15.1 88.8% +2.7% (insignificant)
6:2 function 38.1 8.1 26.4 4.1 100.0% +44.5%
8:2 total 339.1 15.4 324.5 15.5 99.4% +4.5%
8:2 function 33.8 7.0 27.3 5.6 99.7% +23.6%
6:6 total 604.6 20.8 572.8 20.6 100.0% +5.6%
6:6 function 95.8 8.4 68.9 8.2 100.0% +39.1%
8:8 total 766.4 17.6 741.5 21.2 100.0% +3.4%
8:8 function 106.0 11.4 86.1 9.9 100.0% +23.1%
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2014-03-19 22:24:32 +01:00
Michael Niedermayer
f90a4bfc43
mlpdec: fix request_channel_layout behavior.
...
When request_channel_layout is 0,
all substreams should be decoded.
Signed-off-by: Tim Walker <tdskywalker@gmail.com >
2014-02-08 20:10:35 +01:00
Michael Niedermayer
1a8050ad61
avcodec/mlpdec: fix mulichannel output
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2014-02-08 18:08:01 +01:00
Michael Niedermayer
aedc10137d
Merge commit 'c0c45188e56cfa3050bb39f8299025345b8a204c'
...
* commit 'c0c45188e56cfa3050bb39f8299025345b8a204c':
mlp: improve request_channel_layout behavior.
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2014-02-08 17:31:30 +01:00
Tim Walker
c0c45188e5
mlp: improve request_channel_layout behavior.
...
Don't decode further substreams if request_channel_layout
is a subset of the current substream's channel_layout.
Before, we would only discard further substreams if
request_channel_layout matched the substream's
channel_layout extactly, thus decoding additional
channels which the caller would probably end up downmixing.
2014-02-08 13:39:37 +01:00
Michael Niedermayer
85b424a45e
Merge commit 'e92123093dfdca0ef6608998240e2f9345d63bff'
...
* commit 'e92123093dfdca0ef6608998240e2f9345d63bff':
mlpdec: set AV_FRAME_DATA_MATRIXENCODING side data.
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2014-01-05 23:00:22 +01:00
Michael Niedermayer
b4107f7805
Merge commit '4b7f1a7ced0e98f2cc698d896f7ebab8d30eaa09'
...
* commit '4b7f1a7ced0e98f2cc698d896f7ebab8d30eaa09':
mlp: Parse TrueHD decoder channel modifiers and set the AVMatrixEncoding for each substream.
Conflicts:
libavcodec/mlp_parser.h
libavcodec/mlpdec.c
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2014-01-05 22:53:13 +01:00
Tim Walker
e92123093d
mlpdec: set AV_FRAME_DATA_MATRIXENCODING side data.
2014-01-05 16:41:56 +01:00
Tim Walker
4b7f1a7ced
mlp: Parse TrueHD decoder channel modifiers and set the AVMatrixEncoding for each substream.
2014-01-05 16:41:56 +01:00
Michael Niedermayer
a8d702859b
avcodec/mlpdec: check that streamtype matches the codec
...
Fixes use of uninitialized memory
Fixes msan_uninit-mem_7f126c8ed1ac_5945_issue1731_nonpublic.mpg
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2013-12-16 15:04: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
f7bea731d9
avcodec/mlpdec: Fail if the input is too small
...
This fixes a infinite loop
Fixes Ticket2986
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2013-09-27 20:12:37 +02:00
Michael Niedermayer
1607a98545
avcodec/mlp: Fix bugs in libavs warning fixes
...
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2013-08-03 10:27:42 +02:00
Michael Niedermayer
20be5e0a0e
Merge commit '7950e519bb094897f957b9a9531cc60ba46cbc91'
...
* commit '7950e519bb094897f957b9a9531cc60ba46cbc91':
Disable deprecation warnings for cases where a replacement is available
Conflicts:
libavcodec/avpacket.c
libavcodec/pthread.c
libavcodec/utils.c
libavdevice/v4l2.c
libavfilter/avfiltergraph.c
libavfilter/buffersrc.c
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2013-08-03 10:08:30 +02:00
Diego Biurrun
7950e519bb
Disable deprecation warnings for cases where a replacement is available
2013-08-02 19:19:02 +02:00
Michael Niedermayer
e9348e107b
Merge commit 'e9d394f3fad7e8fd8fc80e3b33cb045bbaceb446'
...
* commit 'e9d394f3fad7e8fd8fc80e3b33cb045bbaceb446':
mlpdec: Do not set invalid context in read_restart_header
Conflicts:
libavcodec/mlpdec.c
See: a9cd12ee2a
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2013-07-12 13:28:40 +02:00
Luca Barbato
e9d394f3fa
mlpdec: Do not set invalid context in read_restart_header
...
The faulty values rippled further down the codepath causing a
hard-to-track segfault in the assembly code.
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
2013-07-12 04:34:49 +02:00
Michael Niedermayer
e234daa518
mlpdec: Fix reading state with 0 bit elements.
...
This fixes an assertion failure
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at >
2013-03-28 04:01:34 +01:00
Michael Niedermayer
13795dbb64
Merge commit '6d97484d72e33f7dde9493a9ead1a72e2f029605'
...
* commit '6d97484d72e33f7dde9493a9ead1a72e2f029605':
avcodec: av_log_ask_for_sample() ---> avpriv_request_sample()
rsodec: Use avpriv_report_missing_feature() where appropriate
Conflicts:
libavcodec/anm.c
libavcodec/mlpdec.c
libavcodec/pictordec.c
libavcodec/sunrast.c
Merged-by: Michael Niedermayer <michaelni@gmx.at >
2013-03-14 12:52:12 +01:00
Diego Biurrun
6d97484d72
avcodec: av_log_ask_for_sample() ---> avpriv_request_sample()
2013-03-13 21:20:12 +01:00