Commit c86c3c80 authored by Justin Ruggles's avatar Justin Ruggles

smackaud: use sign_extend() for difference value instead of casting

parent 979c8de5
...@@ -33,6 +33,7 @@ ...@@ -33,6 +33,7 @@
#include "avcodec.h" #include "avcodec.h"
#include "libavutil/audioconvert.h" #include "libavutil/audioconvert.h"
#include "mathops.h"
#define ALT_BITSTREAM_READER_LE #define ALT_BITSTREAM_READER_LE
#include "get_bits.h" #include "get_bits.h"
...@@ -655,7 +656,7 @@ static int smka_decode_frame(AVCodecContext *avctx, void *data, int *data_size, ...@@ -655,7 +656,7 @@ static int smka_decode_frame(AVCodecContext *avctx, void *data, int *data_size,
else else
res = 0; res = 0;
val |= h[3].values[res] << 8; val |= h[3].values[res] << 8;
pred[1] += (int16_t)val; pred[1] += sign_extend(val, 16);
*samples++ = pred[1]; *samples++ = pred[1];
} else { } else {
if(vlc[0].table) if(vlc[0].table)
...@@ -668,7 +669,7 @@ static int smka_decode_frame(AVCodecContext *avctx, void *data, int *data_size, ...@@ -668,7 +669,7 @@ static int smka_decode_frame(AVCodecContext *avctx, void *data, int *data_size,
else else
res = 0; res = 0;
val |= h[1].values[res] << 8; val |= h[1].values[res] << 8;
pred[0] += val; pred[0] += sign_extend(val, 16);
*samples++ = pred[0]; *samples++ = pred[0];
} }
} }
...@@ -683,14 +684,14 @@ static int smka_decode_frame(AVCodecContext *avctx, void *data, int *data_size, ...@@ -683,14 +684,14 @@ static int smka_decode_frame(AVCodecContext *avctx, void *data, int *data_size,
res = get_vlc2(&gb, vlc[1].table, SMKTREE_BITS, 3); res = get_vlc2(&gb, vlc[1].table, SMKTREE_BITS, 3);
else else
res = 0; res = 0;
pred[1] += (int8_t)h[1].values[res]; pred[1] += sign_extend(h[1].values[res], 8);
*samples8++ = pred[1]; *samples8++ = pred[1];
} else { } else {
if(vlc[0].table) if(vlc[0].table)
res = get_vlc2(&gb, vlc[0].table, SMKTREE_BITS, 3); res = get_vlc2(&gb, vlc[0].table, SMKTREE_BITS, 3);
else else
res = 0; res = 0;
pred[0] += (int8_t)h[0].values[res]; pred[0] += sign_extend(h[0].values[res], 8);
*samples8++ = pred[0]; *samples8++ = pred[0];
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment