summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavcodec/vc1_parser.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/libavcodec/vc1_parser.c b/libavcodec/vc1_parser.c
index a9baccce79..3f4618dbed 100644
--- a/libavcodec/vc1_parser.c
+++ b/libavcodec/vc1_parser.c
@@ -99,11 +99,17 @@ static int vc1_split(AVCodecContext *avctx,
{
int i;
uint32_t state= -1;
+ int charged=0;
for(i=0; i<buf_size; i++){
state= (state<<8) | buf[i];
- if(IS_MARKER(state) && state != VC1_CODE_SEQHDR && state != VC1_CODE_ENTRYPOINT)
- return i-3;
+ if(IS_MARKER(state)){
+ if(state == VC1_CODE_SEQHDR || state == VC1_CODE_ENTRYPOINT){
+ charged=1;
+ }else if(charged){
+ return i-3;
+ }
+ }
}
return 0;
}