r23363 - in trunk/libavcodec: h264.h h264_parser.c
Author: hyc Date: Fri May 28 20:50:39 2010 New Revision: 23363 Log: Parse avctx->extradata if available. Fixes many "non-existing PPS referenced" error messages Modified: trunk/libavcodec/h264.h trunk/libavcodec/h264_parser.c Modified: trunk/libavcodec/h264.h ============================================================================== --- trunk/libavcodec/h264.h Fri May 28 20:21:57 2010 (r23362) +++ trunk/libavcodec/h264.h Fri May 28 20:50:39 2010 (r23363) @@ -465,6 +465,7 @@ typedef struct H264Context{ int is_avc; ///< this flag is != 0 if codec is avc1 int nal_length_size; ///< Number of bytes used for nal length (1, 2 or 4) + int first_picture; SPS *sps_buffers[MAX_SPS_COUNT]; PPS *pps_buffers[MAX_PPS_COUNT]; Modified: trunk/libavcodec/h264_parser.c ============================================================================== --- trunk/libavcodec/h264_parser.c Fri May 28 20:21:57 2010 (r23362) +++ trunk/libavcodec/h264_parser.c Fri May 28 20:50:39 2010 (r23363) @@ -245,6 +245,14 @@ static int h264_parse(AVCodecParserConte ParseContext *pc = &h->s.parse_context; int next; + if (h->first_picture) { + h->first_picture = 0; + if (avctx->extradata_size) { + h->s.avctx = avctx; + ff_h264_decode_extradata(h); + } + } + if(s->flags & PARSER_FLAG_COMPLETE_FRAMES){ next= buf_size; }else{ @@ -319,6 +327,7 @@ static int init(AVCodecParserContext *s) { H264Context *h = s->priv_data; h->thread_context[0] = h; + h->first_picture = 1; return 0; }
hyc <subversion <at> mplayerhq.hu> writes:
Log: Parse avctx->extradata if available. Fixes many "non-existing PPS referenced" error messages
This commit introduced issue 2222: Remuxing a H264 sample from ts to mov breaks A/V sync. Carl Eugen
participants (2)
-
cehoyos@ag.or.at -
subversion@mplayerhq.hu