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;
|