PR #23801 opened by vigneshvg
URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/23801
Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/23801.patch

The specification for the T35MetaDataSampleEntry ('it35') box is
available in the "Draft text of ISO/IEC 14496-12 10th edition"
which can be found on the MPEG website:
https://www.mpeg.org/standards/MPEG-4/12/

Download link: 
https://www.mpeg.org/wp-content/uploads/mpeg_meetings/154_SantaEularia/w26301.zip

Support the t35 track in mov and export the contents of
T35MetaDataSampleEntry as extradata.

Signed-off-by: Vignesh Venkat <[email protected]>


>From 3a9e62c7a7038eb6f0146709c0fd00187301040c Mon Sep 17 00:00:00 2001
From: Vignesh Venkat <[email protected]>
Date: Wed, 29 Apr 2026 17:02:43 -0700
Subject: [PATCH] avformat/mov: Add itut-t35 data codec support

The specification for the T35MetaDataSampleEntry ('it35') box is
available in the "Draft text of ISO/IEC 14496-12 10th edition"
which can be found on the MPEG website:
https://www.mpeg.org/standards/MPEG-4/12/

Download link: 
https://www.mpeg.org/wp-content/uploads/mpeg_meetings/154_SantaEularia/w26301.zip

Support the t35 track in mov and export the contents of
T35MetaDataSampleEntry as extradata.

Signed-off-by: Vignesh Venkat <[email protected]>
---
 libavformat/isom.c | 1 +
 libavformat/mov.c  | 9 +++++++++
 2 files changed, 10 insertions(+)

diff --git a/libavformat/isom.c b/libavformat/isom.c
index 8a1128ac35..0a2f93d762 100644
--- a/libavformat/isom.c
+++ b/libavformat/isom.c
@@ -81,6 +81,7 @@ const AVCodecTag ff_codec_movsubtitle_tags[] = {
 
 const AVCodecTag ff_codec_movdata_tags[] = {
     { AV_CODEC_ID_BIN_DATA, MKTAG('g', 'p', 'm', 'd') },
+    { AV_CODEC_ID_ITUT_T35, MKTAG('i', 't', '3', '5') },
     { AV_CODEC_ID_NONE, 0 },
 };
 
diff --git a/libavformat/mov.c b/libavformat/mov.c
index 4154038d9e..e05fba9ef2 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -830,6 +830,8 @@ static int mov_read_hdlr(MOVContext *c, AVIOContext *pb, 
MOVAtom atom)
         st->codecpar->codec_id = AV_CODEC_ID_MP2;
     else if ((type == MKTAG('s','u','b','p')) || (type == 
MKTAG('c','l','c','p')))
         st->codecpar->codec_type = AVMEDIA_TYPE_SUBTITLE;
+    else if (type == MKTAG('i','t','3','5'))
+        st->codecpar->codec_type = AVMEDIA_TYPE_DATA;
 
     avio_rb32(pb); /* component  manufacture */
     avio_rb32(pb); /* component flags */
@@ -3054,6 +3056,13 @@ static int mov_parse_stsd_data(MOVContext *c, 
AVIOContext *pb,
                 }
             }
         }
+    } else if (st->codecpar->codec_id == AV_CODEC_ID_ITUT_T35) {
+        if ((int)size != size)
+            return AVERROR(ENOMEM);
+
+        ret = ff_get_extradata(c->fc, st->codecpar, pb, size);
+        if (ret < 0)
+            return ret;
     } else {
         /* other codec type, just skip (rtp, mp4s ...) */
         avio_skip(pb, size);
-- 
2.52.0

_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to