mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-08 13:22:53 +02:00
8svx: unify mono and stereo code paths.
This commit is contained in:
parent
5caea648d4
commit
7a539e67f4
@ -121,8 +121,9 @@ static int eightsvx_decode_frame(AVCodecContext *avctx, void *data,
|
||||
/* decompress */
|
||||
if (esc->table) {
|
||||
const uint8_t *buf = avpkt->data;
|
||||
uint8_t *dst;
|
||||
int buf_size = avpkt->size;
|
||||
int n = esc->samples_size;
|
||||
int i, n = esc->samples_size;
|
||||
|
||||
if (buf_size < 2) {
|
||||
av_log(avctx, AV_LOG_ERROR, "packet size is too small\n");
|
||||
@ -130,15 +131,15 @@ static int eightsvx_decode_frame(AVCodecContext *avctx, void *data,
|
||||
}
|
||||
if (!(deinterleaved_samples = av_mallocz(n)))
|
||||
return AVERROR(ENOMEM);
|
||||
p = deinterleaved_samples;
|
||||
dst = p = deinterleaved_samples;
|
||||
|
||||
/* the uncompressed starting value is contained in the first byte */
|
||||
if (avctx->channels == 2) {
|
||||
delta_decode(deinterleaved_samples , buf+1, buf_size/2-1, buf[0], esc->table);
|
||||
buf += buf_size/2;
|
||||
delta_decode(deinterleaved_samples+n/2-1, buf+1, buf_size/2-1, buf[0], esc->table);
|
||||
} else
|
||||
delta_decode(deinterleaved_samples , buf+1, buf_size-1 , buf[0], esc->table);
|
||||
dst = deinterleaved_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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user