remove duplicated MOOV bpces

This commit is contained in:
Lesmiscore 2022-06-11 16:52:42 +09:00
parent 3fac07c04a
commit 099db78935
No known key found for this signature in database
GPG key ID: 0EC2B52CF86236FF

View file

@ -24,7 +24,22 @@ class MP4FixupTimestampPP(PostProcessor):
""" returns (baseMediaDecodeTime offset, sample duration cutoff) """ """ returns (baseMediaDecodeTime offset, sample duration cutoff) """
smallest_bmdt, known_sdur = inf, set() smallest_bmdt, known_sdur = inf, set()
with open(filepath, 'rb') as r: with open(filepath, 'rb') as r:
moov_over, in_secondary_moov = False, False
for btype, content in parse_mp4_boxes(r): for btype, content in parse_mp4_boxes(r):
# skip duplicate MOOV boxes
if btype == 'moov':
if moov_over:
in_secondary_moov = True
continue
elif btype is None and content == 'moov':
in_secondary_moov = False
if moov_over:
continue
moov_over = True
elif in_secondary_moov:
continue
if btype == 'tfdt': if btype == 'tfdt':
version, _ = unpack_ver_flags(content[0:4]) version, _ = unpack_ver_flags(content[0:4])
# baseMediaDecodeTime always comes to the first # baseMediaDecodeTime always comes to the first