Commit 65b875d8 authored by Frank Barchard's avatar Frank Barchard Committed by Baptiste Coudurier

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
parent ad420e25
...@@ -80,6 +80,7 @@ int main(int argc, char *argv[]) ...@@ -80,6 +80,7 @@ int main(int argc, char *argv[])
unsigned char atom_bytes[ATOM_PREAMBLE_SIZE]; unsigned char atom_bytes[ATOM_PREAMBLE_SIZE];
uint32_t atom_type = 0; uint32_t atom_type = 0;
uint64_t atom_size = 0; uint64_t atom_size = 0;
uint64_t atom_offset = 0;
uint64_t last_offset; uint64_t last_offset;
unsigned char *moov_atom; unsigned char *moov_atom;
unsigned char *ftyp_atom = 0; unsigned char *ftyp_atom = 0;
...@@ -112,20 +113,6 @@ int main(int argc, char *argv[]) ...@@ -112,20 +113,6 @@ int main(int argc, char *argv[])
atom_size = (uint32_t)BE_32(&atom_bytes[0]); atom_size = (uint32_t)BE_32(&atom_bytes[0]);
atom_type = BE_32(&atom_bytes[4]); 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 */ /* keep ftyp atom */
if (atom_type == FTYP_ATOM) { if (atom_type == FTYP_ATOM) {
ftyp_atom_size = atom_size; ftyp_atom_size = atom_size;
...@@ -144,8 +131,7 @@ int main(int argc, char *argv[]) ...@@ -144,8 +131,7 @@ int main(int argc, char *argv[])
return 1; return 1;
} }
start_offset = ftello(infile); start_offset = ftello(infile);
continue; } else {
}
/* 64-bit special case */ /* 64-bit special case */
if (atom_size == 1) { if (atom_size == 1) {
...@@ -158,6 +144,28 @@ int main(int argc, char *argv[]) ...@@ -158,6 +144,28 @@ int main(int argc, char *argv[])
fseeko(infile, atom_size - ATOM_PREAMBLE_SIZE, SEEK_CUR); 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) { if (atom_type != MOOV_ATOM) {
printf ("last atom in file was not a moov atom\n"); printf ("last atom in file was not a moov atom\n");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment