Commit d3c4a783 authored by bcoudurier's avatar bcoudurier

print atom info during parsing, patch by Frank Barchard, fbarchard at google dot com

git-svn-id: file:///var/local/repositories/ffmpeg/trunk@19435 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
parent 9899a2f3
...@@ -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