Skip to content
Snippets Groups Projects
Commit b89e8759 authored by Luca Barbato's avatar Luca Barbato
Browse files

mov: Write tmcd extradata

parent 5b41eb91
No related branches found
No related tags found
No related merge requests found
...@@ -1060,6 +1060,19 @@ static int mov_write_rtp_tag(AVIOContext *pb, MOVTrack *track) ...@@ -1060,6 +1060,19 @@ static int mov_write_rtp_tag(AVIOContext *pb, MOVTrack *track)
return update_size(pb, pos); return update_size(pb, pos);
} }
static int mov_write_tmcd_tag(AVIOContext *pb, MOVTrack *track)
{
int64_t pos = avio_tell(pb);
avio_wb32(pb, 0); /* size */
ffio_wfourcc(pb, "tmcd"); /* Data format */
avio_wb32(pb, 0); /* Reserved */
avio_wb32(pb, 1); /* Data reference index */
if (track->enc->extradata_size)
avio_write(pb, track->enc->extradata, track->enc->extradata_size);
return update_size(pb, pos);
}
static int mov_write_stsd_tag(AVIOContext *pb, MOVTrack *track) static int mov_write_stsd_tag(AVIOContext *pb, MOVTrack *track)
{ {
int64_t pos = avio_tell(pb); int64_t pos = avio_tell(pb);
...@@ -1075,6 +1088,8 @@ static int mov_write_stsd_tag(AVIOContext *pb, MOVTrack *track) ...@@ -1075,6 +1088,8 @@ static int mov_write_stsd_tag(AVIOContext *pb, MOVTrack *track)
mov_write_subtitle_tag(pb, track); mov_write_subtitle_tag(pb, track);
else if (track->enc->codec_tag == MKTAG('r','t','p',' ')) else if (track->enc->codec_tag == MKTAG('r','t','p',' '))
mov_write_rtp_tag(pb, track); mov_write_rtp_tag(pb, track);
else if (track->enc->codec_tag == MKTAG('t','m','c','d'))
mov_write_tmcd_tag(pb, track);
return update_size(pb, pos); return update_size(pb, pos);
} }
...@@ -1324,6 +1339,8 @@ static int mov_write_minf_tag(AVIOContext *pb, MOVTrack *track) ...@@ -1324,6 +1339,8 @@ static int mov_write_minf_tag(AVIOContext *pb, MOVTrack *track)
else mov_write_nmhd_tag(pb); else mov_write_nmhd_tag(pb);
} else if (track->tag == MKTAG('r','t','p',' ')) { } else if (track->tag == MKTAG('r','t','p',' ')) {
mov_write_hmhd_tag(pb); mov_write_hmhd_tag(pb);
} else if (track->tag == MKTAG('t','m','c','d')) {
mov_write_gmhd_tag(pb);
} }
if (track->mode == MODE_MOV) /* FIXME: Why do it for MODE_MOV only ? */ if (track->mode == MODE_MOV) /* FIXME: Why do it for MODE_MOV only ? */
mov_write_hdlr_tag(pb, NULL); mov_write_hdlr_tag(pb, NULL);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment