summaryrefslogtreecommitdiff
path: root/libavcodec/h264_mb.c
Commit message (Collapse)AuthorAge
* avcodec/thread: Move ff_thread_(await|report)_progress to new headerAndreas Rheinhardt2022-02-09
| | | | | | | | | | This is in preparation for further commits that will stop using ThreadFrame for frame-threaded codecs that don't use ff_thread_(await|report)_progress(); the API for those codecs having inter-frame depdendencies will live in threadframe.h. Reviewed-by: Anton Khirnov <anton@khirnov.net> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* Merge commit '45c4bf3df03ef53ae61fa1473424d4ae024f22e4'James Almer2017-11-08
|\ | | | | | | | | | | | | * commit '45c4bf3df03ef53ae61fa1473424d4ae024f22e4': h264dec: track the last seen value of x264_build Merged-by: James Almer <jamrial@gmail.com>
* | avcodec/h264_mb: Fix 8x8dct in lossless for new versions of x264Anton Mitrofanov2017-06-19
| | | | | | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* | Merge commit 'f638b67e5790735f34620bf82025c9b9d6fc7216'James Almer2016-08-01
|\| | | | | | | | | | | | | | | | | | | | | | | * commit 'f638b67e5790735f34620bf82025c9b9d6fc7216': h264: move the parameter set definitions to a new header file Conflicts: libavcodec/h264_parse.h libavcodec/h264_ps.c libavcodec/h264dec.h Merged-by: James Almer <jamrial@gmail.com>
| * h264: move the parameter set definitions to a new header fileAnton Khirnov2016-06-21
| | | | | | | | | | The PS parsing code is independent from the decoder, so it makes more sense for it to have its own separate header.
* | Merge commit '9df889a5f116c1ee78c2f239e0ba599c492431aa'Clément Bœsch2016-07-29
|\| | | | | | | | | | | | | * commit '9df889a5f116c1ee78c2f239e0ba599c492431aa': h264: rename h264.[ch] to h264dec.[ch] Merged-by: Clément Bœsch <u@pkh.me>
| * h264: rename h264.[ch] to h264dec.[ch]Anton Khirnov2016-06-21
| | | | | | | | This is more consistent with the naming of other decoders.
* | Merge commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb'Clément Bœsch2016-06-21
|\| | | | | | | | | | | | | * commit '41ed7ab45fc693f7d7fc35664c0233f4c32d69bb': cosmetics: Fix spelling mistakes Merged-by: Clément Bœsch <u@pkh.me>
| * cosmetics: Fix spelling mistakesVittorio Giovara2016-05-04
| | | | | | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* | Merge commit '728d90a0c1973661a9e73da697bf4f90c9d19577'Clément Bœsch2016-06-18
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '728d90a0c1973661a9e73da697bf4f90c9d19577': h264: decouple h264_sei from the h264 decoder Main changes: - SEI decoding doesn't have access to the debug flag in the codec context so a few logging are dropped. - naming of quincunx_sampling_flag and frame_packing_arrangement_type are kept as they are in FFmpeg instead of respectively quincunx_subsampling and arrangement_type used in Libav because the former match the specifications. - don't reset the x264 build info once read in order to fix fate-h264-lossless (change by Hendrik) - H264Context.has_recovery_point and deprecated AVCodecContext.dtg_active_format are set after ff_h264_sei_decode() based on the SEI state since ff_h264_sei_decode() doesn't have access to H264Context anymore. - frame_packing_arrangement_type is not checked against <= 0 in decode_postinit() since it is always read as a positive value with get_bits(). This fixes a -Wtype-limits warning by GCC spotted by Michael. Side Notes: - tested that ffprobe on the file from ticket #3652 still returns 4 keyframes - tested that playback from ticket #3063 still works Merged-by: Clément Bœsch <clement@stupeflix.com> Signed-off-by: Hendrik Leppkes <h.leppkes@gmail.com>
* | Merge commit '3176217c60ca7828712985092d9102d331ea4f3d'Clément Bœsch2016-06-12
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '3176217c60ca7828712985092d9102d331ea4f3d': h264: decouple h264_ps from the h264 decoder Main changes: - a local GetBitContext is created for the various ff_h264_decode_seq_parameter_set() attempts - just like the old code, remove_sps() is adjusted so it doesn't remove the pps. Fixes decode with Ticket #631 http://ffmpeg.org/pipermail/ffmpeg-user/attachments/20111108/dae58f17/attachment.mp4 but see next point as well. - ff_h264_update_thread_context() is updated to work even when SPS isn't set as it breaks current skip_frame code. This makes sure we can still decode the sample from ticket #631 without the need for -flags2 +chunks. (Thanks to Michael) - keep {sps,pps}_ref pointers that stay alive even when the active pps/sps get removed from the available lists (patch by michaelni with additionnal frees in ff_h264_free_context() from mateo) - added a check on sps in avpriv_h264_has_num_reorder_frames() to fix crashes with mpegts_with_dvbsubs.ts from Ticket #4074 http://samples.ffmpeg.org/ffmpeg-bugs/trac/ticket4074/mpegts_with_dvbsubs.ts - in h264_parser.c:h264_parse(), after the ff_h264_decode_extradata() is called, the pps and sps from the local parser context are updated with the pps and sps from the used h264context. This fixes fate-flv-demux. - in h264_slice.c, "PPS changed between slices" error is not triggered anymore in one condition as it makes fate-h264-xavc-4389 fails with THREADS=N (Thanks to Michael) Merged-by: Clément Bœsch <clement@stupeflix.com> Merged-by: Michael Niedermayer <michael@niedermayer.cc> Merged-by: Matthieu Bouron <matthieu.bouron@stupeflix.com>
| * h264: decouple h264_ps from the h264 decoderAnton Khirnov2016-04-24
| | | | | | | | | | | | | | | | | | Make the SPS/PPS parsing independent of the H264Context, to allow decoupling the parser from the decoder. The change is modelled after the one done earlier for HEVC. Move the dequant buffers to the PPS to avoid complex checks whether they changed and an expensive copy for frame threads.
* | Merge commit '9b30f8dd8fa5bef5f16904cb98745b4a58f8f776'Derek Buitenhuis2016-04-27
|\| | | | | | | | | | | | | * commit '9b30f8dd8fa5bef5f16904cb98745b4a58f8f776': h264: remove the svq3-specific code Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
| * h264: remove the svq3-specific codeAnton Khirnov2016-03-28
| |
* | Merge commit 'e481458bc308ee838deaeacac51929514762e7a7'Derek Buitenhuis2016-04-26
|\| | | | | | | | | | | | | * commit 'e481458bc308ee838deaeacac51929514762e7a7': h264: factor out pred weight table parsing into a separate file Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
| * h264: factor out pred weight table parsing into a separate fileAnton Khirnov2016-03-28
| | | | | | | | This will allow decoupling the parser from the decoder.
* | Merge commit '7c6eb0a1b7bf1aac7f033a7ec6d8cacc3b5c2615'Michael Niedermayer2015-07-27
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
| * lavc: AV-prefix all codec flagsVittorio Giovara2015-07-27
| | | | | | | | | | | | Convert doxygen to multiline and express bitfields more simply. Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* | avcodec/h264_mb: assert that frame waiting code actually references 2 ↵Michael Niedermayer2015-04-04
| | | | | | | | | | | | fields/1 frame Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit 'c28ed1d743443e783537d279ae721be3bbdf7646'Michael Niedermayer2015-03-21
|\| | | | | | | | | | | | | | | | | | | | | * commit 'c28ed1d743443e783537d279ae721be3bbdf7646': h264: move [uv]linesize to the per-slice context Conflicts: libavcodec/h264_mb.c libavcodec/h264_slice.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * h264: move [uv]linesize to the per-slice contextAnton Khirnov2015-03-21
| | | | | | | | | | | | While it is a per-frame variable, it is only really used in the low-level decoding code, so it is more efficient to store it in the slice context.
* | Merge commit 'a12d3188cbec15e22070e139fa5cc541da07e2c3'Michael Niedermayer2015-03-21
|\| | | | | | | | | | | | | | | | | | | | | | | | | * commit 'a12d3188cbec15e22070e139fa5cc541da07e2c3': h264: use a smaller struct for the ref lists Conflicts: libavcodec/h264_direct.c libavcodec/h264_mb.c libavcodec/h264_picture.c libavcodec/h264_refs.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * h264: use a smaller struct for the ref listsAnton Khirnov2015-03-21
| | | | | | | | | | | | There is no need to store a whole H264Picture, with a full AVFrame embedded in it. This should allow getting rid of the embedded AVFrame later.
* | Merge commit '94295106d20b32666a8c4e0d028ef79b9d3f3b7a'Michael Niedermayer2015-03-21
|\| | | | | | | | | | | | | * commit '94295106d20b32666a8c4e0d028ef79b9d3f3b7a': h264_mb: remove an unused function parameter Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * h264_mb: remove an unused function parameterAnton Khirnov2015-03-21
| |
* | Merge commit 'c377e04d8aa74d030672e9a4788a700b0695fc14'Michael Niedermayer2015-03-21
|\| | | | | | | | | | | | | | | | | | | * commit 'c377e04d8aa74d030672e9a4788a700b0695fc14': h264: move top_borders into the per-slice context Conflicts: libavcodec/h264.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * h264: move top_borders into the per-slice contextAnton Khirnov2015-03-21
| | | | | | | | | | Also change the method for allocating to the same one as used by edge_emu_buffer.
* | Merge commit '36d04801ba9d8622c2d759c172aea18561bac74d'Michael Niedermayer2015-03-21
|\| | | | | | | | | | | | | | | | | | | | | | | * commit '36d04801ba9d8622c2d759c172aea18561bac74d': h264: move the scratch buffers into the per-slice context Conflicts: libavcodec/h264.h libavcodec/h264_slice.c libavcodec/svq3.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * h264: move the scratch buffers into the per-slice contextAnton Khirnov2015-03-21
| | | | | | | | | | | | | | Also change the method for allocating them. Instead of two possible alloc calls from different places, just ensure they are allocated at the start of each slice. This should be simpler and less bug-prone than the previous method.
* | Merge commit 'e9b2383bf86b38ad18a001801aee20c8182e29bd'Michael Niedermayer2015-03-21
|\| | | | | | | | | | | | | | | | | | | | | | | * commit 'e9b2383bf86b38ad18a001801aee20c8182e29bd': h264: move mb_mbaff into the per-slice context Conflicts: libavcodec/h264_cabac.c libavcodec/h264_cavlc.c libavcodec/h264_slice.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * h264: move mb_mbaff into the per-slice contextAnton Khirnov2015-03-21
| |
* | Merge commit 'bc98e8c0e0a8babfea35c98855e366b29cbe1191'Michael Niedermayer2015-03-21
|\| | | | | | | | | | | | | | | | | | | * commit 'bc98e8c0e0a8babfea35c98855e366b29cbe1191': h264: move mb_field_decoding_flag into the per-slice context Conflicts: libavcodec/h264_slice.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * h264: move mb_field_decoding_flag into the per-slice contextAnton Khirnov2015-03-21
| |
* | Merge commit '6490a0c0fbe0e55f765ea2aa2e8495181ea1f719'Michael Niedermayer2015-03-21
|\| | | | | | | | | | | | | | | | | | | | | * commit '6490a0c0fbe0e55f765ea2aa2e8495181ea1f719': h264_mb: constify all uses of H264Context Conflicts: libavcodec/h264.h libavcodec/h264_mb.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * h264_mb: constify all uses of H264ContextAnton Khirnov2015-03-21
| | | | | | | | | | All the variables modified by this code are either per-MB arrays or have been moved to the per-slice context
* | Merge commit '51822879e7732ee8175dad98dde1a135f6e5c1a4'Michael Niedermayer2015-03-21
|\| | | | | | | | | | | | | * commit '51822879e7732ee8175dad98dde1a135f6e5c1a4': h264_mb: constify block_offset Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * h264_mb: constify block_offsetAnton Khirnov2015-03-21
| | | | | | | | It is read-only in this code.
* | Merge commit 'd4d9068cdf8f4b2b87ae87a2ef880d243f77b977'Michael Niedermayer2015-03-21
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | * commit 'd4d9068cdf8f4b2b87ae87a2ef880d243f77b977': h264: move mb_{x,y} into the per-slice context Conflicts: libavcodec/h264.c libavcodec/h264_cavlc.c libavcodec/h264_mb.c libavcodec/h264_slice.c libavcodec/svq3.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * h264: move mb_{x,y} into the per-slice contextAnton Khirnov2015-03-21
| |
* | Merge commit '0edbe6faa7ef80daf0e84353cbe733389bf1a522'Michael Niedermayer2015-03-21
|\| | | | | | | | | | | | | | | | | | | | | | | * commit '0edbe6faa7ef80daf0e84353cbe733389bf1a522': h264: move mb_xy into the per-slice context Conflicts: libavcodec/h264.c libavcodec/h264_cabac.c libavcodec/svq3.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * h264: move mb_xy into the per-slice contextAnton Khirnov2015-03-21
| |
* | Merge commit '07c5ca551b7327d3c4e33738cc0cd2d5ac2779fa'Michael Niedermayer2015-03-21
|\| | | | | | | | | | | | | | | | | | | | | * commit '07c5ca551b7327d3c4e33738cc0cd2d5ac2779fa': h264: move is_complex into the per-slice context Conflicts: libavcodec/h264_slice.c libavcodec/svq3.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * h264: move is_complex into the per-slice contextAnton Khirnov2015-03-21
| |
* | Merge commit 'e6c90ce94f1b07f50cea2babf7471af455cca0ff'Michael Niedermayer2015-03-21
|\| | | | | | | | | | | | | * commit 'e6c90ce94f1b07f50cea2babf7471af455cca0ff': h264: move loopfilter parameters into the per-slice context Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * h264: move loopfilter parameters into the per-slice contextAnton Khirnov2015-03-21
| |
* | Merge commit 'e7226984ac13aacb84eae77a372df8ff7685848f'Michael Niedermayer2015-03-21
|\| | | | | | | | | | | | | * commit 'e7226984ac13aacb84eae77a372df8ff7685848f': h264: move [{top,left}_]cbp into the per-slice context Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * h264: move [{top,left}_]cbp into the per-slice contextAnton Khirnov2015-03-21
| |
* | Merge commit 'bf03a878a76dea29b36f368759e9f66102b39a5f'Michael Niedermayer2015-03-21
|\| | | | | | | | | | | | | | | | | | | | | | | | | * commit 'bf03a878a76dea29b36f368759e9f66102b39a5f': h264: move mb[_{padding,luma_dc}] into the per-slice context Conflicts: libavcodec/h264.h libavcodec/h264_cavlc.c libavcodec/h264_mb.c libavcodec/h264_slice.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * h264: move mb[_{padding,luma_dc}] into the per-slice contextAnton Khirnov2015-03-21
| |
* | Merge commit '95eb35f30513e335990ad0d5dca6ddc318477291'Michael Niedermayer2015-03-21
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '95eb35f30513e335990ad0d5dca6ddc318477291': h264: move the ref lists variables into the per-slice context Conflicts: libavcodec/h264.c libavcodec/h264.h libavcodec/h264_cabac.c libavcodec/h264_cavlc.c libavcodec/h264_direct.c libavcodec/h264_mb.c libavcodec/h264_picture.c libavcodec/h264_refs.c libavcodec/h264_slice.c Merged-by: Michael Niedermayer <michaelni@gmx.at>