aboutsummaryrefslogtreecommitdiff
path: root/libavcodec/8svx.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavcodec/8svx.c')
-rw-r--r--libavcodec/8svx.c11
1 files changed, 2 insertions, 9 deletions
diff --git a/libavcodec/8svx.c b/libavcodec/8svx.c
index 0da48986f0..87653a8046 100644
--- a/libavcodec/8svx.c
+++ b/libavcodec/8svx.c
@@ -94,7 +94,6 @@ static int eightsvx_decode_frame(AVCodecContext *avctx, void *data,
/* decode and interleave the first packet */
if (!esc->samples && avpkt) {
- uint8_t *deinterleaved_samples, *p = NULL;
int packet_size = avpkt->size;
if (packet_size % avctx->channels) {
@@ -119,23 +118,17 @@ static int eightsvx_decode_frame(AVCodecContext *avctx, void *data,
av_log(avctx, AV_LOG_ERROR, "packet size is too small\n");
return AVERROR(EINVAL);
}
- if (!(deinterleaved_samples = av_mallocz(n)))
- return AVERROR(ENOMEM);
- dst = p = deinterleaved_samples;
/* the uncompressed starting value is contained in the first byte */
- dst = deinterleaved_samples;
+ dst = esc->samples;
for (i = 0; i < avctx->channels; i++) {
delta_decode(dst, buf + 1, buf_size / avctx->channels - 1, buf[0], esc->table);
buf += buf_size / avctx->channels;
dst += n / avctx->channels - 1;
}
} else {
- deinterleaved_samples = avpkt->data;
+ memcpy(esc->samples, avpkt->data, esc->samples_size);
}
-
- memcpy(esc->samples, deinterleaved_samples, esc->samples_size);
- av_freep(&p);
}
/* get output buffer */