mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
Also set the MLP/TrueHD channel layout in the decoder.
Applications might not use the parser,
This commit is contained in:
parent
280a789fe2
commit
d3f126df4b
@ -329,6 +329,23 @@ static int read_major_sync(MLPDecodeContext *m, GetBitContext *gb)
|
||||
for (substr = 0; substr < MAX_SUBSTREAMS; substr++)
|
||||
m->substream[substr].restart_seen = 0;
|
||||
|
||||
if (mh.stream_type == 0xbb) {
|
||||
/* MLP stream */
|
||||
m->avctx->channel_layout = ff_mlp_layout[mh.channels_mlp];
|
||||
} else { /* mh.stream_type == 0xba */
|
||||
/* TrueHD stream */
|
||||
if (mh.channels_thd_stream2) {
|
||||
m->avctx->channel_layout = ff_truehd_layout(mh.channels_thd_stream2);
|
||||
} else {
|
||||
m->avctx->channel_layout = ff_truehd_layout(mh.channels_thd_stream1);
|
||||
}
|
||||
if (m->avctx->channels &&
|
||||
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.");
|
||||
}
|
||||
}
|
||||
|
||||
m->needs_reordering = mh.channels_mlp >= 18 && mh.channels_mlp <= 20;
|
||||
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user