diff --git a/libavcodec/h264.c b/libavcodec/h264.c index 10beead96a..70ec5d3eaa 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -8048,6 +8048,9 @@ static int h264_parse(AVCodecParserContext *s, ParseContext *pc = &h->s.parse_context; int next; + if(s->flags & PARSER_FLAG_COMPLETE_FRAMES){ + next= buf_size; + }else{ next= find_frame_end(h, buf, buf_size); if (ff_combine_frame(pc, next, (uint8_t **)&buf, &buf_size) < 0) { @@ -8059,6 +8062,7 @@ static int h264_parse(AVCodecParserContext *s, if(next<0){ find_frame_end(h, &pc->buffer[pc->last_index + next], -next); //update state } + } *poutbuf = (uint8_t *)buf; *poutbuf_size = buf_size;