diff options
author | Vittorio Giovara <vittorio.giovara@gmail.com> | 2017-03-31 16:57:00 +0200 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2022-03-15 09:42:34 -0300 |
commit | 8e3fab88b2e1c79a73a4bb3e5139c03a85bac919 (patch) | |
tree | 525dd018cc3fced39589d44414c686de59a09181 /libavformat/matroskadec.c | |
parent | 92f3fc9f2f3948dbfddf8f749d2595427cfe906b (diff) | |
download | ffmpeg-8e3fab88b2e1c79a73a4bb3e5139c03a85bac919.tar.gz |
matroska: convert to new channel layout API
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavformat/matroskadec.c')
-rw-r--r-- | libavformat/matroskadec.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c index 95e49cbe7f..5789e35949 100644 --- a/libavformat/matroskadec.c +++ b/libavformat/matroskadec.c @@ -2082,7 +2082,7 @@ static int matroska_parse_flac(AVFormatContext *s, av_log(s, AV_LOG_WARNING, "Invalid value of WAVEFORMATEXTENSIBLE_CHANNEL_MASK\n"); } else - st->codecpar->channel_layout = mask; + av_channel_layout_from_mask(&st->codecpar->ch_layout, mask); } av_dict_free(&dict); } @@ -2945,7 +2945,11 @@ static int matroska_parse_tracks(AVFormatContext *s) st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; st->codecpar->codec_tag = fourcc; st->codecpar->sample_rate = track->audio.out_samplerate; - st->codecpar->channels = track->audio.channels; + // channel layout may be already set by codec private checks above + if (st->codecpar->ch_layout.order == AV_CHANNEL_ORDER_NATIVE && + !st->codecpar->ch_layout.u.mask) + st->codecpar->ch_layout.order = AV_CHANNEL_ORDER_UNSPEC; + st->codecpar->ch_layout.nb_channels = track->audio.channels; if (!st->codecpar->bits_per_coded_sample) st->codecpar->bits_per_coded_sample = track->audio.bitdepth; if (st->codecpar->codec_id == AV_CODEC_ID_MP3 || |