summaryrefslogtreecommitdiff
path: root/libavcodec
Commit message (Collapse)AuthorAge
...
* lavc/htmlsubtitles: reindent after previous commitsClément Bœsch2017-08-01
|
* lavc/htmlsubtitles: handle colors starting with many '#'Clément Bœsch2017-08-01
|
* lavc/htmlsubtitles: improve line breaks handlingClément Bœsch2017-08-01
|
* lavc/tests: add htmlsubtitlesClément Bœsch2017-08-01
|
* lavc/htmlsubtitles: improve handling broken garbageClément Bœsch2017-08-01
| | | | | | | | | | | | | | | | | | | | This commit switches off forced correct nesting of tags and only keeps it for font tags. See long explanations in the code for the rationale. This results in various FATE changes which I'll explain here: - various swapping in font attributes, this is mostly noise due to the old reverse stack way of printing them. The new one is more correct as the last attribute takes over the previous ones. - unrecognized tags disappears - invalid tags that were previously displayed aren't anymore (instead, we have a warning). This is better for the end user The main benefit of this commit is to be more tolerant to error, leading to a better handling of badly nested tags or random wrong formatting for the end user.
* avcodec/diracdsp: fix integer overflowMichael Niedermayer2017-08-01
| | | | | | | | Fixes: runtime error: signed integer overflow: 11 * 225726413 cannot be represented in type 'int' Fixes: 2764/clusterfuzz-testcase-minimized-5382561922547712 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/diracdec: Check weight_log2denomMichael Niedermayer2017-08-01
| | | | | | | | | | Fixes: runtime error: shift exponent -1 is negative Fixes: 2742/clusterfuzz-testcase-minimized-5724322402402304 Fixes: 2744/clusterfuzz-testcase-minimized-4672435653705728 Fixes: 2749/clusterfuzz-testcase-minimized-5298741273690112 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/dirac_vlc: Fix invalid shiftMichael Niedermayer2017-08-01
| | | | | | | | Fixes: runtime error: shift exponent 65 is too large for 64-bit type 'residual' (aka 'unsigned long') Fixes: 2737/clusterfuzz-testcase-minimized-4968639147016192 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/atrac3p: use float_dsp in ff_atrac3p_power_compensationJames Almer2017-08-01
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* mdct15: add inverse transform postrotation SIMDRostislav Pehlivanov2017-07-30
| | | | | | | | | | | | | | | | | | | | | | | | | | 2.5ms frames: Before (c): 2638 decicycles in postrotate, 2097040 runs, 112 skips After (sse3): 1467 decicycles in postrotate, 2097083 runs, 69 skips After (avx2): 1244 decicycles in postrotate, 2097085 runs, 67 skips 5ms frames: Before (c): 4987 decicycles in postrotate, 1048371 runs, 205 skips After (sse3): 2644 decicycles in postrotate, 1048509 runs, 67 skips After (avx2): 2031 decicycles in postrotate, 1048523 runs, 53 skips 10ms frames: Before (c): 9153 decicycles in postrotate, 523575 runs, 713 skips After (sse3): 5110 decicycles in postrotate, 523726 runs, 562 skips After (avx2): 3738 decicycles in postrotate, 524223 runs, 65 skips 20ms frames: Before (c): 17857 decicycles in postrotate, 261866 runs, 278 skips After (sse3): 10041 decicycles in postrotate, 261746 runs, 398 skips After (avx2): 7050 decicycles in postrotate, 262116 runs, 28 skips Improves total decoding performance for real world content by 9% with avx2. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
* lavc/makefile: Add missing file dependencies.Matt Oliver2017-07-30
| | | | | | | | | ac3dsp.c uses tables from ac3.c ac3.c uses tables from ac3tab.c hevc_ps uses tables from hevc_data.c intrax8.c uses tables from msmpeg4data.c Signed-off-by: Matt Oliver <protogonoi@gmail.com>
* avcodec/dirac_dwt: Fix multiple integer overflows in COMPOSE_DD97iH0()Michael Niedermayer2017-07-29
| | | | | | | | Fixes: runtime error: signed integer overflow: 9 * 335544320 cannot be represented in type 'int' Fixes: 2739/clusterfuzz-testcase-minimized-6737297955356672 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/diracdec: Fix integer overflow in divide3()Michael Niedermayer2017-07-29
| | | | | | | | Fixes: runtime error: signed integer overflow: -1073746548 * 21845 cannot be represented in type 'int' Fixes: 2729/clusterfuzz-testcase-minimized-5902915464069120 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/takdec: Fix integer overflow in decode_subframe()Michael Niedermayer2017-07-29
| | | | | | | | Fixes: runtime error: signed integer overflow: -536870912 - 1972191120 cannot be represented in type 'int' Fixes: 2711/clusterfuzz-testcase-minimized-4975142398590976 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* libavcodec/mips: Improve avc dequant-idct luma dc msa functionKaustubh Raste2017-07-29
| | | | | | Signed-off-by: Kaustubh Raste <kaustubh.raste@imgtec.com> Reviewed-by: Manojkumar Bhosale <Manojkumar.Bhosale@imgtec.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/diracdec: Fix integer overflow in signed multiplication in ↵Michael Niedermayer2017-07-28
| | | | | | | | | | UNPACK_ARITH() Fixes: runtime error: signed integer overflow: 1073741823 * 4 cannot be represented in type 'int' Fixes: 2729/clusterfuzz-testcase-minimized-5902915464069120 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/pixlet: Simplify nbits computationMichael Niedermayer2017-07-28
| | | | | | | | | Fixes multiple integer overflows Fixes: runtime error: signed integer overflow: 1 + 2147483647 cannot be represented in type 'int' Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* pthread_frame: revert 2e664b9c1e73c80aab91070c1eb7676f04bdd12d.Wan-Teh Chang2017-07-27
| | | | | | | | The patch does not fix the tsan warning it was intended to fix. Reverting the patch moves the av_log() back to the outside of the lock. Signed-off-by: Wan-Teh Chang <wtc@google.com> Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* avcodec/h264_slice: don't sync default_ref[] between threads.Wan-Teh Chang2017-07-27
| | | | | | | | | | | | | | | | | | | | | | | | default_ref[] is unconditionally initialized in h264_initialise_ref_list() (called from ff_h264_build_ref_list(), called from h264_slice_init()). This fixes the following tsan warning when running fate-h264: WARNING: ThreadSanitizer: data race (pid=31070) Write of size 8 at 0x7bbc000082a8 by thread T1 (mutexes: write M1628): #0 memcpy /work/release-test/final/llvm.src/projects/compiler-rt/lib/tsan/../sanitizer_common/sanitizer_common_interceptors.inc:655:5 (ffmpeg+0x10de9d) #1 h264_initialise_ref_list ffmpeg/libavcodec/h264_refs.c:214:29 (ffmpeg+0x1186b3f) #2 ff_h264_build_ref_list ffmpeg/libavcodec/h264_refs.c:306 (ffmpeg+0x1186b3f) #3 h264_slice_init ffmpeg/libavcodec/h264_slice.c:1900:11 (ffmpeg+0x1191149) [..] Previous read of size 8 at 0x7bbc000082a8 by main thread (mutexes: write M1630): #0 memcpy /work/release-test/final/llvm.src/projects/compiler-rt/lib/tsan/../sanitizer_common/sanitizer_common_interceptors.inc:655:5 (ffmpeg+0x10de9d) #1 ff_h264_update_thread_context ffmpeg/libavcodec/h264_slice.c:411:5 (ffmpeg+0x118b7dc) Signed-off-by: Wan-Teh Chang <wtc@google.com> Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* avcodec/dnxhdenc: enable frame threadingPaul B Mahol2017-07-27
| | | | Signed-off-by: Paul B Mahol <onemda@gmail.com>
* avcodec/dnxhddec: Move mb height check out of non hr branchMichael Niedermayer2017-07-27
| | | | | | | | Fixes: out of array access Fixes: poc.dnxhd Found-by: Bingchang, Liu@VARAS of IIE Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* pngdec: fix potential memory leakRostislav Pehlivanov2017-07-26
| | | | | | Fixes CID1412026. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
* avcodec/jpeg2000dec: Fix h/vden typoMichael Niedermayer2017-07-27
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/dolby_e: fix potentially undefined pointer arithmeticfoo862017-07-26
| | | | | | | | Avoid undefined behavior in skip_input() by checking that enough data is available before incrementing input pointer. Check return values of parse_key() and skip_input() and exit early with error if there is not enough data.
* avcodec/dolby_e: add AV_CODEC_CAP_CHANNEL_CONF capabilityfoo862017-07-26
|
* avcodec/dolby_e: add 'f' suffixes to floating point literalsfoo862017-07-26
|
* lavc/htmlsubtitles: simplify 1-char tags case insensitive testClément Bœsch2017-07-26
|
* avcodec/jpeg2000dec: Fix division by zero in jp2_find_codestream()Michael Niedermayer2017-07-26
| | | | | | | Fixes: 2707/clusterfuzz-testcase-minimized-5179636394754048 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/hevc_ps: fix integer overflow in log2_parallel_merge_level_minus2Michael Niedermayer2017-07-26
| | | | | | | | Fixes: runtime error: signed integer overflow: -2147483647 - 2 cannot be represented in type 'int' Fixes: 2702/clusterfuzz-testcase-minimized-4511932591636480 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/webp: add support for ICCP chunksJames Almer2017-07-26
| | | | | | | Export the raw data as ICC Profile frame side data. Reviwed-by: Rostislav Pehlivanov <atomnuker@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/rdft: reorder calculationMuhammad Faiz2017-07-26
| | | | | | | | | | | old: 165188 decicycles in rdft, 65536 runs, 0 skips 165865 decicycles in irdft, 65536 runs, 0 skips new: 142487 decicycles in rdft, 65536 runs, 0 skips 141498 decicycles in irdft, 65536 runs, 0 skips Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
* libavcodec/mips: Optimize avc idct 4x4 for msaKaustubh Raste2017-07-25
| | | | | | | | Removed memset call and improved performance. Signed-off-by: Kaustubh Raste <kaustubh.raste@imgtec.com> Reviewed-by: Manojkumar Bhosale <Manojkumar.Bhosale@imgtec.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* mdct15: simplify prereindexing and forward transform postrotationRostislav Pehlivanov2017-07-25
| | | | | | Equivalent. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
* pngdec: decode and expose iCCP chunks as side dataRostislav Pehlivanov2017-07-25
| | | | Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
* avcodec/mpegvideo_enc: fix mixed declarations and code warningJames Almer2017-07-25
|
* avcodec/ylc: Fix shift overflowMichael Niedermayer2017-07-24
| | | | | | | | Fixes: runtime error: shift exponent 32 is too large for 32-bit type 'unsigned int' Fixes: 2698/clusterfuzz-testcase-minimized-4713541443518464 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/aacps: Fix multiple integer overflow in map_val_34_to_20()Michael Niedermayer2017-07-24
| | | | | | | | Fixes: avcodec/aacps.c:511:40: runtime error: signed integer overflow: 1509077651 + 758068176 cannot be represented in type 'int' Fixes: 2678/clusterfuzz-testcase-minimized-4702787684270080 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/mpegvideo_enc: Use intra/inter scantable matching mb type in ↵Michael Niedermayer2017-07-24
| | | | | | quantization Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/aacdec_fixed: fix: left shift of negative value -1Michael Niedermayer2017-07-24
| | | | | | | Fixes: 2699/clusterfuzz-testcase-minimized-5631303862976512 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/dirac_vlc: Fix undefined shiftMichael Niedermayer2017-07-24
| | | | | | | | Fixes: runtime error: shift exponent 64 is too large for 64-bit type 'residual' (aka 'unsigned long') Fixes: 2674/clusterfuzz-testcase-minimized-4999700518273024 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/cfhd: Fix decoding regression due to height checkVodyannikov Aleksandr2017-07-23
| | | | | | | | | | Fixes: Ticket6546 Regression since: 54aaadf648073149f1ac34f56cbde4e6c5aa22ef Reviewed-by: Muhammad Faiz <mfcc64@gmail.com> Reviewed-by: Kieran Kunhya <kierank@obe.tv> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/dcaadpcm: fix use of uninitialized variablefoo862017-07-23
| | | | Fixes CID 1409924.
* avcodec/dcaadpcm: check for av_malloc() failurefoo862017-07-23
| | | | Fixes CID 1409915.
* hevc: Make sure to update the current frame transfer characteristicVittorio Giovara2017-07-21
| | | | | | | Otherwise the first decoded frame will still be tagged with the original transfer instead of the alternative one. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* avcodec/diracdec: Check dimensions which are closer to what is allocated in ↵Michael Niedermayer2017-07-21
| | | | | | | | | | alloc_sequence_buffers() Fixes OOM Fixes: 2674/clusterfuzz-testcase-minimized-4999700518273024 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/dca: remove GetBitContext usage from ↵James Almer2017-07-21
| | | | | | | | | avpriv_dca_parse_core_frame_header() This prevents potential ABI issues with GetBitContext. Reviewed-by: foo86 <foobaz86@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/h264: Declare the local variable decode_chroma as const.Wan-Teh Chang2017-07-21
| | | | | | | | | ff_h264_decode_mb_cabac() and ff_h264_decode_mb_cavlc() are very long functions. Declaring decode_chroma as const makes it clear the variable doesn't change after initialization. Signed-off-by: Wan-Teh Chang <wtc@google.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/hevcdec: hevc_await_progress: declare |y| only if used.Wan-Teh Chang2017-07-21
| | | | | | | | hevc_await_progress() uses the variable |y| only inside the "if" block. So |y| only needs to be declared and initialized in that block. Signed-off-by: Wan-Teh Chang <wtc@google.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/x86/cavsdsp: Delete #include "libavcodec/x86/idctdsp.h".Wan-Teh Chang2017-07-21
| | | | | | | | | | | This file already has #include "idctdsp.h", which is resolved to the idctdsp.h header in the directory where this file resides by compilers. Two other files in this directory, libavcodec/x86/idctdsp_init.c and libavcodec/x86/xvididct_init.c, also rely on #include "idctdsp.h" working this way. Signed-off-by: Wan-Teh Chang <wtc@google.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* opus_rc: fix CDF encoding of zeroesRostislav Pehlivanov2017-07-20
| | | | | | 0th CDF value is where probabilities are. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>