summaryrefslogtreecommitdiff
path: root/libavcodec/h264_cavlc.c
Commit message (Collapse)AuthorAge
* Merge remote-tracking branch 'qatar/master'Michael Niedermayer2011-10-12
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: (23 commits) fix AC3ENC_OPT_MODE_ON/OFF h264: fix HRD parameters parsing prores: implement multithreading. prores: idct sse2/sse4 optimizations. swscale: use aligned move for storage into temporary buffer. prores: extract idct into its own dspcontext and merge with put_pixels. h264: fix invalid shifts in init_cavlc_level_tab() intfloat_readwrite: fix signed addition overflows mov: do not misreport empty stts mov: cosmetics, fix for and if spacing id3v2: fix NULL pointer dereference mov: read album_artist atom mov: fix disc/track numbers and totals doc: fix references to obsolete presets directories for avconv/ffmpeg flashsv: return more meaningful error value flashsv: fix typo in av_log() message smacker: validate channels and sample format. smacker: check buffer size before reading output size smacker: validate number of channels smacker: Separate audio flags from sample rates in smacker demuxer. ... Conflicts: cmdutils.h doc/ffmpeg.texi libavcodec/Makefile libavcodec/motion_est_template.c libavformat/id3v2.c libavformat/mov.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * 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>
* | h264: fix intra 16x16 mode check when using mbaff and constrained_intra_pred.Laurent Aimar2011-10-02
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | h264dec: h264: 4:2:2 intra decodingBaptiste Coudurier2011-08-15
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2011-07-12
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: changelog: misc typo and wording fixes H.264: add filter_mb_fast support for >8-bit decoding doc: Remove outdated comments about gcc 2.95 and gcc 3.3 support. lls: use av_lfg instead of rand() in test program build: remove unnecessary dependency on libs from 'all' target H.264: avoid redundant alpha/beta calculations in loopfilter H.264: optimize intra/inter loopfilter decision mpegts: fix Continuity Counter error detection build: remove unnecessary FFLDFLAGS variable vp8/mt: flush worker thread, not application thread context, on seek. mt: proper locking around release_buffer calls. DxVA2: unbreak build after [657ccb5ac75ce34e62bd67f228d9bd36db72189e] hwaccel: unbreak build Eliminate FF_COMMON_FRAME macro. Conflicts: Changelog Makefile doc/developer.texi libavcodec/avcodec.h libavcodec/h264.c libavcodec/mpeg4videodec.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * 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.
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2011-07-04
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: (40 commits) H.264: template left MB handling H.264: faster fill_decode_caches H.264: faster write_back_* H.264: faster fill_filter_caches H.264: make filter_mb_fast support the case of unavailable top mb Do not include log.h in avutil.h Do not include pixfmt.h in avutil.h Do not include rational.h in avutil.h Do not include mathematics.h in avutil.h Do not include intfloat_readwrite.h in avutil.h Remove return statements following infinite loops without break RTSP: Doxygen comment cleanup doxygen: Escape '\' in Doxygen documentation. md5: cosmetics md5: use AV_WL32 to write result md5: add fate test md5: include correct headers md5: fix test program doxygen: Drop array size declarations from Doxygen parameter names. doxygen: Fix parameter names to match the function prototypes. ... Conflicts: libavcodec/x86/dsputil_mmx.c libavformat/flvenc.c libavformat/oggenc.c libavformat/wtv.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * H.264: faster write_back_*Jason Garrett-Glaser2011-07-03
| | | | | | | | Avoid aliasing, unroll loops, and inline more functions.
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2011-06-15
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: swscale: remove misplaced comment. ffmpeg: fix streaming to ffserver. swscale: split out RGB48 output functions from yuv2packed[12X]_c(). build: move vpath directives to main Makefile swscale: fix JPEG-range YUV scaling artifacts. build: move ALLFFLIBS to a more logical place ARM: factor some repetitive code into macros Fix SVQ3 after adding 4:4:4 H.264 support H.264: fix CODEC_FLAG_GRAY 4:4:4 H.264 decoding support ac3enc: fix allocation of floating point samples. Conflicts: ffmpeg.c libavcodec/dsputil_template.c libavcodec/h264.c libavcodec/mpegvideo.c libavcodec/snow.c libswscale/swscale.c libswscale/swscale_internal.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * 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.
* | Merge remote branch 'qatar/master'Michael Niedermayer2011-05-11
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: (30 commits) AVOptions: make default_val a union, as proposed in AVOption2. arm/h264pred: add missing argument type. h264dsp_mmx: place bracket outside #if/#endif block. lavf/utils: fix ff_interleave_compare_dts corner case. fate: add 10-bit H264 tests. h264: do not print "too many references" warning for intra-only. Enable decoding of high bit depth h264. Adds 8-, 9- and 10-bit versions of some of the functions used by the h264 decoder. Add support for higher QP values in h264. Add the notion of pixel size in h264 related functions. Make the h264 loop filter bit depth aware. Template dsputil_template.c with respect to pixel size, etc. Template h264idct_template.c with respect to pixel size, etc. Preparatory patch for high bit depth h264 decoding support. Move some functions in dsputil.c into a new file dsputil_template.c. Move the functions in h264idct into a new file h264idct_template.c. Move the functions in h264pred.c into a new file h264pred_template.c. Preparatory patch for high bit depth h264 decoding support. Add pixel formats for 9- and 10-bit yuv420p. Choose h264 chroma dc dequant function dynamically. ... Conflicts: doc/APIchanges ffmpeg.c ffplay.c libavcodec/alpha/dsputil_alpha.c libavcodec/arm/dsputil_init_arm.c libavcodec/arm/dsputil_init_armv6.c libavcodec/arm/dsputil_init_neon.c libavcodec/arm/dsputil_iwmmxt.c libavcodec/arm/h264pred_init_arm.c libavcodec/bfin/dsputil_bfin.c libavcodec/dsputil.c libavcodec/h264.c libavcodec/h264.h libavcodec/h264_cabac.c libavcodec/h264_cavlc.c libavcodec/h264_loopfilter.c libavcodec/h264_ps.c libavcodec/h264_refs.c libavcodec/h264dsp.c libavcodec/h264idct.c libavcodec/h264pred.c libavcodec/mlib/dsputil_mlib.c libavcodec/options.c libavcodec/ppc/dsputil_altivec.c libavcodec/ppc/dsputil_ppc.c libavcodec/ppc/h264_altivec.c libavcodec/ps2/dsputil_mmi.c libavcodec/sh4/dsputil_align.c libavcodec/sh4/dsputil_sh4.c libavcodec/sparc/dsputil_vis.c libavcodec/utils.c libavcodec/version.h libavcodec/x86/dsputil_mmx.c libavformat/options.c libavformat/utils.c libavutil/pixfmt.h libswscale/swscale.c libswscale/swscale_internal.h libswscale/swscale_template.c tests/ref/seek/lavf_avi Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * 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.
* | replace deprecated FF_*_TYPE symbols with AV_PICTURE_TYPE_*Stefano Sabatini2011-05-02
| |
* | replace deprecated av_get_pict_type_char() with av_get_picture_type_char()Stefano Sabatini2011-05-02
| |
* | H264: replace pixel_size by pixel_shiftMichael Niedermayer2011-04-10
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Add support for higher QP values in h264.Oskar Arvidsson2011-04-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: Michael Niedermayer <michaelni@gmx.at>
* | Add the notion of pixel size in h264 related functions.Oskar Arvidsson2011-04-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: Michael Niedermayer <michaelni@gmx.at>
* | Set gray (128) U/V planes for chroma-less samples. Fixes two fate samplesRonald S. Bultje2011-01-21
| | | | | | | | | | when played with -flags emu_edge. (cherry picked from commit 8bcfe7f7fd71e5d548c2cd96d33295ff06a5f6c8)
* | Revert 2a1f431d38ea9c05abb215d70c7dc09cdb6888ab, it broke H264 lossless.Ronald S. Bultje2011-01-21
|/ | | | (cherry picked from commit 66c6b5e2a5e6376c4a5c65b1d96fd7a1580bdfcf)
* 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
* 1 cpu cycle faster suffix_length calculation.Michael Niedermayer2010-01-24
| | | | Originally committed as revision 21425 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Move dquant check into qscale overflow check.Michael Niedermayer2010-01-21
| | | | | | | This should be faster (couldnt meassue a difference), and its less picky on slightly out of spec dquant. Originally committed as revision 21373 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Merge multiple IS_* macro uses where possible.Michael Niedermayer2010-01-20
| | | | Originally committed as revision 21340 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Fix compilation with -O0.Michael Niedermayer2010-01-18
| | | | Originally committed as revision 21308 to svn://svn.ffmpeg.org/ffmpeg/trunk
* filter_mb_fast needs cbp_table to be set.Michael Niedermayer2010-01-18
| | | | Originally committed as revision 21290 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Split fill_caches() between filter and decoder.Michael Niedermayer2010-01-17
| | | | Originally committed as revision 21271 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Rearchitecturing the stiched up goose part 1Michael Niedermayer2010-01-17
| | | | | | | | | | | Run loop filter per row instead of per MB, this also should make it much easier to switch to per frame filtering and also doing so in a seperate thread in the future if some volunteer wants to try. Overall decoding speedup of 1.7% (single thread on pentium dual / cathedral sample) This change also allows some optimizations to be tried that would not have been possible before. Originally committed as revision 21270 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Replace cabac checks in inline functions from h264.h with constants.Michael Niedermayer2010-01-16
| | | | | | | No benchmark because its just replacing variables with litteral constants (so no risk for slowdown outside gcc silliness) and i need sleep. Originally committed as revision 21237 to svn://svn.ffmpeg.org/ffmpeg/trunk