avformat/movenc: Simplify reserving space for tfrf tags

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
Andreas Rheinhardt 2021-09-22 21:54:02 +02:00
parent 1cf3c59b58
commit 2c47a94911

View File

@ -1344,7 +1344,6 @@ static int mov_write_hvcc_tag(AVIOContext *pb, MOVTrack *track)
/* also used by all avid codecs (dv, imx, meridien) and their variants */ /* also used by all avid codecs (dv, imx, meridien) and their variants */
static int mov_write_avid_tag(AVIOContext *pb, MOVTrack *track) static int mov_write_avid_tag(AVIOContext *pb, MOVTrack *track)
{ {
int i;
int interlaced; int interlaced;
int cid; int cid;
int display_width = track->par->width; int display_width = track->par->width;
@ -1419,8 +1418,7 @@ static int mov_write_avid_tag(AVIOContext *pb, MOVTrack *track)
avio_wb32(pb, 6); /* unknown */ avio_wb32(pb, 6); /* unknown */
} }
/* padding */ /* padding */
for (i = 0; i < 10; i++) ffio_fill(pb, 0, 10 * 8);
avio_wb64(pb, 0);
return 0; return 0;
} }
@ -1925,10 +1923,7 @@ static int mov_write_dvcc_dvvc_tag(AVFormatContext *s, AVIOContext *pb, AVDOVIDe
dovi->bl_present_flag); dovi->bl_present_flag);
avio_wb32(pb, (dovi->dv_bl_signal_compatibility_id << 28) | 0); avio_wb32(pb, (dovi->dv_bl_signal_compatibility_id << 28) | 0);
avio_wb32(pb, 0); /* reserved */ ffio_fill(pb, 0, 4 * 4); /* reserved */
avio_wb32(pb, 0); /* reserved */
avio_wb32(pb, 0); /* reserved */
avio_wb32(pb, 0); /* reserved */
av_log(s, AV_LOG_DEBUG, "DOVI in %s box, version: %d.%d, profile: %d, level: %d, " av_log(s, AV_LOG_DEBUG, "DOVI in %s box, version: %d.%d, profile: %d, level: %d, "
"rpu flag: %d, el flag: %d, bl flag: %d, compatibility id: %d\n", "rpu flag: %d, el flag: %d, bl flag: %d, compatibility id: %d\n",
dovi->dv_profile > 7 ? "dvvC" : "dvcC", dovi->dv_profile > 7 ? "dvvC" : "dvcC",
@ -2159,9 +2154,7 @@ static int mov_write_video_tag(AVFormatContext *s, AVIOContext *pb, MOVMuxContex
avio_wb32(pb, 0x200); /* Spatial Quality = normal */ avio_wb32(pb, 0x200); /* Spatial Quality = normal */
} }
} else { } else {
avio_wb32(pb, 0); /* Reserved */ ffio_fill(pb, 0, 3 * 4); /* Reserved */
avio_wb32(pb, 0); /* Reserved */
avio_wb32(pb, 0); /* Reserved */
} }
avio_wb16(pb, track->par->width); /* Video width */ avio_wb16(pb, track->par->width); /* Video width */
avio_wb16(pb, track->height); /* Video height */ avio_wb16(pb, track->height); /* Video height */
@ -3506,9 +3499,7 @@ static int mov_write_mvhd_tag(AVIOContext *pb, MOVMuxContext *mov)
avio_wb32(pb, 0x00010000); /* reserved (preferred rate) 1.0 = normal */ avio_wb32(pb, 0x00010000); /* reserved (preferred rate) 1.0 = normal */
avio_wb16(pb, 0x0100); /* reserved (preferred volume) 1.0 = normal */ avio_wb16(pb, 0x0100); /* reserved (preferred volume) 1.0 = normal */
avio_wb16(pb, 0); /* reserved */ ffio_fill(pb, 0, 2 + 2 * 4); /* reserved */
avio_wb32(pb, 0); /* reserved */
avio_wb32(pb, 0); /* reserved */
/* Matrix structure */ /* Matrix structure */
write_matrix(pb, 1, 0, 0, 1, 0, 0); write_matrix(pb, 1, 0, 0, 1, 0, 0);
@ -4668,7 +4659,7 @@ static int mov_write_traf_tag(AVIOContext *pb, MOVMuxContext *mov,
mov_write_tfxd_tag(pb, track); mov_write_tfxd_tag(pb, track);
if (mov->ism_lookahead) { if (mov->ism_lookahead) {
int i, size = 16 + 4 + 1 + 16 * mov->ism_lookahead; int size = 16 + 4 + 1 + 16 * mov->ism_lookahead;
if (track->nb_frag_info > 0) { if (track->nb_frag_info > 0) {
MOVFragmentInfo *info = &track->frag_info[track->nb_frag_info - 1]; MOVFragmentInfo *info = &track->frag_info[track->nb_frag_info - 1];
@ -4677,8 +4668,7 @@ static int mov_write_traf_tag(AVIOContext *pb, MOVMuxContext *mov,
} }
avio_wb32(pb, 8 + size); avio_wb32(pb, 8 + size);
ffio_wfourcc(pb, "free"); ffio_wfourcc(pb, "free");
for (i = 0; i < size; i++) ffio_fill(pb, 0, size);
avio_w8(pb, 0);
} }
} }