From 02e3f7d042aabd98d4114f7f84b4b480a93daaa1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reimar=20D=C3=B6ffinger?= Date: Sun, 24 Apr 2011 19:17:17 +0200 Subject: [PATCH] Support PARSER_FLAG_COMPLETE_FRAMES for h261 and h263 parsers. --- libavcodec/h261_parser.c | 4 ++++ libavcodec/h263_parser.c | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/libavcodec/h261_parser.c b/libavcodec/h261_parser.c index defc1cb46f..4d20afe8d6 100644 --- a/libavcodec/h261_parser.c +++ b/libavcodec/h261_parser.c @@ -70,12 +70,16 @@ static int h261_parse(AVCodecParserContext *s, ParseContext *pc = s->priv_data; int next; + if (s->flags & PARSER_FLAG_COMPLETE_FRAMES) { + next = buf_size; + } else { next= h261_find_frame_end(pc,avctx, buf, buf_size); if (ff_combine_frame(pc, next, &buf, &buf_size) < 0) { *poutbuf = NULL; *poutbuf_size = 0; return buf_size; } + } *poutbuf = buf; *poutbuf_size = buf_size; return next; diff --git a/libavcodec/h263_parser.c b/libavcodec/h263_parser.c index e08198324b..2a00291ec2 100644 --- a/libavcodec/h263_parser.c +++ b/libavcodec/h263_parser.c @@ -70,6 +70,9 @@ static int h263_parse(AVCodecParserContext *s, ParseContext *pc = s->priv_data; int next; + if (s->flags & PARSER_FLAG_COMPLETE_FRAMES) { + next = buf_size; + } else { next= ff_h263_find_frame_end(pc, buf, buf_size); if (ff_combine_frame(pc, next, &buf, &buf_size) < 0) { @@ -77,6 +80,7 @@ static int h263_parse(AVCodecParserContext *s, *poutbuf_size = 0; return buf_size; } + } *poutbuf = buf; *poutbuf_size = buf_size;