From: Erik J. <eri...@gm...> - 2017-09-24 13:46:32
|
Hi, I captured a screen recording in iOS 11, which created a file that could not be read using libquicktime. The issue is that the mdhd-atom is 44 bytes rather than 32. It appears from looking at the data that the two timestamps and the duration has changed from 32-bit to 64-bit, and that this change is indicated by the value 0x01 in the first byte rather than 0x00. Sample mdhd atom: 0x7fff5fbab930: 01 00 00 00 00 00 00 00 d5 ed 2e fa 00 00 00 00 ........??.?.... 0x7fff5fbab940: d5 ed 2e fa 00 00 75 30 00 00 00 00 00 48 c9 85 ??.?..u0.....H?. 0x7fff5fbab950: 55 c4 00 00 Translating this into code from mdhd.c, with new data appended as comments: void quicktime_read_mdhd(quicktime_t *file, quicktime_mdhd_t *mdhd) { mdhd->version = quicktime_read_char(file); mdhd->flags = quicktime_read_int24(file); // 0x00 00 00 00 mdhd->creation_time = quicktime_read_int32(file); // 0x00 00 00 00 mdhd->modification_time = quicktime_read_int32(file); mdhd->time_scale = quicktime_read_int32(file); // 0x00 00 00 00 mdhd->duration = quicktime_read_int32(file); mdhd->language = quicktime_read_int16(file); mdhd->quality = quicktime_read_int16(file); } I have no further info on this other than sample files, but seeing how the mac timestamps are nearing the end of the 32-bit range, it seems plausible they've expanded them to 64-bits. No patch as this is all anecdotal at this point. Thanks, // Erik |