def retimestamp_tags_inplace(f, fu): flv = FLV(f) offset = None for tag in flv.iter_tags(): if offset is None and is_nonheader_media(tag): offset = tag.timestamp log.debug("Determined the offset to be %d", offset) # optimise for offset == 0, which in case of inplace updating is a noop if offset is not None and offset != 0: fu.seek(tag.offset + 4, os.SEEK_SET) fu.write(make_si32_extended(tag.timestamp - offset))