[FFmpeg-cvslog] avformat/mov_chan: do not assume channels are in native order
Marton Balint
git at videolan.org
Mon Feb 12 00:27:17 EET 2024
ffmpeg | branch: release/5.1 | Marton Balint <cus at passwd.hu> | Mon Jan 29 19:58:18 2024 +0100| [f4718511690a6ee6295b4bdd421dee54329a5e88] | committer: Marton Balint
avformat/mov_chan: do not assume channels are in native order
Existing code could have caused wrong channel order signalling or reduced
channel count if a channel designation appeared multiple times. This is
actually an old bug, but the conversion to the new channel layout API made it
visible, because now the code overrides the proper channel count with the one
calculated from the mask.
Signed-off-by: Marton Balint <cus at passwd.hu>
(cherry picked from commit 3d3cad7483785191b99557c78d5a4a551088c549)
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f4718511690a6ee6295b4bdd421dee54329a5e88
---
libavformat/mov_chan.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavformat/mov_chan.c b/libavformat/mov_chan.c
index 5b757c6a8a..5863018a79 100644
--- a/libavformat/mov_chan.c
+++ b/libavformat/mov_chan.c
@@ -534,7 +534,7 @@ int ff_mov_read_chan(AVFormatContext *s, AVIOContext *pb, AVStream *st,
size -= 20;
if (layout_tag == 0) {
uint64_t mask_incr = mov_get_channel_mask(label);
- if (mask_incr == 0) {
+ if (mask_incr == 0 || mask_incr <= label_mask) {
label_mask = 0;
break;
}
More information about the ffmpeg-cvslog
mailing list