diff --git a/libavformat/flacdec.c b/libavformat/flacdec.c index 3401aebe8d..bfae5a2af1 100644 --- a/libavformat/flacdec.c +++ b/libavformat/flacdec.c @@ -191,8 +191,7 @@ static int flac_read_header(AVFormatContext *s) av_log(s, AV_LOG_WARNING, "Invalid value of WAVEFORMATEXTENSIBLE_CHANNEL_MASK\n"); } else { - st->codecpar->channel_layout = mask; - st->codecpar->channels = av_get_channel_layout_nb_channels(mask); + av_channel_layout_from_mask(&st->codecpar->ch_layout, mask); av_dict_set(&s->metadata, "WAVEFORMATEXTENSIBLE_CHANNEL_MASK", NULL, 0); } } diff --git a/libavformat/flacenc.c b/libavformat/flacenc.c index b267197ccc..cf44ff7001 100644 --- a/libavformat/flacenc.c +++ b/libavformat/flacenc.c @@ -238,9 +238,9 @@ static int flac_init(struct AVFormatContext *s) } /* add the channel layout tag */ - if (par->channel_layout && - !(par->channel_layout & ~0x3ffffULL) && - !ff_flac_is_native_layout(par->channel_layout)) { + if (par->ch_layout.order == AV_CHANNEL_ORDER_NATIVE && + !(par->ch_layout.u.mask & ~0x3ffffULL) && + !ff_flac_is_native_layout(par->ch_layout.u.mask)) { AVDictionaryEntry *chmask = av_dict_get(s->metadata, "WAVEFORMATEXTENSIBLE_CHANNEL_MASK", NULL, 0); @@ -249,7 +249,7 @@ static int flac_init(struct AVFormatContext *s) "already present, this muxer will not overwrite it.\n"); } else { uint8_t buf[32]; - snprintf(buf, sizeof(buf), "0x%"PRIx64, par->channel_layout); + snprintf(buf, sizeof(buf), "0x%"PRIx64, par->ch_layout.u.mask); av_dict_set(&s->metadata, "WAVEFORMATEXTENSIBLE_CHANNEL_MASK", buf, 0); } }