cin audio: use local variable for delta value
authorJustin Ruggles <justin.ruggles@gmail.com>
Thu, 27 Oct 2011 17:41:02 +0000 (13:41 -0400)
committerJustin Ruggles <justin.ruggles@gmail.com>
Sat, 29 Oct 2011 20:43:40 +0000 (16:43 -0400)
libavcodec/dsicinav.c

index cafcaa7..245b569 100644 (file)
@@ -328,21 +328,24 @@ static int cinaudio_decode_frame(AVCodecContext *avctx,
     CinAudioContext *cin = avctx->priv_data;
     const uint8_t *src = buf;
     int16_t *samples = data;
     CinAudioContext *cin = avctx->priv_data;
     const uint8_t *src = buf;
     int16_t *samples = data;
+    int delta;
 
     buf_size = FFMIN(buf_size, *data_size/2);
 
 
     buf_size = FFMIN(buf_size, *data_size/2);
 
+    delta = cin->delta;
     if (cin->initial_decode_frame) {
         cin->initial_decode_frame = 0;
     if (cin->initial_decode_frame) {
         cin->initial_decode_frame = 0;
-        cin->delta = (int16_t)AV_RL16(src); src += 2;
-        *samples++ = cin->delta;
+        delta = (int16_t)AV_RL16(src); src += 2;
+        *samples++ = delta;
         buf_size -= 2;
     }
     while (buf_size > 0) {
         buf_size -= 2;
     }
     while (buf_size > 0) {
-        cin->delta += cinaudio_delta16_table[*src++];
-        cin->delta = av_clip_int16(cin->delta);
-        *samples++ = cin->delta;
+        delta += cinaudio_delta16_table[*src++];
+        delta = av_clip_int16(delta);
+        *samples++ = delta;
         --buf_size;
     }
         --buf_size;
     }
+    cin->delta = delta;
 
     *data_size = (uint8_t *)samples - (uint8_t *)data;
 
 
     *data_size = (uint8_t *)samples - (uint8_t *)data;