summaryrefslogtreecommitdiff
path: root/libavcodec/h264_refs.c
Commit message (Collapse)AuthorAge
* lavc decoders: work with refcounted frames.Anton Khirnov2013-03-08
|
* Remove unnecessary dsputil.h #includesDiego Biurrun2013-02-26
|
* h264: deMpegEncContextizeAnton Khirnov2013-02-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | Most of the changes are just trivial are just trivial replacements of fields from MpegEncContext with equivalent fields in H264Context. Everything in h264* other than h264.c are those trivial changes. The nontrivial parts are: 1) extracting a simplified version of the frame management code from mpegvideo.c. We don't need last/next_picture anymore, since h264 uses its own more complex system already and those were set only to appease the mpegvideo parts. 2) some tables that need to be allocated/freed in appropriate places. 3) hwaccels -- mostly trivial replacements. for dxva, the draw_horiz_band() call is moved from ff_dxva2_common_end_frame() to per-codec end_frame() callbacks, because it's now different for h264 and MpegEncContext-based decoders. 4) svq3 -- it does not use h264 complex reference system, so I just added some very simplistic frame management instead and dropped the use of ff_h264_frame_start(). Because of this I also had to move some initialization code to svq3. Additional fixes for chroma format and bit depth changes by Janne Grunau <janne-libav@jannau.net> Signed-off-by: Anton Khirnov <anton@khirnov.net>
* h264: fix ff_generate_sliding_window_mmcos() prototype.Anton Khirnov2013-01-14
| | | | | | | It's been returning an error value since bad446e251405dc250c3cbee199072e083a1e4b9 Also check for the errors it returns.
* h264: don't clobber mmco opcode tables for non-first slice headers.Ronald S. Bultje2013-01-14
| | | | | | | | | | | | | | | | | | | | | Clobbering these tables will temporarily clobber the template used as a basis for other threads to start decoding from. If the other decoding thread updates from the template right at that moment, subsequent threads will get invalid (or, usually, none at all) mmco tables. This leads to invalid reference lists and subsequent decode failures. Therefore, instead, decode the mmco tables only for the first slice in a field or frame. For other slices, decode the bits and ensure they are identical to the mmco tables in the first slice, but don't ever clobber the context state. This prevents other threads from using a clobbered/invalid template as starting point for decoding, and thus fixes decoding in these cases. This fixes occasional (~1%) failures of h264-conformance-mr1_bt_a with frame-multithreading enabled. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* h264_refs: Fix debug tprintf argument typesDiego Biurrun2012-09-27
|
* h264: fix frame reordering code.Ronald S. Bultje2011-12-03
| | | | | Fixes fate-h264-conformance-{mr2_tandberg_e,mr3_tandberg_b} without requiring -strict 1.
* lavc: replace references to deprecated AVCodecContext.error_recognition to ↵Dustin Brody2011-10-22
| | | | | | use AVCodecContext.err_recognition Signed-off-by: Anton Khirnov <anton@khirnov.net>
* h264: correct the check for invalid long term frame index in MMCO decodeJeff Downs2011-08-19
| | | | | | | | The current check on MMCO parameters prohibits a "max long term frame index plus 1" of 16 (frame idx of 15) for the "set max long term frame index" MMCO. Fix this off-by-one error to allow the full range of legal values. Signed-off-by: Diego Biurrun <diego@biurrun.de>
* h264: hide reference frame errors unless requestedDustin Brody2011-08-17
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* h264: add missing brackets.Ronald S. Bultje2011-08-12
| | | | This caused failure of a few fate tests.
* h264: propagate error return values for AV_LOG_ERROR-triggering eventsDustin Brody2011-08-09
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* Eliminate FF_COMMON_FRAME macro.Diego Biurrun2011-07-11
| | | | | FF_COMMON_FRAME holds the contents of the AVFrame structure and is also copied to struct Picture. Replace by an embedded AVFrame structure in struct Picture.
* h264: do not print "too many references" warning for intra-only.Ronald S. Bultje2011-05-10
| | | | Fixes issue 2679.
* Replace deprecated FF_*_TYPE symbols with AV_PICTURE_TYPE_*.Stefano Sabatini2011-05-02
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* Replace FFmpeg with Libav in licence headersMans Rullgard2011-03-19
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* Perform sliding window operation during frame gap handling.Michael Niedermayer2010-07-05
| | | | | | This avoids some warnings about too many reference frames. Originally committed as revision 24057 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Factorize ff_generate_sliding_window_mmcos() out.Michael Niedermayer2010-07-05
| | | | Originally committed as revision 24056 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Remove explicit filename from Doxygen @file commands.Diego Biurrun2010-04-20
| | | | | | | | Passing an explicit filename to this command is only necessary if the documentation in the @file block refers to a file different from the one the block resides in. Originally committed as revision 22921 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Fix implicit weight for b frames in mbaff.Michael Niedermayer2010-03-30
| | | | Originally committed as revision 22733 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Reorder indexes in weight tables.Michael Niedermayer2010-03-03
| | | | | | 5 cpu cycles faster. Originally committed as revision 22183 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Merge weight & offset tables, 15 cpu cycles faster.Michael Niedermayer2010-03-03
| | | | Originally committed as revision 22169 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Split all the reference picture handling off h264.c.Michael Niedermayer2010-01-12
Originally committed as revision 21172 to svn://svn.ffmpeg.org/ffmpeg/trunk