flac: move CRC update into STATE_NEXT_SYNC
authorTristan Matthews <le.businessman@gmail.com>
Fri, 6 Dec 2013 14:54:12 +0000 (09:54 -0500)
committerTristan Matthews <le.businessman@gmail.com>
Wed, 11 Dec 2013 02:43:01 +0000 (21:43 -0500)
Fixes #9966.

modules/packetizer/flac.c

index 2f16717..b5af285 100644 (file)
@@ -572,6 +572,11 @@ static block_t *Packetize(decoder_t *p_dec, block_t **pp_block)
         p_sys->i_frame_size = p_sys->b_stream_info && p_sys->stream_info.min_framesize > 0 ?
                                                         p_sys->stream_info.min_framesize : 1;
 
+    case STATE_NEXT_SYNC:
+        /* TODO: If pp_block == NULL, flush the buffer without checking the
+         * next sync word */
+
+    {
         /* Calculate the initial CRC for the minimal frame size,
          * We'll update it as we look for the next start code. */
         uint8_t *buf = malloc(p_sys->i_frame_size);
@@ -588,10 +593,8 @@ static block_t *Packetize(decoder_t *p_dec, block_t **pp_block)
             crc = flac_crc16(crc, buf[i]);
         free(buf);
         p_sys->crc = crc;
+    }
 
-    case STATE_NEXT_SYNC:
-        /* TODO: If pp_block == NULL, flush the buffer without checking the
-         * next sync word */
 
         /* Check if next expected frame contains the sync word */
         while (!block_PeekOffsetBytes(&p_sys->bytestream, p_sys->i_frame_size,