h264_parser: Fix behaviour when PARSER_FLAG_COMPLETE_FRAMES is set.

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>
This commit is contained in:
Philip Langdale 2011-03-28 21:42:02 -07:00
parent eb79c528d8
commit 01f5b9c51e
1 changed files with 2 additions and 1 deletions

View File

@ -270,6 +270,7 @@ static int h264_parse(AVCodecParserContext *s,
assert(pc->last_index + next >= 0 ); assert(pc->last_index + next >= 0 );
ff_h264_find_frame_end(h, &pc->buffer[pc->last_index + next], -next); //update state ff_h264_find_frame_end(h, &pc->buffer[pc->last_index + next], -next); //update state
} }
}
parse_nal_units(s, avctx, buf, buf_size); parse_nal_units(s, avctx, buf, buf_size);
@ -282,10 +283,10 @@ static int h264_parse(AVCodecParserContext *s,
s->dts_ref_dts_delta = INT_MIN; s->dts_ref_dts_delta = INT_MIN;
s->pts_dts_delta = INT_MIN; s->pts_dts_delta = INT_MIN;
} }
if (s->flags & PARSER_FLAG_ONCE) { if (s->flags & PARSER_FLAG_ONCE) {
s->flags &= PARSER_FLAG_COMPLETE_FRAMES; s->flags &= PARSER_FLAG_COMPLETE_FRAMES;
} }
}
*poutbuf = buf; *poutbuf = buf;
*poutbuf_size = buf_size; *poutbuf_size = buf_size;