@@ -, +, @@ --- libavcodec/dtsdec.c | 10 +++++++++- 1 files changed, 9 insertions(+), 1 deletions(-) --- a/libavcodec/dtsdec.c +++ a/libavcodec/dtsdec.c @@ -216,7 +216,15 @@ dts_decode_frame(AVCodecContext * avctx, void *data, int *data_size, level = CONVERT_LEVEL; bias = CONVERT_BIAS; - flags = s->flags | DTS_ADJUST_LEVEL; + if(avctx->channels == 1) { + flags = DTS_MONO; + } else if(avctx->channels == 2) { + flags = DTS_STEREO; + } else { + flags = s->flags; + } + + flags |= DTS_ADJUST_LEVEL; if(dts_frame(s->state, s->buf, &flags, &level, bias)) { av_log(avctx, AV_LOG_ERROR, "dts_frame() failed\n"); goto end; --