summaryrefslogtreecommitdiff
path: root/libavcodec/h264_mc_template.c
Commit message (Collapse)AuthorAge
* h264: drop a pointless indirectionAnton Khirnov2016-04-24
|
* h264: factor out pred weight table parsing into a separate fileAnton Khirnov2016-03-28
| | | | This will allow decoupling the parser from the decoder.
* 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
* h264: move mb_{x,y} into the per-slice contextAnton Khirnov2015-03-21
|
* h264: move mb_xy into the per-slice contextAnton Khirnov2015-03-21
|
* h264: move sub_mb_type into the per-slice contextAnton Khirnov2015-03-21
|
* h264: move mb_[uv]linesize into the per-slice contextAnton Khirnov2015-03-21
|
* h264: move {mv,ref}_cache into the per-slice contextAnton Khirnov2015-03-21
|
* h264: split weighted pred-related vars into per-slice contextAnton Khirnov2015-03-21
|
* Add missing headers to make template files compile (more) standaloneDiego Biurrun2014-03-26
|
* lavc decoders: work with refcounted frames.Anton Khirnov2013-03-08
|
* 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: use templates to avoid excessive inliningMans Rullgard2012-07-05
Instead of inlining everything into ff_h264_hl_decode_mb(), use explicit templating to create versions of the called functions with constant parameters filled in. This greatly speeds up compilation of h264.c and reduces the code size without any measurable impact on performance. Compilation time for h264.c on an i7 goes from 30s to 5.5s. Code size is reduced by 430kB. Signed-off-by: Mans Rullgard <mans@mansr.com>