]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/mlpdec.c
Merge remote-tracking branch 'qatar/master'
[ffmpeg] / libavcodec / mlpdec.c
index 7b3bd710bbdc5455e323afe85a5995fb464f8837..b13d0795cddc80e69681a2ba70ac1dcc10e5d35c 100644 (file)
@@ -340,6 +340,7 @@ static int read_major_sync(MLPDecodeContext *m, GetBitContext *gb)
             m->avctx->channel_layout = ff_truehd_layout(mh.channels_thd_stream1);
         }
         if (m->avctx->channels &&
+            !m->avctx->request_channels && !m->avctx->request_channel_layout &&
             av_get_channel_layout_nb_channels(m->avctx->channel_layout) != m->avctx->channels) {
             m->avctx->channel_layout = 0;
             av_log_ask_for_sample(m->avctx, "Unknown channel layout.");
@@ -459,13 +460,13 @@ static int read_restart_header(MLPDecodeContext *m, GetBitContext *gbp,
     }
 
     if (m->avctx->codec_id == CODEC_ID_MLP && m->needs_reordering) {
-        if (m->avctx->channel_layout == (AV_CH_LAYOUT_2_2|AV_CH_LOW_FREQUENCY) ||
-            m->avctx->channel_layout == AV_CH_LAYOUT_5POINT0) {
+        if (m->avctx->channel_layout == (AV_CH_LAYOUT_QUAD|AV_CH_LOW_FREQUENCY) ||
+            m->avctx->channel_layout == AV_CH_LAYOUT_5POINT0_BACK) {
             int i = s->ch_assign[4];
             s->ch_assign[4] = s->ch_assign[3];
             s->ch_assign[3] = s->ch_assign[2];
             s->ch_assign[2] = i;
-        } else if (m->avctx->channel_layout == AV_CH_LAYOUT_5POINT1) {
+        } else if (m->avctx->channel_layout == AV_CH_LAYOUT_5POINT1_BACK) {
             FFSWAP(int, s->ch_assign[2], s->ch_assign[4]);
             FFSWAP(int, s->ch_assign[3], s->ch_assign[5]);
         }