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.

Originally committed as revision 24902 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Måns Rullgård 2010-08-24 15:40:57 +00:00
parent e2f402f160
commit b3c1652b82

View File

@ -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;