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]