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