From 487ee0ad23898ebe3d49a2ffadef88c665200eb3 Mon Sep 17 00:00:00 2001 From: Sergey Vlasov Date: Tue, 15 May 2007 13:55:09 +0400 Subject: dtsdec: add missing break statements to convert2s16_multi() DTS decoding was broken for every speaker config except 5.1. Signed-off-by: Sergey Vlasov --- libavcodec/dtsdec.c | 10 ++++++++++ 1 files changed, 10 insertions(+), 0 deletions(-) diff --git a/libavcodec/dtsdec.c b/libavcodec/dtsdec.c index 1be7c84..cf77a57 100644 --- a/libavcodec/dtsdec.c +++ b/libavcodec/dtsdec.c @@ -55,6 +55,7 @@ convert2s16_multi(sample_t *f, int16_t *s16, int flags) s16[5*i] = s16[5*i+1] = s16[5*i+2] = s16[5*i+3] = 0; s16[5*i+4] = convert(f[i]); } + break; case DTS_CHANNEL: case DTS_STEREO: case DTS_DOLBY: @@ -62,6 +63,7 @@ convert2s16_multi(sample_t *f, int16_t *s16, int flags) s16[2*i] = convert(f[i]); s16[2*i+1] = convert(f[i+256]); } + break; case DTS_3F: for(i = 0; i < 256; i++){ s16[5*i] = convert(f[i+256]); @@ -69,6 +71,7 @@ convert2s16_multi(sample_t *f, int16_t *s16, int flags) s16[5*i+2] = s16[5*i+3] = 0; s16[5*i+4] = convert(f[i]); } + break; case DTS_2F2R: for(i = 0; i < 256; i++){ s16[4*i] = convert(f[i]); @@ -76,6 +79,7 @@ convert2s16_multi(sample_t *f, int16_t *s16, int flags) s16[4*i+2] = convert(f[i+512]); s16[4*i+3] = convert(f[i+768]); } + break; case DTS_3F2R: for(i = 0; i < 256; i++){ s16[5*i] = convert(f[i+256]); @@ -84,12 +88,14 @@ convert2s16_multi(sample_t *f, int16_t *s16, int flags) s16[5*i+3] = convert(f[i+1024]); s16[5*i+4] = convert(f[i]); } + break; case DTS_MONO | DTS_LFE: for(i = 0; i < 256; i++){ s16[6*i] = s16[6*i+1] = s16[6*i+2] = s16[6*i+3] = 0; s16[6*i+4] = convert(f[i]); s16[6*i+5] = convert(f[i+256]); } + break; case DTS_CHANNEL | DTS_LFE: case DTS_STEREO | DTS_LFE: case DTS_DOLBY | DTS_LFE: @@ -99,6 +105,7 @@ convert2s16_multi(sample_t *f, int16_t *s16, int flags) s16[6*i+2] = s16[6*i+3] = s16[6*i+4] = 0; s16[6*i+5] = convert(f[i+512]); } + break; case DTS_3F | DTS_LFE: for(i = 0; i < 256; i++){ s16[6*i] = convert(f[i+256]); @@ -107,6 +114,7 @@ convert2s16_multi(sample_t *f, int16_t *s16, int flags) s16[6*i+4] = convert(f[i]); s16[6*i+5] = convert(f[i+768]); } + break; case DTS_2F2R | DTS_LFE: for(i = 0; i < 256; i++){ s16[6*i] = convert(f[i]); @@ -116,6 +124,7 @@ convert2s16_multi(sample_t *f, int16_t *s16, int flags) s16[6*i+4] = 0; s16[6*i+5] = convert(f[i+1024]); } + break; case DTS_3F2R | DTS_LFE: for(i = 0; i < 256; i++){ s16[6*i] = convert(f[i+256]); @@ -125,6 +134,7 @@ convert2s16_multi(sample_t *f, int16_t *s16, int flags) s16[6*i+4] = convert(f[i]); s16[6*i+5] = convert(f[i+1280]); } + break; } } -- 1.5.1.1.197.g66b3