OSDN Git Service

mlpdec: Simplify check for substream_parity_present.
authorRamiro Polla <ramiro.polla@gmail.com>
Mon, 30 Mar 2009 03:46:52 +0000 (03:46 +0000)
committerRamiro Polla <ramiro.polla@gmail.com>
Mon, 30 Mar 2009 03:46:52 +0000 (03:46 +0000)
Originally committed as revision 18240 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/mlpdec.c

index ef3071e..6d148b4 100644 (file)
@@ -1032,10 +1032,12 @@ static int read_access_unit(AVCodecContext *avctx, void* data, int *data_size,
             if (substr == m->max_decoded_substream)
                 av_log(m->avctx, AV_LOG_INFO, "End of stream indicated.\n");
         }
-        if (substream_data_len[substr] * 8 - get_bits_count(&gb) >= 16 &&
-            substream_parity_present[substr]) {
+        if (substream_parity_present[substr]) {
             uint8_t parity, checksum;
 
+            if (substream_data_len[substr] * 8 - get_bits_count(&gb) != 16)
+                goto substream_length_mismatch;
+
             parity   = ff_mlp_calculate_parity(buf, substream_data_len[substr] - 2);
             checksum = ff_mlp_checksum8       (buf, substream_data_len[substr] - 2);