summaryrefslogtreecommitdiff
path: root/tools/qt-faststart.c
diff options
context:
space:
mode:
authorFrank Barchard <fbarchard@google.com>2009-07-15 08:57:27 +0000
committerBaptiste Coudurier <baptiste.coudurier@gmail.com>2009-07-15 08:57:27 +0000
commit65b875d8fcc2a40cc45b41516c4bec4f90909b20 (patch)
tree48eb36dfd9bc3a9cbd26f4b4412cd189dfdd2635 /tools/qt-faststart.c
parentad420e25e221072710242ff50eab1ad0374f2507 (diff)
print atom info during parsing, patch by Frank Barchard, fbarchard at google dot com
Originally committed as revision 19435 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'tools/qt-faststart.c')
-rw-r--r--tools/qt-faststart.c40
1 files changed, 24 insertions, 16 deletions
diff --git a/tools/qt-faststart.c b/tools/qt-faststart.c
index ff86e56e20..5c1d850462 100644
--- a/tools/qt-faststart.c
+++ b/tools/qt-faststart.c
@@ -80,6 +80,7 @@ int main(int argc, char *argv[])
unsigned char atom_bytes[ATOM_PREAMBLE_SIZE];
uint32_t atom_type = 0;
uint64_t atom_size = 0;
+ uint64_t atom_offset = 0;
uint64_t last_offset;
unsigned char *moov_atom;
unsigned char *ftyp_atom = 0;
@@ -112,20 +113,6 @@ int main(int argc, char *argv[])
atom_size = (uint32_t)BE_32(&atom_bytes[0]);
atom_type = BE_32(&atom_bytes[4]);
- if ((atom_type != FREE_ATOM) &&
- (atom_type != JUNK_ATOM) &&
- (atom_type != MDAT_ATOM) &&
- (atom_type != MOOV_ATOM) &&
- (atom_type != PNOT_ATOM) &&
- (atom_type != SKIP_ATOM) &&
- (atom_type != WIDE_ATOM) &&
- (atom_type != PICT_ATOM) &&
- (atom_type != UUID_ATOM) &&
- (atom_type != FTYP_ATOM)) {
- printf ("encountered non-QT top-level atom (is this a Quicktime file?)\n");
- break;
- }
-
/* keep ftyp atom */
if (atom_type == FTYP_ATOM) {
ftyp_atom_size = atom_size;
@@ -144,8 +131,7 @@ int main(int argc, char *argv[])
return 1;
}
start_offset = ftello(infile);
- continue;
- }
+ } else {
/* 64-bit special case */
if (atom_size == 1) {
@@ -158,6 +144,28 @@ int main(int argc, char *argv[])
fseeko(infile, atom_size - ATOM_PREAMBLE_SIZE, SEEK_CUR);
}
}
+ printf("%c%c%c%c %10"PRIu64" %"PRIu64"\n",
+ (atom_type >> 24) & 255,
+ (atom_type >> 16) & 255,
+ (atom_type >> 8) & 255,
+ (atom_type >> 0) & 255,
+ atom_offset,
+ atom_size);
+ if ((atom_type != FREE_ATOM) &&
+ (atom_type != JUNK_ATOM) &&
+ (atom_type != MDAT_ATOM) &&
+ (atom_type != MOOV_ATOM) &&
+ (atom_type != PNOT_ATOM) &&
+ (atom_type != SKIP_ATOM) &&
+ (atom_type != WIDE_ATOM) &&
+ (atom_type != PICT_ATOM) &&
+ (atom_type != UUID_ATOM) &&
+ (atom_type != FTYP_ATOM)) {
+ printf ("encountered non-QT top-level atom (is this a Quicktime file?)\n");
+ break;
+ }
+ atom_offset += atom_size;
+ }
if (atom_type != MOOV_ATOM) {
printf ("last atom in file was not a moov atom\n");