summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2022-01-21 10:53:17 +0100
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2022-01-21 11:52:45 +0100
commitc8b11b28d1eb8dfa34c727c5da9b266124196799 (patch)
tree1e02be450af853eaf30dbd51a2ac5fe9af5467bd
parent137c808f1aaf2b5641b0e7319f35bd9dd7866e6f (diff)
avformat/mov: Fix endian-dependent parsing
MOVAtom.type is always read as a little-endian number (despite MOV/ISOBMFF being big-endian). Fixes the matroska-dovi-write-config8 FATE-test on big-endian arches (which runs into the "index out of range" warning message). Reviewed-by: Martin Storsjö <martin@martin.st> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-rw-r--r--libavformat/mov.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libavformat/mov.c b/libavformat/mov.c
index e401cd39b5..1437d160f8 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -407,7 +407,7 @@ retry:
atom.size -= 16;
if (!key && c->found_hdlr_mdta && c->meta_keys) {
- uint32_t index = AV_RB32(&atom.type);
+ uint32_t index = av_bswap32(atom.type); // BE number has been read as LE
if (index < c->meta_keys_count && index > 0) {
key = c->meta_keys[index];
} else if (atom.type != MKTAG('c', 'o', 'v', 'r')) {