Commit a5f6720f authored by Jason's avatar Jason Committed by Michael Niedermayer

Add QT CC track mux support

Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent ebfc212b
...@@ -1375,6 +1375,7 @@ static int mov_write_gmhd_tag(AVIOContext *pb, MOVTrack *track) ...@@ -1375,6 +1375,7 @@ static int mov_write_gmhd_tag(AVIOContext *pb, MOVTrack *track)
* don't appear to be documented, so the * don't appear to be documented, so the
* bytes are copied verbatim. * bytes are copied verbatim.
*/ */
if (track->tag != MKTAG('c','6','0','8')) {
avio_wb32(pb, 0x2C); /* size */ avio_wb32(pb, 0x2C); /* size */
ffio_wfourcc(pb, "text"); ffio_wfourcc(pb, "text");
avio_wb16(pb, 0x01); avio_wb16(pb, 0x01);
...@@ -1387,6 +1388,7 @@ static int mov_write_gmhd_tag(AVIOContext *pb, MOVTrack *track) ...@@ -1387,6 +1388,7 @@ static int mov_write_gmhd_tag(AVIOContext *pb, MOVTrack *track)
avio_wb32(pb, 0x00); avio_wb32(pb, 0x00);
avio_wb32(pb, 0x00004000); avio_wb32(pb, 0x00004000);
avio_wb16(pb, 0x0000); avio_wb16(pb, 0x0000);
}
if (track->enc->codec_tag == MKTAG('t','m','c','d')) { if (track->enc->codec_tag == MKTAG('t','m','c','d')) {
int64_t tmcd_pos = avio_tell(pb); int64_t tmcd_pos = avio_tell(pb);
...@@ -1435,9 +1437,14 @@ static int mov_write_hdlr_tag(AVIOContext *pb, MOVTrack *track) ...@@ -1435,9 +1437,14 @@ static int mov_write_hdlr_tag(AVIOContext *pb, MOVTrack *track)
hdlr_type = "soun"; hdlr_type = "soun";
descr = "SoundHandler"; descr = "SoundHandler";
} else if (track->enc->codec_type == AVMEDIA_TYPE_SUBTITLE) { } else if (track->enc->codec_type == AVMEDIA_TYPE_SUBTITLE) {
if (track->tag == MKTAG('c','6','0','8')) {
hdlr_type = "clcp";
descr = "ClosedCaptionHandler";
} else {
if (track->tag == MKTAG('t','x','3','g')) hdlr_type = "sbtl"; if (track->tag == MKTAG('t','x','3','g')) hdlr_type = "sbtl";
else hdlr_type = "text"; else hdlr_type = "text";
descr = "SubtitleHandler"; descr = "SubtitleHandler";
}
} else if (track->enc->codec_tag == MKTAG('t','m','c','d')) { } else if (track->enc->codec_tag == MKTAG('t','m','c','d')) {
hdlr_type = "tmcd"; hdlr_type = "tmcd";
descr = "TimeCodeHandler"; descr = "TimeCodeHandler";
...@@ -1492,8 +1499,11 @@ static int mov_write_minf_tag(AVIOContext *pb, MOVTrack *track) ...@@ -1492,8 +1499,11 @@ static int mov_write_minf_tag(AVIOContext *pb, MOVTrack *track)
else if (track->enc->codec_type == AVMEDIA_TYPE_AUDIO) else if (track->enc->codec_type == AVMEDIA_TYPE_AUDIO)
mov_write_smhd_tag(pb); mov_write_smhd_tag(pb);
else if (track->enc->codec_type == AVMEDIA_TYPE_SUBTITLE) { else if (track->enc->codec_type == AVMEDIA_TYPE_SUBTITLE) {
if (track->tag == MKTAG('t','e','x','t')) mov_write_gmhd_tag(pb, track); if (track->tag == MKTAG('t','e','x','t') || track->tag == MKTAG('c','6','0','8')) {
else mov_write_nmhd_tag(pb); mov_write_gmhd_tag(pb, track);
} else {
mov_write_nmhd_tag(pb);
}
} else if (track->tag == MKTAG('t','m','c','d')) { } else if (track->tag == MKTAG('t','m','c','d')) {
mov_write_gmhd_tag(pb, track); mov_write_gmhd_tag(pb, track);
} else if (track->tag == MKTAG('r','t','p',' ')) { } else if (track->tag == MKTAG('r','t','p',' ')) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment