| @@ -70,12 +70,16 @@ static int h261_parse(AVCodecParserContext *s, | |||||
| ParseContext *pc = s->priv_data; | ParseContext *pc = s->priv_data; | ||||
| int next; | int next; | ||||
| if (s->flags & PARSER_FLAG_COMPLETE_FRAMES) { | |||||
| next = buf_size; | |||||
| } else { | |||||
| next= h261_find_frame_end(pc,avctx, buf, buf_size); | next= h261_find_frame_end(pc,avctx, buf, buf_size); | ||||
| if (ff_combine_frame(pc, next, &buf, &buf_size) < 0) { | if (ff_combine_frame(pc, next, &buf, &buf_size) < 0) { | ||||
| *poutbuf = NULL; | *poutbuf = NULL; | ||||
| *poutbuf_size = 0; | *poutbuf_size = 0; | ||||
| return buf_size; | return buf_size; | ||||
| } | } | ||||
| } | |||||
| *poutbuf = buf; | *poutbuf = buf; | ||||
| *poutbuf_size = buf_size; | *poutbuf_size = buf_size; | ||||
| return next; | return next; | ||||
| @@ -70,6 +70,9 @@ static int h263_parse(AVCodecParserContext *s, | |||||
| ParseContext *pc = s->priv_data; | ParseContext *pc = s->priv_data; | ||||
| int next; | int next; | ||||
| if (s->flags & PARSER_FLAG_COMPLETE_FRAMES) { | |||||
| next = buf_size; | |||||
| } else { | |||||
| next= ff_h263_find_frame_end(pc, buf, buf_size); | next= ff_h263_find_frame_end(pc, buf, buf_size); | ||||
| if (ff_combine_frame(pc, next, &buf, &buf_size) < 0) { | if (ff_combine_frame(pc, next, &buf, &buf_size) < 0) { | ||||
| @@ -77,6 +80,7 @@ static int h263_parse(AVCodecParserContext *s, | |||||
| *poutbuf_size = 0; | *poutbuf_size = 0; | ||||
| return buf_size; | return buf_size; | ||||
| } | } | ||||
| } | |||||
| *poutbuf = buf; | *poutbuf = buf; | ||||
| *poutbuf_size = buf_size; | *poutbuf_size = buf_size; | ||||