Paul B Mahol
a8a7c5d502
avcodec/thd: fix special stereo support
2021-12-18 10:20:24 +01:00
Paul B Mahol
946493eb3e
avcodec/mlpdec: cover case when >2 channels are in single substream
...
Previously it was assumed that all >2 channels streams have >1 substreams.
2021-11-11 21:54:32 +01:00
Paul B Mahol
17130321f3
avcodec/mlpdec: skip decoding substreams if their channels are not to be used
2021-10-03 11:46:53 +02:00
Paul B Mahol
114634a51a
avcodec/mlpdec: update matrix encoding only if it changed
2021-10-03 11:46:53 +02:00
Paul B Mahol
57f0b36367
avcodec/mlpdec: fix decoding single stereo stream in TrueHD
2021-09-23 23:43:48 +02:00
Paul B Mahol
5d92b73c64
avcodec/mlpdec: fix integer sanitizer warning under clang
...
Fixes:
libavcodec/mlpdec.c:1108:37: runtime error: negation of 1 cannot be represented in type 'unsigned int'
2021-09-07 18:16:13 +02:00
Paul B Mahol
0c87b43c6c
avcodec/mlp: move sync defines to common header
2021-09-05 18:12:56 +02:00
Paul B Mahol
034133a0df
avcodec/mlpdec: reset lossless crc checking when stream ends
...
Fixes invalid reports of bad lossless crc.
While here make end of stream message into debug level as it is
not really important to user.
Also wait for new major sync frame as invalid concating of files
may produce invalid files, which cause various errors.
2021-08-31 21:22:17 +02:00
Paul B Mahol
5673a48425
avcodec/mlpdec: add flush support
...
Fixes spurious lossless check failures when seeking.
2021-08-29 00:09:29 +02:00
Andreas Rheinhardt
a247ac640d
avcodec: Constify AVCodecs
...
Given that the AVCodec.next pointer has now been removed, most of the
AVCodecs are not modified at all any more and can therefore be made
const (as this patch does); the only exceptions are the very few codecs
for external libraries that have a init_static_data callback.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com >
Signed-off-by: James Almer <jamrial@gmail.com >
2021-04-27 10:43:15 -03:00
Anton Khirnov
e15371061d
lavu/mem: move the DECLARE_ALIGNED macro family to mem_internal on next+1 bump
...
They are not properly namespaced and not intended for public use.
2021-01-01 14:14:57 +01:00
Hendrik Leppkes
494f868e93
avcodec: set AV_CODEC_CAP_CHANNEL_CONF on decoders which set their own channels
...
The decoders in this set either have a fixed channel count, or read it
from the bitstream, and thus do not require the channel count as
external information.
Fixes various regressions since
81503ac58a , which requires a valid channel
count for decoders which do not set this capability.
Signed-off-by: Hendrik Leppkes <h.leppkes@gmail.com >
2020-12-10 13:28:35 +01:00
Andreas Rheinhardt
08a992e018
avcodec/mlpdec: Avoid code duplication when initializing VLCs
...
Reviewed-by: Jai Luthra <me@jailuthra.in >
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com >
2020-11-24 11:35:04 +01:00
Andreas Rheinhardt
34aa85cd91
avcodec/mlpdec: Make decoders init-threadsafe
...
Reviewed-by: Jai Luthra <me@jailuthra.in >
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com >
2020-11-24 11:35:04 +01:00
Jai Luthra
4566cfed9c
avcodec/mlpdec: use get_bits_long for huff lsbs
...
lsb bits may go beyond 25 bits, so to be safe use get_bits_long
Signed-off-by: Jai Luthra <me@jailuthra.in >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2020-02-08 18:20:43 +01:00
Jai Luthra
49cfbedb9d
mlp: check huff_lsbs only when codebook is used
...
When no codebook is used, huff_lsbs can be more than 24 and still decode to
original values once filters are applied.
Signed-off-by: Jai Luthra <me@jailuthra.in >
2020-02-04 11:19:12 +01:00
James Almer
109b0d7c0f
avcodec/mlp_parser: split off shared code to its own file
...
Signed-off-by: James Almer <jamrial@gmail.com >
2019-05-07 17:30:19 -03:00
Michael Niedermayer
fc32e08941
avcodec/mlpdec: Insuffient typo
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2019-02-23 22:48:35 +01:00
Michael Niedermayer
63c4a4b0d6
avcodec/mlpdec: Only change noise_type if the related fields are valid
...
Fixes: inconsistency
Fixes:runtime error: index 8 out of bounds for type 'int32_t [8]'
Fixes: 6686/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_TRUEHD_fuzzer-5191383498358784
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2018-05-26 00:54:55 +02:00
James Almer
34542ac033
Merge commit '970c76f32283bddf3a5afd24fe52db7a96186244'
...
* commit '970c76f32283bddf3a5afd24fe52db7a96186244':
mlp_parser: Drop in-parser downmix functionality
Merged-by: James Almer <jamrial@gmail.com >
2017-10-30 17:20:45 -03:00
James Almer
e3ebc293c6
Merge commit '94c54d97e7f4fe90570c323803f2bdf6246c1010'
...
* commit '94c54d97e7f4fe90570c323803f2bdf6246c1010':
mlp: Factor out channel layout subset checks
Merged-by: James Almer <jamrial@gmail.com >
2017-10-30 16:52:36 -03:00
James Almer
8b63acaeee
Merge commit '1f6e5dd4d4dd9c02371ad211049d27edb6d95286'
...
* commit '1f6e5dd4d4dd9c02371ad211049d27edb6d95286':
mlp: Rename the channel layout variable
Merged-by: James Almer <jamrial@gmail.com >
2017-10-30 16:40:11 -03:00
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
Vittorio Giovara
970c76f322
mlp_parser: Drop in-parser downmix functionality
...
request_channel_layout is a decoder option and it makes no sense
to have it in a parser.
This feature was needed in the past when the decoder was allowed
to reuse the avctx from the demuxer. Nowadays the decoder receives
only the parameters from it, already containing the real channel
layout (and the correct request_channel_layout option).
After initialization the decoder overwrites the channel layout
with the downmixed one that is actually output, so there is no need
to preserve this functionality in the parser.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com >
2017-04-27 14:19:54 -04:00
Vittorio Giovara
94c54d97e7
mlp: Factor out channel layout subset checks
2017-04-26 11:21:27 -04:00
Vittorio Giovara
1f6e5dd4d4
mlp: Rename the channel layout variable
...
Purely cosmetic change, will make code more readable once the new
channel layout takes over.
2017-04-26 11:14:57 -04:00
Diego Biurrun
a25dac976a
Use bitstream_init8() where appropriate
2017-02-07 18:27:21 +01:00
Alexandra Hájková
00c72a1e01
mlp: Convert to the new bitstream reader
2016-12-19 13:22:29 +01:00
Ganesh Ajjanagadde
977f41e274
mlpdec: Fix a undefined left shift of negative number
...
This fixes a -Wshift-negative-value warning reported with clang 3.7+.
Signed-off-by: Ganesh Ajjanagadde <gajjanagadde@gmail.com >
2015-09-29 14:33:00 +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