Quoting James Almer (2022-01-13 02:55:49) > diff --git a/libavformat/mov_chan.c b/libavformat/mov_chan.c > index 349634094c..5894bb8ce2 100644 > --- a/libavformat/mov_chan.c > +++ b/libavformat/mov_chan.c > @@ -499,7 +499,7 @@ static uint32_t mov_get_channel_label(uint32_t label) > } > > uint32_t ff_mov_get_channel_layout_tag(enum AVCodecID codec_id, > - uint64_t channel_layout, > + AVChannelLayout *ch_layout,
const? > uint32_t *bitmap) > { > int i, j; > @@ -519,7 +519,7 @@ uint32_t ff_mov_get_channel_layout_tag(enum AVCodecID > codec_id, > const struct MovChannelLayoutMap *layout_map; > > /* get the layout map based on the channel count */ > - channels = av_get_channel_layout_nb_channels(channel_layout); > + channels = ch_layout->nb_channels; > if (channels > 9) > channels = 0; > layout_map = mov_ch_layout_map[channels]; > @@ -530,7 +530,8 @@ uint32_t ff_mov_get_channel_layout_tag(enum AVCodecID > codec_id, > continue; > for (j = 0; layout_map[j].tag != 0; j++) { > if (layout_map[j].tag == layouts[i] && > - layout_map[j].layout == channel_layout) > + (ch_layout->order == AV_CHANNEL_ORDER_NATIVE && > + layout_map[j].layout == ch_layout->u.mask)) > break; > } > if (layout_map[j].tag) > @@ -540,9 +541,9 @@ uint32_t ff_mov_get_channel_layout_tag(enum AVCodecID > codec_id, > } > > /* if no tag was found, use channel bitmap as a backup if possible */ > - if (tag == 0 && channel_layout > 0 && channel_layout < 0x40000) { > + if (tag == 0 && av_channel_layout_check(ch_layout) && ch_layout->u.mask > < 0x40000) { This should check the order is native. -- Anton Khirnov _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".