summaryrefslogtreecommitdiff
path: root/libavcodec/h264_parser.c
Commit message (Collapse)AuthorAge
* avcodec/h264_parser: heuristically detect non marked keyframesMichael Niedermayer2013-10-26
| | | | | | Fixes Ticket3083 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* Merge commit '103d073dd7ce23b912df32be8c9524ba25dd5991'Michael Niedermayer2013-10-22
|\ | | | | | | | | | | | | | | | | | | * commit '103d073dd7ce23b912df32be8c9524ba25dd5991': h264_parser: Use ff_h264_reset_sei() Conflicts: libavcodec/h264_parser.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * 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>
* | avcodec/h264_parser: fix order of operationsMichael Niedermayer2013-10-19
| | | | | | | | | | | | Fixes CID1108576 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit '4baba6c813b7a1f27370e20fb1a87b05fcb39208'Michael Niedermayer2013-10-16
|\| | | | | | | | | | | | | | | | | | | * commit '4baba6c813b7a1f27370e20fb1a87b05fcb39208': h264_parser: Fix POC parsing for the case where MMCO_RESET is present. Conflicts: libavcodec/h264.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * 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>
* | Merge commit 'b81dbd6cb7522bea96d78a52f8a4c25a47b820c9'Michael Niedermayer2013-10-16
|\| | | | | | | | | | | | | * commit 'b81dbd6cb7522bea96d78a52f8a4c25a47b820c9': h264_parser: Fix POC parsing for the case where MMCO_RESET is absent. Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * 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>
* | Merge commit '218d6844b37d339ffbf2044ad07d8be7767e2734'Michael Niedermayer2013-08-08
|\| | | | | | | | | | | | | | | | | | | * commit '218d6844b37d339ffbf2044ad07d8be7767e2734': h264dsp: Factorize code into a new function, h264_find_start_code_candidate Conflicts: libavcodec/h264_parser.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * 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>
* | Merge commit '7a82022ee2f9b1fad991ace0936901e7419444be'Michael Niedermayer2013-08-08
|\| | | | | | | | | | | | | * commit '7a82022ee2f9b1fad991ace0936901e7419444be': h264_parser: Initialize the h264dsp context in the parser as well Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * 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>
* | Merge commit 'a8b19271c3b40ac3c3dc769fe248887acf14ba5a'Michael Niedermayer2013-08-03
|\| | | | | | | | | | | | | | | | | | | | | * commit 'a8b19271c3b40ac3c3dc769fe248887acf14ba5a': avcodec: Add output_picture_number to AVCodecParserContext Conflicts: doc/APIchanges libavcodec/version.h Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * 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: add frame packing as stereo_mode frame metadataJoakim Plate2013-07-21
| | | | | | | | | | | | | | This matches the matroska defintion of stereo_mode, with no metadata written if no info exist in sei Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge commit 'f8a4d5e970f32f8cc747f9fa7bd975ee4a060ea1'Michael Niedermayer2013-06-08
|\| | | | | | | | | | | | | | | | | | | | | * commit 'f8a4d5e970f32f8cc747f9fa7bd975ee4a060ea1': h264_parser: K&R formatting cosmetics vorbis: return meaningful errors Conflicts: libavcodec/h264_parser.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * h264_parser: K&R formatting cosmeticsLuca Barbato2013-06-07
| |
* | Merge commit 'e9e5a1bdc769a7225ab0d4f8b33bcacc6496bd68'Michael Niedermayer2013-05-24
|\| | | | | | | | | | | | | | | | | | | | | | | * commit 'e9e5a1bdc769a7225ab0d4f8b33bcacc6496bd68': Monkey's Audio old versions FATE tests h264_parser: Set field_order and picture_structure. Conflicts: libavcodec/h264_parser.c tests/fate/lossless-audio.mak Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * h264_parser: Set field_order and picture_structure.Yusuke Nakamura2013-05-24
| | | | | | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* | Merge commit '6fee1b90ce3bf4fbdfde7016e0890057c9000487'Michael Niedermayer2013-05-05
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '6fee1b90ce3bf4fbdfde7016e0890057c9000487': avcodec: Add av_cold attributes to init functions missing them Conflicts: libavcodec/aacpsy.c libavcodec/atrac3.c libavcodec/dvdsubdec.c libavcodec/ffv1.c libavcodec/ffv1enc.c libavcodec/h261enc.c libavcodec/h264_parser.c libavcodec/h264dsp.c libavcodec/h264pred.c libavcodec/libschroedingerenc.c libavcodec/libxvid_rc.c libavcodec/mpeg12.c libavcodec/mpeg12enc.c libavcodec/proresdsp.c libavcodec/rangecoder.c libavcodec/videodsp.c libavcodec/x86/proresdsp_init.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * avcodec: Add av_cold attributes to init functions missing themDiego Biurrun2013-05-04
| |
* | Merge commit '088f38a4f9f54bb923405c67c9e72d96d90aa284'Michael Niedermayer2013-05-01
|\| | | | | | | | | | | | | | | | | | | | | | | * commit '088f38a4f9f54bb923405c67c9e72d96d90aa284': avcodec: Drop unnecessary ff_ name prefixes from static functions Conflicts: libavcodec/ass.c libavcodec/h264_parser.c libavcodec/utils.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * avcodec: Drop unnecessary ff_ name prefixes from static functionsDiego Biurrun2013-04-30
| |
* | Merge commit 'f1e9398621af0bc9d166014e4ce6996bb4f141d0'Michael Niedermayer2013-03-26
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | * commit 'f1e9398621af0bc9d166014e4ce6996bb4f141d0': lavc: Rename avpriv_mpv_find_start_code after moving out from mpegvideo Conflicts: libavcodec/h264_parser.c libavcodec/internal.h libavcodec/mpeg12.c libavcodec/utils.c libavformat/mpegtsenc.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * 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>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2013-02-16
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: h264: deMpegEncContextize Conflicts: libavcodec/dxva2_h264.c libavcodec/h264.c libavcodec/h264.h libavcodec/h264_cabac.c libavcodec/h264_cavlc.c libavcodec/h264_loopfilter.c libavcodec/h264_mb_template.c libavcodec/h264_parser.c libavcodec/h264_ps.c libavcodec/h264_refs.c libavcodec/h264_sei.c libavcodec/svq3.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * 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>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2012-10-01
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: avcodec: Convert some commented-out printf/av_log instances to av_dlog avcodec: Drop silly and/or broken printf debug output avcodec: Drop some silly commented-out av_log() invocations avformat: Convert some commented-out printf/av_log instances to av_dlog avformat: Remove non-compiling and/or silly commented-out printf/av_log statements Remove some silly disabled code. ac3dec: ensure get_buffer() gets a buffer for the correct number of channels Conflicts: libavcodec/dnxhddec.c libavcodec/ffv1.c libavcodec/h264.c libavcodec/h264_parser.c libavcodec/mjpegdec.c libavcodec/motion_est_template.c libavcodec/mpegaudiodec.c libavcodec/mpegvideo_enc.c libavcodec/put_bits.h libavcodec/ratecontrol.c libavcodec/wmaenc.c libavdevice/timefilter.c libavformat/asfdec.c libavformat/avidec.c libavformat/avienc.c libavformat/flvenc.c libavformat/utils.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * avcodec: Drop silly and/or broken printf debug outputDiego Biurrun2012-10-01
| |
* | Merge commit '36ef5369ee9b336febc2c270f8718cec4476cb85'Michael Niedermayer2012-08-07
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '36ef5369ee9b336febc2c270f8718cec4476cb85': Replace all CODEC_ID_* with AV_CODEC_ID_* lavc: add AV prefix to codec ids. Conflicts: doc/APIchanges doc/examples/decoding_encoding.c doc/examples/muxing.c ffmpeg.c ffprobe.c ffserver.c libavcodec/8svx.c libavcodec/avcodec.h libavcodec/dnxhd_parser.c libavcodec/dvdsubdec.c libavcodec/error_resilience.c libavcodec/h263dec.c libavcodec/libvorbisenc.c libavcodec/mjpeg_parser.c libavcodec/mjpegenc.c libavcodec/mpeg12.c libavcodec/mpeg4videodec.c libavcodec/mpegvideo.c libavcodec/mpegvideo_enc.c libavcodec/pcm.c libavcodec/r210dec.c libavcodec/utils.c libavcodec/v210dec.c libavcodec/version.h libavdevice/alsa-audio-dec.c libavdevice/bktr.c libavdevice/v4l2.c libavformat/asfdec.c libavformat/asfenc.c libavformat/avformat.h libavformat/avidec.c libavformat/caf.c libavformat/electronicarts.c libavformat/flacdec.c libavformat/flvdec.c libavformat/flvenc.c libavformat/framecrcenc.c libavformat/img2.c libavformat/img2dec.c libavformat/img2enc.c libavformat/ipmovie.c libavformat/isom.c libavformat/matroska.c libavformat/matroskadec.c libavformat/matroskaenc.c libavformat/mov.c libavformat/movenc.c libavformat/mp3dec.c libavformat/mpeg.c libavformat/mpegts.c libavformat/mxf.c libavformat/mxfdec.c libavformat/mxfenc.c libavformat/nsvdec.c libavformat/nut.c libavformat/oggenc.c libavformat/pmpdec.c libavformat/rawdec.c libavformat/rawenc.c libavformat/riff.c libavformat/sdp.c libavformat/utils.c libavformat/vocenc.c libavformat/wtv.c libavformat/xmv.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * 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>
* | h264_parser: use av_assertMichael Niedermayer2012-06-25
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | H264 parser: enable header parsing/frame type detection for is_avc.Reimar Döffinger2012-02-19
| | | | | | | | Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2012-01-07
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: flicvideo: fix invalid reads vorbis: Avoid some out-of-bounds reads vqf: add more known extensions cabac: remove unused function renorm_cabac_decoder h264: Only use symbols from the SVQ3 decoder under proper conditionals. add bytestream2_tell() and bytestream2_seek() functions parsers: initialize MpegEncContext.slice_context_count to 1 spdifenc: use special alignment for DTS-HD length_code Conflicts: libavcodec/flicvideo.c libavcodec/h264.c libavcodec/mpeg4video_parser.c libavcodec/vorbis.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * 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.
* | h264: disable checking reader, overreads are not possibleMichael Niedermayer2011-12-18
| | | | | | | | | | | | in ffmpegs h264 decoder. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Silence warnings when decoding QNAP Systems H264 codec.Carl Eugen Hoyos2011-12-03
| | | | | | | | Fixes ticket #571.
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2011-11-03
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: (44 commits) replacement Indeo 3 decoder gsm demuxer: do not allocate packet twice. flvenc: use first packet delay as global delay. ac3enc: doxygen update. imc: return error codes instead of 0 for error conditions. imc: return meaningful error codes instead of -1 imc: do not set channel layout for stereo imc: validate channel count imc: check for ff_fft_init() failure imc: check output buffer size before decoding imc: use DSPContext.bswap16_buf() to byte-swap packet data rtsp: add allowed_media_types option libgsm: add flush function to reset the decoder state when seeking libgsm: simplify decoding by using a loop gsm: log error message when packet is too small libgsmdec: do not needlessly set *data_size to 0 gsmdec: do not needlessly set *data_size to 0 gsmdec: add flush function to reset the decoder state when seeking libgsmdec: check output buffer size before decoding gsmdec: log error message when output buffer is too small. ... Conflicts: Changelog ffplay.c libavcodec/indeo3.c libavcodec/mjpeg_parser.c libavcodec/vp3.c libavformat/cutils.c libavformat/id3v2.c libavutil/parseutils.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * lavc: use designated initialisers for parsers.Anton Khirnov2011-11-02
| |
* | h264_parser: fully parse first_mb_in_slice to more reliably detect AU ↵Michael Niedermayer2011-10-27
| | | | | | | | | | | | boundaries. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | h264: use long reading for first_mb_in_sliceMichael Niedermayer2011-10-27
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | Merge remote-tracking branch 'qatar/master'Michael Niedermayer2011-10-21
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * qatar/master: (47 commits) lavc: hide private symbols. lavc: deprecate img_get_alpha_info(). lavc: use avpriv_ prefix for ff_toupper4. lavc: use avpriv_ prefix for ff_copy_bits and align_put_bits. lavc: use avpriv_ prefix for ff_ac3_parse_header. lavc: use avpriv_ prefix for ff_frame_rate_tab. lavc: rename ff_find_start_code to avpriv_mpv_find_start_code lavc: use avpriv_ prefix for ff_split_xiph_headers. lavc: use avpriv_ prefix for ff_dirac_parse_sequence_header. lavc: use avpriv_ prefix for some dv symbols used in lavf. lavc: use avpriv_ prefix for some flac symbols used in lavf. lavc: use avpriv_ prefix for some mpeg4audio symbols used in lavf. lavc: use avpriv_ prefix for some mpegaudio symbols used in lavf. lavc: use avpriv_ prefix for ff_aac_parse_header(). lavf: hide private symbols. lavf: use avpriv_ prefix for some dv functions. lavf: use avpriv_ prefix for ff_new_chapter(). avcodec: add CODEC_CAP_DELAY note to avcodec_decode_audio3() documentation avcodec: clarify the CODEC_CAP_DELAY note in avcodec_decode_video2() avcodec: clarify documentation of CODEC_CAP_DELAY ... Conflicts: configure doc/general.texi libavcodec/Makefile libavcodec/aacdec.c libavcodec/allcodecs.c libavcodec/avcodec.h libavcodec/dv.c libavcodec/dvdata.c libavcodec/dvdata.h libavcodec/libspeexenc.c libavcodec/mpegvideo.c libavcodec/version.h libavformat/avidec.c libavformat/dv.c libavformat/dv.h libavformat/flvenc.c libavformat/mov.c libavformat/mp3enc.c libavformat/oggparsespeex.c Merged-by: Michael Niedermayer <michaelni@gmx.at>
| * lavc: rename ff_find_start_code to avpriv_mpv_find_start_codeAnton Khirnov2011-10-20
| | | | | | | | It's used in lavf.
* | h264_parser: print AU size on error.Michael Niedermayer2011-10-03
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | h264_parser: AVC support.Michael Niedermayer2011-10-03
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
* | h264: pass buffer & size to ff_h264_decode_extradata()Michael Niedermayer2011-09-23
| | | | | | | | Signed-off-by: Michael Niedermayer <michaelni@gmx.at>