|
|
|
@ -2994,7 +2994,7 @@ static void mpeg_decode_gop(AVCodecContext *avctx, |
|
|
|
|
* finds the end of the current frame in the bitstream. |
|
|
|
|
* @return the position of the first byte of the next frame, or -1 |
|
|
|
|
*/ |
|
|
|
|
int ff_mpeg1_find_frame_end(ParseContext *pc, const uint8_t *buf, int buf_size) |
|
|
|
|
static int mpeg1_find_frame_end(ParseContext *pc, const uint8_t *buf, int buf_size) |
|
|
|
|
{ |
|
|
|
|
int i; |
|
|
|
|
uint32_t state= pc->state; |
|
|
|
@ -3056,7 +3056,7 @@ static int mpeg_decode_frame(AVCodecContext *avctx, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if(s2->flags&CODEC_FLAG_TRUNCATED){ |
|
|
|
|
int next= ff_mpeg1_find_frame_end(&s2->parse_context, buf, buf_size); |
|
|
|
|
int next= mpeg1_find_frame_end(&s2->parse_context, buf, buf_size); |
|
|
|
|
|
|
|
|
|
if( ff_combine_frame(&s2->parse_context, next, &buf, &buf_size) < 0 ) |
|
|
|
|
return buf_size; |
|
|
|
@ -3428,7 +3428,7 @@ static int mpegvideo_parse(AVCodecParserContext *s, |
|
|
|
|
if(s->flags & PARSER_FLAG_COMPLETE_FRAMES){ |
|
|
|
|
next= buf_size; |
|
|
|
|
}else{ |
|
|
|
|
next= ff_mpeg1_find_frame_end(pc, buf, buf_size); |
|
|
|
|
next= mpeg1_find_frame_end(pc, buf, buf_size); |
|
|
|
|
|
|
|
|
|
if (ff_combine_frame(pc, next, (uint8_t **)&buf, &buf_size) < 0) { |
|
|
|
|
*poutbuf = NULL; |
|
|
|
|