Mercurial > libavcodec.hg
changeset 11790:f918fb753b31 libavcodec
Parse avctx->extradata if available.
Fixes many "non-existing PPS referenced" error messages
author | hyc |
---|---|
date | Fri, 28 May 2010 18:50:39 +0000 |
parents | 2064f8a1691e |
children | 51abd780bda6 |
files | h264.h h264_parser.c |
diffstat | 2 files changed, 10 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/h264.h Fri May 28 07:22:04 2010 +0000 +++ b/h264.h Fri May 28 18:50:39 2010 +0000 @@ -465,6 +465,7 @@ 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];
--- a/h264_parser.c Fri May 28 07:22:04 2010 +0000 +++ b/h264_parser.c Fri May 28 18:50:39 2010 +0000 @@ -245,6 +245,14 @@ 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 @@ { H264Context *h = s->priv_data; h->thread_context[0] = h; + h->first_picture = 1; return 0; }