diff mbox series

[FFmpeg-devel] avformat/mov: Add support for uuid-based senc box

Message ID 79da1bee-27e5-aa8d-f35c-35228b03d8a7@googlemail.com
State New
Headers show
Series [FFmpeg-devel] avformat/mov: Add support for uuid-based senc box | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Hendi June 9, 2023, 8:35 p.m. UTC
Attached.
From eca7929274b9bfd7c5aa8a76177dafaa57ab91a5 Mon Sep 17 00:00:00 2001
From: Hendi <hendi48@freenet.de>
Date: Fri, 9 Jun 2023 01:46:30 +0200
Subject: [PATCH] avformat/mov: Add support for uuid-based senc box

In PIFF-branded mp4 files, the senc data comes in a uuid box.

Signed-off-by: Hendi <hendi48@freenet.de>
---
 libavformat/mov.c | 8 ++++++++
 1 file changed, 8 insertions(+)
diff mbox series

Patch

diff --git a/libavformat/mov.c b/libavformat/mov.c
index 2e4df42256..1cfa14e7b4 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -6256,6 +6256,8 @@  out:
     return ret;
 }
 
+static int mov_read_senc(MOVContext *c, AVIOContext *pb, MOVAtom atom);
+
 static int mov_read_uuid(MOVContext *c, AVIOContext *pb, MOVAtom atom)
 {
     AVStream *st;
@@ -6274,6 +6276,10 @@  static int mov_read_uuid(MOVContext *c, AVIOContext *pb, MOVAtom atom)
         0xff, 0xcc, 0x82, 0x63, 0xf8, 0x55, 0x4a, 0x93,
         0x88, 0x14, 0x58, 0x7a, 0x02, 0x52, 0x1f, 0xdd,
     };
+    static const AVUUID uuid_piff_senc = {
+        0xa2, 0x39, 0x4f, 0x52, 0x5a, 0x9b, 0x4f, 0x14,
+        0xa2, 0x44, 0x6c, 0x42, 0x7c, 0x64, 0x8d, 0xf4
+    };
 
     if (atom.size < AV_UUID_LEN || atom.size >= FFMIN(INT_MAX, SIZE_MAX))
         return AVERROR_INVALIDDATA;
@@ -6356,6 +6362,8 @@  static int mov_read_uuid(MOVContext *c, AVIOContext *pb, MOVAtom atom)
             return ret;
         if (!sc->spherical)
             av_log(c->fc, AV_LOG_WARNING, "Invalid spherical metadata found\n");
+    } else if (av_uuid_equal(uuid, uuid_piff_senc)) {
+        mov_read_senc(c, pb, atom);
     }
 
     return 0;