summaryrefslogtreecommitdiff
path: root/libavcodec/h264.c
Commit message (Collapse)AuthorAgeFilesLines
* h264-mt: fix deadlock in packets with multiple slices (e.g. MP4).Ronald S. Bultje2011-06-201-0/+2
|
* h264: drop some ugly castsAlex Converse2011-06-181-2/+2
|
* h264: Complexify frame num gap shortening codeAlexander Strange2011-06-161-3/+14
| | | | | | | | By observation it did not seem to handle prev_frame_num > frame_num. This does not affect any files I have. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com> Signed-off-by: Anton Khirnov <anton@khirnov.net>
* Fix decoding of mpegts streams with h264 video that does *NOT* have b framesMike Scheutzow2011-06-161-1/+2
| | | | | | | | | | | | | | | One of the causes of this bug is that the h264 parser defaults low_delay to 1, but the h264 codec defaults low_delay to 0. Really Ugly. After many hours of looking at this, I'm still not sure how has_b_frames is *intended* to behave, but to me the implementation appears way more complicated than it ought to be. My patch relies on the encoder to set an optional field in the SPS. This works for libx264 streams, but I'm not sure that all h264 encoders will set it. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* H.264: fix CODEC_FLAG_GRAYJason Garrett-Glaser2011-06-131-23/+28
| | | | It was broken in 4:4:4, and still did chroma deblocking for no reason in 4:2:0.
* 4:4:4 H.264 decoding supportJason Garrett-Glaser2011-06-131-264/+498
| | | | 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-131-519/+280
| | | | Needs some ARM/PPC asm modifications.
* H.264: fix CODEC_FLAG_GRAYJason Garrett-Glaser2011-06-131-23/+28
| | | | It was broken in 4:4:4, and still did chroma deblocking for no reason in 4:2:0.
* 4:4:4 H.264 decoding supportJason Garrett-Glaser2011-06-131-264/+498
| | | | Note: this is 4:4:4 from the 2007 spec revision, not the previous (now deprecated) 4:4:4 mode in H.264.
* h264: don't be so picky on decoding pps in extradata.Michael Niedermayer2011-06-131-1/+1
| | | | | | | Fixes issue2517 Signed-off-by: Michael Niedermayer <michaelni@gmx.at> Signed-off-by: Anton Khirnov <anton@khirnov.net>
* h264: change a few comments into error messagesMichael Niedermayer2011-06-131-7/+17
| | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at> Signed-off-by: Anton Khirnov <anton@khirnov.net>
* H264/MPEG frame-level multi-threading.Alexander Strange2011-06-021-174/+562
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* h264: Properly set coded_{width, height} when parsing H.264.Felipe Contreras2011-05-231-0/+3
| | | | | Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Diego Biurrun <diego@biurrun.de>
* h264: correct border check.Ronald S. Bultje2011-05-191-8/+8
| | | | | | | | | When backing up the top-left border, check that the top-left (rather than left) MB indeed does belong to our slice. If it doesn't, backing up has no positive effect but may accidentally interfere with other threads writing in the same space. Fixes occasional one-off effects when enabling slice-MT.
* h264: fix loopfilter with threading at slice boundaries.Ronald S. Bultje2011-05-191-7/+10
|
* h264: copy pixel_shift between slice threading contexts.Ronald S. Bultje2011-05-181-0/+1
| | | | | Fixes "make THREADS=2 THREAD_TYPE=2 fate-h264-conformance-frext-pph10i3_panasonic_a".
* Enable decoding of high bit depth h264.Oskar Arvidsson2011-05-101-0/+11
| | | | | | This patch completes the high bit depth h264 decoding support. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* Adds 8-, 9- and 10-bit versions of some of the functions used by the h264 ↵Oskar Arvidsson2011-05-101-4/+18
| | | | | | | | | | | | | | | | | decoder. This patch lets e.g. dsputil_init chose dsp functions with respect to the bit depth to decode. The naming scheme of bit depth dependent functions is <base name>_<bit depth>[_<prefix>] (i.e. the old clear_blocks_c is now named clear_blocks_8_c). Note: Some of the functions for high bit depth is not dependent on the bit depth, but only on the pixel size. This leaves some room for optimizing binary size. Preparatory patch for high bit depth h264 decoding support. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* Add support for higher QP values in h264.Oskar Arvidsson2011-05-101-8/+11
| | | | | | | | 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-101-103/+220
| | | | | | | | | | 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>
* Choose h264 chroma dc dequant function dynamically.Oskar Arvidsson2011-05-101-25/+4
| | | | | | Needed for high bit depth h264 decoding. Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* Replace deprecated FF_*_TYPE symbols with AV_PICTURE_TYPE_*.Stefano Sabatini2011-05-021-30/+30
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* Replace deprecated av_get_pict_type_char() with av_get_picture_type_char().Stefano Sabatini2011-05-021-1/+1
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* Remove some disabled printf debug cruft.Diego Biurrun2011-04-291-10/+0
|
* lavc: remove FF_API_HURRY_UP cruftAnton Khirnov2011-04-261-16/+2
|
* Introduce slice threads flag.Ronald S. Bultje2011-04-211-1/+2
| | | | Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
* lavc: mark hurry_up for removal on next major bumpAnton Khirnov2011-04-021-4/+18
| | | | | It has been deprecated for about five years, skip_idct/skip_frame should be used instead.
* Replace FFmpeg with Libav in licence headersMans Rullgard2011-03-191-4/+4
| | | | Signed-off-by: Mans Rullgard <mans@mansr.com>
* Merge libavcore into libavutilReinhard Tartler2011-02-151-1/+1
| | | | | | | | | | | | It is pretty hopeless that other considerable projects will adopt libavutil alone in other projects. Projects that need small footprint are better off with more specialized libraries such as gnulib or rather just copy the necessary parts that they need. With this in mind, nobody is helped by having libavutil and libavcore split. In order to ease maintenance inside and around FFmpeg and to reduce confusion where to put common code, avcore's functionality is merged (back) to avutil. Signed-off-by: Reinhard Tartler <siretart@tauware.de>
* h264: define FF_PROFILE_H264_HIGH_444 to the correct valueJanne Grunau2011-02-081-0/+1
| | | | | It was removed in fe9a3fb since it had the wrong value. Add profile name for it.
* h264: add profile names for the existing definesAnssi Hannula2011-02-011-0/+17
| | | | Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
* h264: Add Intra and Constrained Baseline profiles to avctx.profileJanne Grunau2011-02-011-1/+28
|
* Move ff_emulated_edge_mc() into DSPContext.Ronald S. Bultje2011-01-281-3/+3
|
* Add ff_ prefix to data symbols of encoders, decoders, hwaccel, parsers, bsf.Diego Elio Pettenò2011-01-261-2/+2
| | | | | | | None of these symbols should be accessed directly, so declare them as hidden. Signed-off-by: Mans Rullgard <mans@mansr.com>
* Make ff_h264_find_frame_end static to h264.c; delete h264_parser.hDiego Elio Pettenò2011-01-251-1/+0
| | | | | | | The header is empty after making the function static, so delete it and drop its usage. Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
* Make ff_h264_decode_rbsp_trailing static to h264.cDiego Elio Pettenò2011-01-251-1/+5
| | | | Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
* Reindent.Ronald S. Bultje2011-01-221-4/+4
| | | | Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
* Fix crash on resolution change (issue 2393).Ronald S. Bultje2011-01-221-4/+6
| | | | | | | | Don't free RBSP tables (containing decoded NAL units) on resolution change, because we actually need this data to decode the frame after reiniting (with new resolution). Fixed issue 2393. Signed-off-by: Janne Grunau <janne-ffmpeg@jannau.net>
* Remove H.264 encoder fragmentsAlex Converse2011-01-221-1/+1
| | | | | | | It's incomplete, no one is working on it, and when someone asks about working on it we advise them not to. Signed-off-by: Mans Rullgard <mans@mansr.com>
* Revert 2a1f431d38ea9c05abb215d70c7dc09cdb6888ab, it broke H264 lossless.Ronald S. Bultje2011-01-201-6/+91
|
* H.264/SVQ3: make chroma DC work the same way as luma DCJason Garrett-Glaser2011-01-151-91/+6
| | | | | | | 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
* Port SVQ3 to use the new mb_luma_dc method of storing luma DC coefficients.Jason Garrett-Glaser2011-01-151-1/+1
| | | | | | | Doesn't help speed as there isn't an asm implementation yet, but consistency is a good thing. Originally committed as revision 26348 to svn://svn.ffmpeg.org/ffmpeg/trunk
* H.264: Remove useless arg to chroma_dc_dequant_idct_cJason Garrett-Glaser2011-01-141-5/+5
| | | | Originally committed as revision 26345 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Fix SVQ3Jason Garrett-Glaser2011-01-141-9/+11
| | | | | | Regression in r26336-7. Originally committed as revision 26341 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Reindent after r26337.Jason Garrett-Glaser2011-01-141-11/+11
| | | | Originally committed as revision 26338 to svn://svn.ffmpeg.org/ffmpeg/trunk
* H.264: switch to x264-style tracking of luma/chroma DC NNZJason Garrett-Glaser2011-01-141-2/+6
| | | | | | | 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-141-42/+8
| | | | | | | | | | 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: eliminate non-transposed scantable support.Jason Garrett-Glaser2011-01-141-24/+10
| | | | | | | | | | It was an ugly hack to begin with and didn't give any performance. NOTE: this patch opens up some future simplifications to be made (such as removing some of the scantables from H264Context) but doesn't take advantage of them yet. Originally committed as revision 26329 to svn://svn.ffmpeg.org/ffmpeg/trunk
* H.264: fix grayscale decoding with explicit wpredJason Garrett-Glaser2011-01-101-1/+2
| | | | Originally committed as revision 26306 to svn://svn.ffmpeg.org/ffmpeg/trunk
* SVQ3: Allow decoding if thread_count is > 1Alexander Strange2010-12-151-1/+1
| | | | | | | svq3 still doesn't support multithreading, but it's simpler for clients if they can enable threading for all codecs by default. Originally committed as revision 26015 to svn://svn.ffmpeg.org/ffmpeg/trunk