Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-08-05avcodec/vc1_block: Check get_vlc2() return before useMichael Niedermayer
Fixes: index -1 out of bounds for type 'const uint8_t [185][2]' Fixes: 15720/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MSS2_fuzzer-5666071933091840 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> (cherry picked from commit 2cb1f797350875ec45cb20d59dc0684fcbac20fc) Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-08-04avcodec/vc1_block: Fix integer overflow in ff_vc1_pred_dc()Michael Niedermayer
Fixes: signed integer overflow: 32796 * 65536 cannot be represented in type 'int' Fixes: 15430/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_VC1IMAGE_fuzzer-5735424087031808 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> (cherry picked from commit f31ed8f3b00ec7afe87092798bf0b397f6e19ed5) Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-07-08avcodec/vc1_block: Check for vlc error in vc1_decode_ac_coeff()Michael Niedermayer
Fixes: index -1 out of bounds for type 'const uint8_t [185][2]' Fixes: 15250/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_WMV3IMAGE_fuzzer-5648992869810176 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-06-30avcodec/vc1_block: Fix mqaunt check for negative valuesMichael Niedermayer
Fixes: out of array access Fixes: ffmpeg_bof_4.avi Fixes: ffmpeg_bof_5.avi Fixes: ffmpeg_bof_6.avi Found-by: Thuan Pham, Marcel Böhme, Andrew Santosa and Alexandru Razvan Caciulescu with AFLSmart Reviewed-by: Jerome Borsboom <jerome.borsboom@carpalis.nl> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-06-29avcodec/vc1: change the internal ordering of blocks within a macroblockJerome Borsboom
The overlap filter needs to cover a full macroblock vertical edge when the FIELDTX value for two neighbouring macroblocks is not equal. By changing the internal ordering of the blocks from row major to column major, we do not need to reinterlace a FIELDTX coded macroblock before running the overlap filter. Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
2018-06-29avcodec/vc1: fix condition guarding overlap filter on I pictureJerome Borsboom
The overlap filter needs to run when PQUANT is 9 or higher, irrespective of CONDOVER. Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
2018-06-18avcodec/vc1: rewrite vc1_decode_i_blocks to align with VC-1 specJerome Borsboom
Change vc1_decode_i_blocks to use vc1_put_blocks_clamped and ff_vc1_i_loop_filter. Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
2018-06-18avcodec/vc1: add Simple and Main profile to vc1_put_signed_blocks_clampedJerome Borsboom
Simple and Main Profile also need unsigned put_pixels_clamped. Add an argument to choose between signed and unsigned put_pixels and change function name to vc1_put_blocks_clamped. Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
2018-06-18Revert "avcodec/vc1: add Simple and Main profile to ↵Carl Eugen Hoyos
vc1_put_signed_blocks_clamped" This reverts commit 2065317db6dc3a219f8ed2de427fe7e19e02eb68. I committed a wrong version of this patch. Also reverts the follow-up commits 77a3dfb3 and 8331e591.
2018-06-16avcodec/vc1: rewrite vc1_decode_i_blocks to align with VC-1 specJerome Borsboom
Change vc1_decode_i_blocks to use vc1_put_blocks_clamped and ff_vc1_i_loop_filter. Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
2018-06-16avcodec/vc1: add Simple and Main profile to vc1_put_signed_blocks_clampedJerome Borsboom
Simple and Main profile also need unsigned put_pixels_clamped. Add an argument to choose between signed and unsigned put_pixels and change function name to vc1_put_blocks_clamped. Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
2018-05-29avcodec/vc1: store zero MVs for all blocks in a MBJerome Borsboom
Direct prediction for interlace frame B pictures references the mv in the second block in an MB in the backward reference frame for the twomv case. When the backward reference frame is an I frame, this value may be unset. Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
2018-05-29avcodec/vc1: fix mquant calculation for interlace field picturesJerome Borsboom
For interlace field pictures s->mb_height indicates the height of the full picture in MBs, i.e. the two fields combined. A single field is half this size. When calculating mquant for interlace field pictures, the bottom edge is the last MB row of the field. Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
2018-05-20avcodec/vc1: DIRECTBIT is only present in inter MBsJerome Borsboom
DIRECTBIT was decoded before the intra/inter MB branching when decoding interlace frame B pictures. Resulting in mistakenly also decoding it for intra MBs where this syntax element is not present. Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-04-29avcodec/vc1: fix mquant calculationJerome Borsboom
In vc1_decode_i_blocks_adv mquant needs to be reset to its default value for each macroblock, instead of once at the beginning of the slice. DQPROFILE specifies which macroblocks can have an alternative quantizer step size. When DQPROFILE specifies edges, the selection is applicable to the edges of the picture. Slice edges are not selected by DQPROFILE. Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2018-04-25avcodec/vc1: more corrections for AC inverse quantization scalingJerome Borsboom
HALFQP should only be added to the inverse quantizer when the block is coded with PQUANT. When PQUANT is equal to ALTPQUANT, the original test for the addition of HALFQP fails. A negative value for mquant indicates that the value was derived from VOPDQUANT. Fixes #4372 Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
2018-04-25avcodec/vc1: correct AC inverse quantization scalingJerome Borsboom
HALFQP should only be added to the inverse quantizer when the block is coded with PQUANT. See 8.1.3.8 in VC-1 spec. Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
2018-04-25avcodec/vc1: add overlap smooting and loop filter for frame/field-interlaceJerome Borsboom
Add previously omitted overlap smooting and loop filtering for frame/field-interlace pictures. For progressive pictures switch to the re-implemented versions of overlap smooting and loop filtering. Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
2018-04-25avcodec/vc1: re-implement vc1_put_signed_blocks_clampedJerome Borsboom
The existing implementation only used vc1_put_signed_blocks_clamped for I and BI frames. This rewritten version is also applicable to P frame both progressive and frame/field-interlace. Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
2018-04-25avcodec/vc1: store additional bitstream elements during MB decodingJerome Borsboom
The new loop filter needs additional MB properties to make its filtering decisions. Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
2018-04-25avcodec/vc1: change to using v->block instead of s->block for P framesJerome Borsboom
The new overlap smooting filter smoothes image pixels stored in v->block. Switch to v->block instead of s->block for storing decoded image pixels for P frames. Additionally, we must take incrementing *_blk_idx out of the vc1_put_signed_blocks_clamped function. Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl>
2018-04-24avcodec/vc1_block: simplify ac_val computationMichael Niedermayer
also fixes: runtime error: index 1456 out of bounds for type 'int16_t [16]' Found-by: durandal_1707 Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2016-06-21Merge commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb'Clément Bœsch
* commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb': cosmetics: Fix spelling mistakes Merged-by: Clément Bœsch <u@pkh.me>
2016-05-07Merge commit 'c2084ffcbfc11d1b6ed3a4a0df9cafd56fbb896f'Derek Buitenhuis
* commit 'c2084ffcbfc11d1b6ed3a4a0df9cafd56fbb896f': intrax8: Use the generic horizband function Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-07Merge commit 'b1268e0f032a3af3912fe3fb8d3855e12d7ea83b'Derek Buitenhuis
* commit 'b1268e0f032a3af3912fe3fb8d3855e12d7ea83b': intrax8: Pass macroblock coordinates to ff_intrax8_decode_picture Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-05-04cosmetics: Fix spelling mistakesVittorio Giovara
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2016-04-24Merge commit '8072345e9f86d88fbc4a15c17cb03f1e4701c9a5'Derek Buitenhuis
* commit '8072345e9f86d88fbc4a15c17cb03f1e4701c9a5': intrax8: Keep a reference to the GetBitContext reader Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-24Merge commit 'eaeba6f241e0de0e797be10f8fda967ef8489e64'Derek Buitenhuis
* commit 'eaeba6f241e0de0e797be10f8fda967ef8489e64': intrax8: Pass the output frame to the decoding function Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-24Merge commit '577393321c389ad2973bec6168a8045c94a9e099'Derek Buitenhuis
* commit '577393321c389ad2973bec6168a8045c94a9e099': intrax8: Carry over the loopfilter value in ff_intrax8_decode_picture Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-04-17Merge commit '0c6a70873fc6e43194b471d112c30823b6c8d0b4'Derek Buitenhuis
* commit '0c6a70873fc6e43194b471d112c30823b6c8d0b4': intrax8: Move error resilience out of intrax8 Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2016-03-29intrax8: Use the generic horizband functionVittorio Giovara
This is assuming that intrax8 has no support for interlacing Carry over lowdelay value in ff_intrax8_decode_picture.
2016-03-29intrax8: Pass macroblock coordinates to ff_intrax8_decode_pictureVittorio Giovara
These values need to be updated with the last macroblock position, so keep them as pointers.
2016-03-25intrax8: Keep a reference to the GetBitContext readerVittorio Giovara
Helps in decoupling this code from mpegvideo.
2016-03-25intrax8: Pass the output frame to the decoding functionVittorio Giovara
Helps in decoupling this code from mpegvideo.
2016-03-25intrax8: Carry over the loopfilter value in ff_intrax8_decode_pictureVittorio Giovara
Helps in decoupling this code from mpegvideo.
2016-03-22intrax8: Move error resilience out of intrax8Vittorio Giovara
The intrax8 decoding process does not imply any kind of error resilience, and the only call present is more related to how mpegvideo works rather than anything else. Therefore have the parent decoders carry out er when actually needed.
2015-08-10Merge commit '1542ec96389f32e5081c6c607e4b6f5e257ccdf2'Hendrik Leppkes
* commit '1542ec96389f32e5081c6c607e4b6f5e257ccdf2': cosmetics: Drop spurious spaces from if clauses Conflicts: libavcodec/vc1_block.c Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
2015-08-08cosmetics: Drop spurious spaces from if clausesPaolo Bizzarri
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
2015-07-27Merge commit '7c6eb0a1b7bf1aac7f033a7ec6d8cacc3b5c2615'Michael Niedermayer
* 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-27lavc: AV-prefix all codec flagsVittorio Giovara
Convert doxygen to multiline and express bitfields more simply. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2015-05-22Merge commit '848e86f74d3e6e87fa592ee8ba8c184cc5fd9a42'Michael Niedermayer
* commit '848e86f74d3e6e87fa592ee8ba8c184cc5fd9a42': mpegvideo: Drop flags and flags2 Conflicts: libavcodec/mpeg12dec.c libavcodec/mpeg12enc.c libavcodec/mpegvideo.c libavcodec/mpegvideo_enc.c libavcodec/mpegvideo_motion.c libavcodec/ratecontrol.c libavcodec/vc1_block.c libavcodec/vc1_loopfilter.c libavcodec/vc1_mc.c libavcodec/vc1dec.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
2015-05-22mpegvideo: Drop flags and flags2Vittorio Giovara
They are just duplicates of AVCodecContext members so use those instead.
2015-05-17lavc/vc1: Never decode vc1 as gray if gray decoding was not enabled.Carl Eugen Hoyos
2015-05-08avcodec/vc1: Skip chroma operations if CODEC_FLAG_GRAY is setMichael Niedermayer
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-28avcodec/vc1_block: Optimize vc1_decode_i_block_adv()zhaoxiu.zeng
9127 -> 8936 decicycles (fate-suite/vc1/SA10143.vc1) 13855 -> 10976 decicycles (fate-suite/vc1/SA20021.vc1) tests done by the author over this function but with the whole patchset applied not just this commit Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-28avcodec/vc1_block: Optimize vc1_decode_i_block()zhaoxiu.zeng
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-28avcodec/vc1_block: cosmeticszhaoxiu.zeng
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-28avcodec/vc1_block: move early exit code up in ff_vc1_pred_dc()zhaoxiu.zeng
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-28avcodec/vc1_block: Use av_clip_uintp2()zhaoxiu.zeng
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2015-02-28avcodec/vc1_block: Optimize vc1_decode_ac_coeff()zhaoxiu.zeng
Avoid branches in sign handling Move local variables to where they are used Signed-off-by: Michael Niedermayer <michaelni@gmx.at>