[FFmpeg-cvslog] r24902 - trunk/libavcodec/msmpeg4.c

mru subversion
Tue Aug 24 17:40:57 CEST 2010


Author: mru
Date: Tue Aug 24 17:40:57 2010
New Revision: 24902

Log:
msmpeg4v1: fix undefined behaviour in msmpeg4_decode_picture_header()

Because the order of evaluation of subexpressions is undefined, two
get_bits() calls may not be part of the same expression.  In this
specific case, using get_bits_long() is simpler.

This fixes msmpeg4v1 decoding with armcc.

Modified:
   trunk/libavcodec/msmpeg4.c

Modified: trunk/libavcodec/msmpeg4.c
==============================================================================
--- trunk/libavcodec/msmpeg4.c	Tue Aug 24 17:21:27 2010	(r24901)
+++ trunk/libavcodec/msmpeg4.c	Tue Aug 24 17:40:57 2010	(r24902)
@@ -1395,8 +1395,7 @@ return -1;
 #endif
 
     if(s->msmpeg4_version==1){
-        int start_code;
-        start_code = (get_bits(&s->gb, 16)<<16) | get_bits(&s->gb, 16);
+        int start_code = get_bits_long(&s->gb, 32);
         if(start_code!=0x00000100){
             av_log(s->avctx, AV_LOG_ERROR, "invalid startcode\n");
             return -1;



More information about the ffmpeg-cvslog mailing list