From f1be41c63d8c2f0d0ecc6cbde4eb50701f809834 Mon Sep 17 00:00:00 2001 From: Justin Ruggles Date: Mon, 19 Dec 2011 10:18:09 -0500 Subject: [PATCH] adxenc: use a loop to encode each channel --- libavcodec/adxenc.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/libavcodec/adxenc.c b/libavcodec/adxenc.c index 12690d2ed0..aea479884b 100644 --- a/libavcodec/adxenc.c +++ b/libavcodec/adxenc.c @@ -128,6 +128,7 @@ static int adx_encode_frame(AVCodecContext *avctx, uint8_t *frame, ADXContext *c = avctx->priv_data; const int16_t *samples = data; uint8_t *dst = frame; + int ch; if (!c->header_parsed) { int hdrsize = adx_encode_header(avctx, dst, buf_size); @@ -135,13 +136,9 @@ static int adx_encode_frame(AVCodecContext *avctx, uint8_t *frame, c->header_parsed = 1; } - if (avctx->channels == 1) { - adx_encode(c, dst, samples, c->prev, avctx->channels); - dst += 18; - } else { - adx_encode(c, dst, samples, c->prev, avctx->channels); - adx_encode(c, dst + 18, samples + 1, c->prev + 1, avctx->channels); - dst += 18*2; + for (ch = 0; ch < avctx->channels; ch++) { + adx_encode(c, dst, samples + ch, &c->prev[ch], avctx->channels); + dst += 18; } return dst - frame; }