From: Joel S. <joe...@us...> - 2012-11-11 02:32:38
|
commit dced7b42629f74561fd31c4f7881bc7f769fcf46 Author: Joel Smith <jsf...@jk...> Date: Sun Nov 4 00:00:05 2012 -0600 add track ID field to AtomicParseley library libs/atomic-parsley/AP_AtomExtracts.cpp | 13 +++++++++++++ libs/atomic-parsley/AP_AtomExtracts.h | 1 + 2 files changed, 14 insertions(+), 0 deletions(-) --- diff --git a/libs/atomic-parsley/AP_AtomExtracts.cpp b/libs/atomic-parsley/AP_AtomExtracts.cpp index d4e0544..039eda8 100644 --- a/libs/atomic-parsley/AP_AtomExtracts.cpp +++ b/libs/atomic-parsley/AP_AtomExtracts.cpp @@ -1070,8 +1070,21 @@ void APar_ExtractTrackDetails(char* uint32_buffer, FILE* isofile, Trackage* trac + 12); track_info->modified_time = APar_read32(uint32_buffer, isofile, parsedAtoms[track->track_atom].AtomicStart + 16); + track_info->track_id = APar_read32(uint32_buffer, isofile, parsedAtoms[track->track_atom].AtomicStart + 20); track_info->duration = APar_read32(uint32_buffer, isofile, parsedAtoms[track->track_atom].AtomicStart + 28); } + else if (APar_read8(isofile, parsedAtoms[track->track_atom].AtomicStart + 8) == 1) { + if (APar_read8(isofile, parsedAtoms[track->track_atom].AtomicStart + 11) & 1) { + track_info->track_enabled = true; + } + //version 1 has 64-bit creation/modified times which AP currently doesn't support + //track_info->creation_time = APar_read64(uint64_buffer, isofile, parsedAtoms[track->track_atom].AtomicStart + // + 12); + //track_info->modified_time = APar_read32(uint64_buffer, isofile, parsedAtoms[track->track_atom].AtomicStart + // + 20); + track_info->track_id = APar_read32(uint32_buffer, isofile, parsedAtoms[track->track_atom].AtomicStart + 28); + track_info->duration = APar_read32(uint32_buffer, isofile, parsedAtoms[track->track_atom].AtomicStart + 36); + } //language code APar_TrackLevelInfo(track, "mdhd"); diff --git a/libs/atomic-parsley/AP_AtomExtracts.h b/libs/atomic-parsley/AP_AtomExtracts.h index bd9cb26..3292aa5 100644 --- a/libs/atomic-parsley/AP_AtomExtracts.h +++ b/libs/atomic-parsley/AP_AtomExtracts.h @@ -35,6 +35,7 @@ typedef struct { //if any of these are unused, they are set to 0xFF struct _TrackInfo { uint32_t creation_time; uint32_t modified_time; + uint32_t track_id; uint32_t duration; bool track_enabled; uint32_t media_sample_rate; |