mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
avformat/movenc: use iso6 major brand when signed CTS offsets are used in trun boxes
Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
parent
245ace4e2d
commit
191df4f2d1
@ -4757,6 +4757,9 @@ static void mov_write_ftyp_tag_internal(AVIOContext *pb, AVFormatContext *s,
|
||||
minor = has_h264 ? 0x20000 : 0x10000;
|
||||
} else if (mov->mode == MODE_PSP)
|
||||
ffio_wfourcc(pb, "MSNV");
|
||||
else if (mov->mode == MODE_MP4 && mov->flags & FF_MOV_FLAG_FRAGMENT &&
|
||||
mov->flags & FF_MOV_FLAG_NEGATIVE_CTS_OFFSETS)
|
||||
ffio_wfourcc(pb, "iso6"); // Required when using signed CTS offsets in trun boxes
|
||||
else if (mov->mode == MODE_MP4 && mov->flags & FF_MOV_FLAG_DEFAULT_BASE_MOOF)
|
||||
ffio_wfourcc(pb, "iso5"); // Required when using default-base-is-moof
|
||||
else if (mov->mode == MODE_MP4 && mov->flags & FF_MOV_FLAG_NEGATIVE_CTS_OFFSETS)
|
||||
@ -4807,10 +4810,14 @@ static int mov_write_ftyp_tag(AVIOContext *pb, AVFormatContext *s)
|
||||
ffio_wfourcc(pb, "piff");
|
||||
} else if (mov->mode != MODE_MOV) {
|
||||
// We add tfdt atoms when fragmenting, signal this with the iso6 compatible
|
||||
// brand. This is compatible with users that don't understand tfdt.
|
||||
if (mov->flags & FF_MOV_FLAG_FRAGMENT)
|
||||
ffio_wfourcc(pb, "iso6");
|
||||
if (mov->mode != MODE_MP4) {
|
||||
// brand, if not already the major brand. This is compatible with users that
|
||||
// don't understand tfdt.
|
||||
if (mov->mode == MODE_MP4) {
|
||||
if (mov->flags & FF_MOV_FLAG_FRAGMENT && !(mov->flags & FF_MOV_FLAG_NEGATIVE_CTS_OFFSETS))
|
||||
ffio_wfourcc(pb, "iso6");
|
||||
} else {
|
||||
if (mov->flags & FF_MOV_FLAG_FRAGMENT)
|
||||
ffio_wfourcc(pb, "iso6");
|
||||
if (mov->flags & FF_MOV_FLAG_DEFAULT_BASE_MOOF)
|
||||
ffio_wfourcc(pb, "iso5");
|
||||
else if (mov->flags & FF_MOV_FLAG_NEGATIVE_CTS_OFFSETS)
|
||||
|
@ -140,14 +140,14 @@ write_data len 668, time 1566667, type sync atom moof
|
||||
write_data len 440, time 2233333, type boundary atom moof
|
||||
write_data len 262, time nopts, type trailer atom -
|
||||
47cc2460c4b18390c67991cf3251409b 4209 vfr-noduration-interleave
|
||||
write_data len 1235, time nopts, type header atom ftyp
|
||||
write_data len 1231, time nopts, type header atom ftyp
|
||||
write_data len 916, time 0, type sync atom moof
|
||||
write_data len 908, time 1000000, type sync atom moof
|
||||
write_data len 148, time nopts, type trailer atom -
|
||||
c272739705fb78f9d9bffd4c6376c8ce 3207 delay-moov-elst-neg-cts
|
||||
write_data len 40, time nopts, type header atom ftyp
|
||||
c200a345c365dd35a31e7e62a9ae6c10 3203 delay-moov-elst-neg-cts
|
||||
write_data len 36, time nopts, type header atom ftyp
|
||||
write_data len 1123, time nopts, type header atom -
|
||||
write_data len 1188, time 0, type sync atom moof
|
||||
write_data len 908, time 1033333, type sync atom moof
|
||||
write_data len 148, time nopts, type trailer atom -
|
||||
26c05cd931471319def6f3d5257a6a7a 3407 empty-moov-neg-cts
|
||||
38a287dc98272ba9da0a0bf8feb72fef 3403 empty-moov-neg-cts
|
||||
|
Loading…
Reference in New Issue
Block a user