} else
FF_ENABLE_DEPRECATION_WARNINGS
#endif
- if (m->avctx->request_channel_layout == s->ch_layout &&
- m->max_decoded_substream > substr) {
+ if (m->avctx->request_channel_layout && (s->ch_layout & m->avctx->request_channel_layout) ==
+ m->avctx->request_channel_layout && m->max_decoded_substream > substr) {
av_log(m->avctx, AV_LOG_DEBUG,
"Extracting %d-channel downmix (0x%"PRIx64") from substream %d. "
"Further substreams will be skipped.\n",
}
}
+ /* Update matrix encoding side data */
+ if ((ret = ff_side_data_update_matrix_encoding(frame, s->matrix_encoding)) < 0)
+ return ret;
+
*got_frame_ptr = 1;
return 0;