mirror of https://git.ffmpeg.org/ffmpeg.git
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:
parent
eb79c528d8
commit
01f5b9c51e
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue