summaryrefslogtreecommitdiff
path: root/libavcodec/h264_parser.c
Commit message (Collapse)AuthorAge
* h264_parser: don't stop on SPS_EXT in splitJohn Stebbins2014-11-11
| | | | | Add SPS_EXT, SEI, and subset SPS to codes that are skipped during split. These codes can come before the PPS and results in incomplete extradata.
* cosmetics: Write NULL pointer equality checks more compactlyGabriel Dume2014-08-15
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* h264: Move start code search functions into separate source files.Ben Avison2014-08-04
| | | | | | This permits re-use with parsers for codecs which use similar start codes. Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* mpegvideo: move mpegvideo formats-related defines to mpegutils.hVittorio Giovara2014-03-16
|
* h264_parser: use enum values in h264_find_frame_end()Vittorio Giovara2014-02-15
|
* h264: print values in case of errorVittorio Giovara2014-02-14
| | | | Also make error style consistent and drop redundant information.
* h264_parser: Use ff_h264_reset_sei()Yusuke Nakamura2013-10-22
| | | | Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* h264_parser: Fix order of operationsMichael Niedermayer2013-10-22
| | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at> Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
* h264_parser: Fix POC parsing for the case where MMCO_RESET is present.Yusuke Nakamura2013-10-15
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* h264_parser: Fix POC parsing for the case where MMCO_RESET is absent.Yusuke Nakamura2013-10-15
| | | | | | | The prev_ values were not set after parsing POC. Increase length of the buffer decoded to parse enough safely. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* h264dsp: Factorize code into a new function, h264_find_start_code_candidateBen Avison2013-08-08
| | | | | | | | | | | | | | | This performs the start code search which was previously part of h264_find_frame_end() - the most CPU intensive part of the function. By itself, this results in a performance regression: Before After Mean StdDev Mean StdDev Change Overall time 2925.6 26.2 3068.5 31.7 -4.7% but this can more than be made up for by platform-optimised implementations of the function. Signed-off-by: Martin Storsjö <martin@martin.st>
* h264_parser: Initialize the h264dsp context in the parser as wellBen Avison2013-08-08
| | | | | | | | | | | | | | | Each AVStream struct for an H.264 elementary stream actually has two copies of the H264DSPContext struct (and in fact all the other members of H264Context as well): ((H264Context *) ((AVStream *)st)->codec->priv_data)->h264dsp ((H264Context *) ((AVStream *)st)->parser->priv_data)->h264dsp but only the first of these was actually being initialised. This prevented the addition of platform-specific implementations of parser-related functions. Signed-off-by: Martin Storsjö <martin@martin.st>
* avcodec: Add output_picture_number to AVCodecParserContextYusuke Nakamura2013-08-02
| | | | | | Set output_picture_number in H.264 parser. Signed-off-by: Diego Biurrun <diego@biurrun.de>
* h264_parser: K&R formatting cosmeticsLuca Barbato2013-06-07
|
* h264_parser: Set field_order and picture_structure.Yusuke Nakamura2013-05-24
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* avcodec: Add av_cold attributes to init functions missing themDiego Biurrun2013-05-04
|
* avcodec: Drop unnecessary ff_ name prefixes from static functionsDiego Biurrun2013-04-30
|
* lavc: Rename avpriv_mpv_find_start_code after moving out from mpegvideoMartin Storsjö2013-03-26
| | | | | | | Also move the declaration to internal.h, and add restrict qualifiers to the declaration (as in the implementation). 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>
* avcodec: Drop silly and/or broken printf debug outputDiego Biurrun2012-10-01
|
* Replace all CODEC_ID_* with AV_CODEC_ID_*Anton Khirnov2012-08-07
|
* Fix parser not to clobber has_b_frames when extradata is set.Reinhard Tartler2012-02-26
| | | | | | | | | | | | | | | | | | | | | | Because in contrast to the decoder, the parser does not setup low_delay. The code in parse_nal_units would always end up setting has_b_frames to "1", except when stream is explicitly marked as low delay. Since the parser itself would create 'extradata', simply reopening the parser would cause this. This happens for instance in estimate_timings_from_pts(), which causes the parser to be reopened on the same stream. This fixes Libav #22 and FFmpeg (trac) #360 CC: libav-stable@libav.org Based on a patch by Reimar Döffinger <Reimar.Doeffinger@gmx.de> (commit 31ac0ac29b6bba744493f7d1040757a3f51b9ad7) Comments and description adapted by Reinhard Tartler. Signed-off-by: Reinhard Tartler <siretart@tauware.de>
* parsers: initialize MpegEncContext.slice_context_count to 1Janne Grunau2012-01-06
| | | | | | | | | The mpeg4 video, H264 and VC-1 parser hold (directly or indirectly) a MpegEncContext in their private context. Since they do not call the common mpegvideo init function slice_context_count has explicitly set to 1. Prevents a null pointer dereference in the h264 parser and fixes bug 193.
* Revert "h264: skip start code search if the size of the nal unit is known"Janne Grunau2011-12-19
| | | | This reverts commit 87eebb3454ff0cd6af6ebf9e1d31bdfd1c3b601b.
* h264: skip start code search if the size of the nal unit is knownJanne Grunau2011-12-18
| | | | | | | | Start code emulation prevention is only required in Annex B bytestream packed NAL units. For other coding formats the size is already known. Looking for a start code prefix can result in false positives like in http://streams.videolan.org/streams/mp4/Mr_MrsSmith-h264_aac.mp4 which has a false positive in the SPS.
* lavc: use designated initialisers for parsers.Anton Khirnov2011-11-02
|
* lavc: rename ff_find_start_code to avpriv_mpv_find_start_codeAnton Khirnov2011-10-20
| | | | It's used in lavf.
* doxygen: Consistently use '@' instead of '\' for Doxygen markup.Diego Biurrun2011-06-24
| | | | Signed-off-by: Diego Biurrun <diego@biurrun.de>
* h264_parser: Fix whitespace after previous change.Philip Langdale2011-06-13
| | | | | Signed-off-by: Philip Langdale <philipl@overt.org> Signed-off-by: Anton Khirnov <anton@khirnov.net>
* h264_parser: Fix behaviour when PARSER_FLAG_COMPLETE_FRAMES is set.Philip Langdale2011-06-13
| | | | | | | | | | Currently, the parser is buggy and only processes the stream extradata when the flag is set. This fixes it to actually inspect the frames. Whitespce will be fixed in a separate change. Signed-off-by: Philip Langdale <philipl@overt.org> Signed-off-by: Anton Khirnov <anton@khirnov.net>
* 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>
* h264: Add Intra and Constrained Baseline profiles to avctx.profileJanne Grunau2011-02-01
|
* Add ff_ prefix to data symbols of encoders, decoders, hwaccel, parsers, bsf.Diego Elio Pettenò2011-01-26
| | | | | | | 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-25
| | | | | | | 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>
* In h264 parser, return immediately if buf_size is 0, avoid printingBaptiste Coudurier2010-07-23
| | | | | | erroneous message for last frame. Originally committed as revision 24450 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Cleanup prev commit, flag variable should start with 0Howard Chu2010-05-28
| | | | Originally committed as revision 23364 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Parse avctx->extradata if available.Howard Chu2010-05-28
| | | | | | Fixes many "non-existing PPS referenced" error messages Originally committed as revision 23363 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Add an AVSTREAM_PARSE_FULL_ONCE parsing mode to parse headers and combine ↵Alex Converse2010-05-26
| | | | | | packets once and only once. Originally committed as revision 23332 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
* Export H264 profile and level in AVCodecContext.Rafaël Carré2010-01-28
| | | | | | Patch by Rafaël Carré, rafael D carre A gmail Originally committed as revision 21517 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Initialize thread_context[0] with h264 parser context.Rafaël Carré2010-01-28
| | | | | | | | This allows freeing the parser memory in the thread_context freeing loop. Patch by Rafaël Carré gmailify(rafael, carre) Originally committed as revision 21508 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Init state to -1 in h264 parser.Baptiste Coudurier2009-04-13
| | | | | | | | | | | | | Fix: ==22063== Conditional jump or move depends on uninitialised value(s) ==22063== at 0x811A4B7: ff_find_start_code (mpegvideo.c:99) ==22063== by 0x82F5B74: parse_nal_units (h264_parser.c:132) ==22063== by 0x82F5A68: h264_parse (h264_parser.c:261) [...] ==22063== Uninitialised value was created by a stack allocation ==22063== at 0x82F5AF5: parse_nal_units (h264_parser.c:112) Originally committed as revision 18479 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Add a ff_h264_free_context function and call it from the H.264 parser.Reimar Döffinger2009-04-10
| | | | | | This ensures that the parser will no longer leak memory for all SPS/PPS it encounters. Originally committed as revision 18406 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Fix SEIs when splitting H264 input.John Cox2009-03-16
| | | | | | Patch by John Cox, jc A kynesim D co D uk Originally committed as revision 18020 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Cosmetics: Fix indentation after last commit.Carl Eugen Hoyos2009-02-26
| | | | Originally committed as revision 17621 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Initialize H264 parser context correctly if the optional SEI messagesIvan Schreter2009-02-26
| | | | | | | | are not present. Patch by Ivan Schreter, schreter gmx net Originally committed as revision 17620 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Export timestamp parameter from H.264.Ivan Schreter2009-02-24
| | | | | | Patch by Ivan Schreter, schreter gmx net Originally committed as revision 17575 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Correct time_base of H.264 and repeat_pict.Ivan Schreter2009-02-24
| | | | | | Patch by Ivan Schreter, schreter gmx net Originally committed as revision 17571 to svn://svn.ffmpeg.org/ffmpeg/trunk
* Use context variable repeat_pict for frame duration computation andIvan Schreter2009-02-21
| | | | | | | | document this new use. Patch by Ivan Schreter, schreter gmx net Originally committed as revision 17492 to svn://svn.ffmpeg.org/ffmpeg/trunk