summaryrefslogtreecommitdiff
path: root/libavformat/matroskadec.c
diff options
context:
space:
mode:
authorVittorio Giovara <vittorio.giovara@gmail.com>2017-03-31 16:57:00 +0200
committerJames Almer <jamrial@gmail.com>2022-03-15 09:42:34 -0300
commit8e3fab88b2e1c79a73a4bb3e5139c03a85bac919 (patch)
tree525dd018cc3fced39589d44414c686de59a09181 /libavformat/matroskadec.c
parent92f3fc9f2f3948dbfddf8f749d2595427cfe906b (diff)
downloadffmpeg-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.c8
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 ||