diff options
author | Reimar Döffinger <Reimar.Doeffinger@gmx.de> | 2011-04-24 19:17:17 +0200 |
---|---|---|
committer | Reimar Döffinger <Reimar.Doeffinger@gmx.de> | 2011-04-25 00:20:03 +0200 |
commit | 02e3f7d042aabd98d4114f7f84b4b480a93daaa1 (patch) | |
tree | a76510b1f6be3edf70c57eacfc9f89d933f3807b | |
parent | 69f58958ce8f81b153b14c60959ba37d6bf0b8cf (diff) | |
download | ffmpeg-02e3f7d042aabd98d4114f7f84b4b480a93daaa1.tar.gz |
Support PARSER_FLAG_COMPLETE_FRAMES for h261 and h263 parsers.
-rw-r--r-- | libavcodec/h261_parser.c | 4 | ||||
-rw-r--r-- | libavcodec/h263_parser.c | 4 |
2 files changed, 8 insertions, 0 deletions
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; |