summaryrefslogtreecommitdiff
path: root/libavcodec/h264_cavlc.c
Commit message (Collapse)AuthorAge
* h264 does not depend on mpegvideo any moreVittorio Giovara2014-03-16
|
* mpegvideo: move mpegvideo formats-related defines to mpegutils.hVittorio Giovara2014-03-16
|
* h264_cavlc: check the size of the intra PCM data.Anton Khirnov2013-11-21
| | | | | | Fixes invalid reads. Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC:libav-stable@libav.org
* avcodec: Remove some commented-out debug cruftDiego Biurrun2013-08-20
|
* h264: add a parameter to the CHROMA444 macro.Anton Khirnov2013-03-21
| | | | This way it does not look like a constant.
* h264: add a parameter to the CHROMA422 macro.Anton Khirnov2013-03-21
| | | | This way it does not look like a constant.
* h264: add a parameter to the CABAC macro.Anton Khirnov2013-03-21
| | | | This way it does not look like a constant.
* h264: add a parameter to the FRAME_MBAFF macro.Anton Khirnov2013-03-21
| | | | This way it does not look like a constant.
* h264: add a parameter to the MB_FIELD macro.Anton Khirnov2013-03-21
| | | | This way it does not look like a constant.
* h264: add a parameter to the MB_MBAFF macro.Anton Khirnov2013-03-21
| | | | This way it does not look like a constant.
* lavc decoders: work with refcounted frames.Anton Khirnov2013-03-08
|
* h264: Don't store intra pcm samples in h->mbRonald S. Bultje2013-02-19
| | | | | | | | | Instead, keep them in the bitstream buffer until we read them verbatim, this saves a memcpy() and a subsequent clearing of the target buffer. decode_cabac+decode_mb for a sample file (CAPM3_Sony_D.jsv) goes from 6121.4 to 6095.5 cycles, i.e. 26 cycles faster. Signed-off-by: Martin Storsjö <martin@martin.st>
* 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>
* Drop DCTELEM typedefDiego Biurrun2013-01-22
| | | | | | It does not help as an abstraction and adds dsputil dependencies. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* h264: check for invalid zeros_left before writingRonald S. Bultje2012-12-08
| | | | | | | Prevent an invalid write into coeffs[scantable[-1]] if zeros_left itself was an invalid VLC code (and thus -1). Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* h264: fix invalid pointer arithmeticMans Rullgard2012-10-27
| | | | | | | | | | | | Subtracting a (positive) value from the address of an array violates C99 section 6.5.6: If both the pointer operand and the result point to elements of the same array object, or one past the last element of the array object, the evaluation shall not produce an overflow; otherwise, the behavior is undefined. Signed-off-by: Mans Rullgard <mans@mansr.com>
* h264: don't touch H264Context->ref_count[] during MB decodingRonald S. Bultje2012-10-05
| | | | | | | | | The variable is copied to subsequent threads at the same time, so this may cause wrong ref_count[] values to be copied to subsequent threads. This bug was found using TSAN. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* h264: Factorize declaration of mb_sizes array.Diego Biurrun2012-04-05
|
* h264: disallow constrained intra prediction modes for luma.Ronald S. Bultje2012-02-09
| | | | | | | | | | | Conversion of the luma intra prediction mode to one of the constrained ("alzheimer") ones can happen by crafting special bitstreams, causing a crash because we'll call a NULL function pointer for 16x16 block intra prediction, since constrained intra prediction functions are only implemented for chroma (8x8 blocks). Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind CC: libav-stable@libav.org
* cosmetics: Remove extra newlines at EOFAlex Converse2012-01-27
|
* doxygen: misc consistency, spelling and wording fixesDiego Biurrun2011-12-12
|
* h264: 4:2:2 intra decoding supportBaptiste Coudurier2011-10-21
| | | | | Signed-off-by: Diego Biurrun <diego@biurrun.de> Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* h264: fix invalid shifts in init_cavlc_level_tab()Mans Rullgard2011-10-11
| | | | | | | | The level_code expression includes a shift which is invalid in those cases where the value is not used. Moving the calculation to the branch where the result is used avoids these. Signed-off-by: Mans Rullgard <mans@mansr.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.
* H.264: faster write_back_*Jason Garrett-Glaser2011-07-03
| | | | Avoid aliasing, unroll loops, and inline more functions.
* 4:4:4 H.264 decoding supportJason Garrett-Glaser2011-06-13
| | | | Note: this is 4:4:4 from the 2007 spec revision, not the previous (now deprecated) 4:4:4 mode in H.264.
* Roll back 4:4:4 H.264 for nowJason Garrett-Glaser2011-06-13
| | | | Needs some ARM/PPC asm modifications.
* 4:4:4 H.264 decoding supportJason Garrett-Glaser2011-06-13
| | | | Note: this is 4:4:4 from the 2007 spec revision, not the previous (now deprecated) 4:4:4 mode in H.264.
* Add support for higher QP values in h264.Oskar Arvidsson2011-05-10
| | | | | | | | In high bit depth, the QP values may now be up to (51 + 6*(bit_depth-8)). Preparatory patch for high bit depth h264 decoding support. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* Add the notion of pixel size in h264 related functions.Oskar Arvidsson2011-05-10
| | | | | | | | | | In high bit depth the pixels will not be stored in uint8_t like in the normal case, but in uint16_t. The pixel size is thus 1 in normal bit depth and 2 in high bit depth. Preparatory patch for high bit depth h264 decoding support. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* Replace deprecated FF_*_TYPE symbols with AV_PICTURE_TYPE_*.Stefano Sabatini2011-05-02
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* Replace deprecated av_get_pict_type_char() with av_get_picture_type_char().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>
* Revert 2a1f431d38ea9c05abb215d70c7dc09cdb6888ab, it broke H264 lossless.Ronald S. Bultje2011-01-20
|
* Set gray (128) U/V planes for chroma-less samples. Fixes two fate samplesRonald S. Bultje2011-01-20
| | | | when played with -flags emu_edge.
* H.264/SVQ3: make chroma DC work the same way as luma DCJason Garrett-Glaser2011-01-15
| | | | | | | No speed improvement, but necessary for some future stuff. Also opens up the possibility of asm chroma dc idct/dequant. Originally committed as revision 26349 to svn://svn.ffmpeg.org/ffmpeg/trunk
* H.264: switch to x264-style tracking of luma/chroma DC NNZJason Garrett-Glaser2011-01-14
| | | | | | | Useful so that we don't have to run the hierarchical DC iDCT if there aren't any coefficients. Opens up some future opportunities for optimization as well. Originally committed as revision 26337 to svn://svn.ffmpeg.org/ffmpeg/trunk
* H.264: split luma dc idct out and implement MMX/SSE2 versionsJason Garrett-Glaser2011-01-14
| | | | | | | | | | About 2.5x the speed. NOTE: the way that the asm code handles large qmuls is a bit suboptimal. If x264-style dequant was used (separate shift and qmul values), it might be possible to get some extra speed. Originally committed as revision 26336 to svn://svn.ffmpeg.org/ffmpeg/trunk
* H.264: 8% faster CAVLC zero-run decodingJason Garrett-Glaser2010-08-07
| | | | Originally committed as revision 24736 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
* Check level_prefix a bit (this just checks the max our bitreader can handle,Michael Niedermayer2010-03-10
| | | | | | | as i did nt find a limit in the spec) This should stop cavlc_decode_residual() on a zero bitstream Originally committed as revision 22429 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Remove some unneeded fill_rectangle() for 16x16 blocks.Michael Niedermayer2010-02-28
| | | | Originally committed as revision 22124 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Move check for and call of predict_field_decoding_flag() from the mb code toMichael Niedermayer2010-02-17
| | | | | | the row code. This function would only be needed on a MB basis for MBAFF+FMO Originally committed as revision 21860 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Split setting neighboring MBs from fill_decode_caches()Michael Niedermayer2010-02-15
| | | | | | no speed change. Originally committed as revision 21842 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Branchless setting of MB_TYPE_8x8DCT.Michael Niedermayer2010-01-24
| | | | | | Not benchmarked as i failed to find a sample that uses this one. But it should be faster. Originally committed as revision 21435 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Remove cruft.Michael Niedermayer2010-01-24
| | | | Originally committed as revision 21434 to svn://svn.ffmpeg.org/ffmpeg/trunk
* a[b-1] -> (a-1)[b].Michael Niedermayer2010-01-24
| | | | | | Helps gcc not to add seperate -1 instructions. Originally committed as revision 21432 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Optimize suffix_length computation, 1 cpu cycle speedup.Michael Niedermayer2010-01-24
| | | | Originally committed as revision 21431 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Simplify suffix_length computation, same speed.Michael Niedermayer2010-01-24
| | | | Originally committed as revision 21430 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Optimize level_code computation, 6cpu cycles speedup.Michael Niedermayer2010-01-24
| | | | Originally committed as revision 21428 to svn://svn.ffmpeg.org/ffmpeg/trunk