[FFmpeg-cvslog] dcadec: Do not decode the XCh extension when downmixing to stereo

Tim Walker git at videolan.org
Sun May 11 16:40:30 CEST 2014


ffmpeg | branch: release/2.2 | Tim Walker <tdskywalker at gmail.com> | Sat Apr 12 22:11:52 2014 +0200| [b3d8276d2dc913d708d187fb15f6e98869d00500] | committer: Tim Walker

dcadec: Do not decode the XCh extension when downmixing to stereo

This is neither necessary nor currently supported.

Signed-off-by: Luca Barbato <lu_zero at gentoo.org>
(cherry picked from commit c8cf461c19e8e35df4b7364d9b90aa42f1ab4560)

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b3d8276d2dc913d708d187fb15f6e98869d00500
---

 libavcodec/dcadec.c |   10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/libavcodec/dcadec.c b/libavcodec/dcadec.c
index 6c240ee..cfce654 100644
--- a/libavcodec/dcadec.c
+++ b/libavcodec/dcadec.c
@@ -1856,6 +1856,16 @@ static int dca_decode_frame(AVCodecContext *avctx, void *data,
     if (s->amode < 16) {
         avctx->channel_layout = dca_core_channel_layout[s->amode];
 
+        if (s->prim_channels + !!s->lfe > 2 &&
+            avctx->request_channel_layout == AV_CH_LAYOUT_STEREO) {
+            /*
+             * Neither the core's auxiliary data nor our default tables contain
+             * downmix coefficients for the additional channel coded in the XCh
+             * extension, so when we're doing a Stereo downmix, don't decode it.
+             */
+            s->xch_disable = 1;
+        }
+
 #if FF_API_REQUEST_CHANNELS
 FF_DISABLE_DEPRECATION_WARNINGS
         if (s->xch_present && !s->xch_disable &&



More information about the ffmpeg-cvslog mailing list