[FFmpeg-devel] qt-faststart uuid top level atom support

Frank Barchard fbarchard
Mon Jun 29 21:22:57 CEST 2009


On Thu, Jun 25, 2009 at 3:25 AM, Frank Barchard <fbarchard at google.com>wrote:

> Adding uuid atom support.   2 movies with uuid.  faces.mp4 has the moov at
> the end and benefits from qt-faststart
>

Is this patch acceptable?  Without the patch, qt-faststart fails:

qt-faststart.orig candles.mp4 bob.mov
encountered non-QT top-level atom (is this a Quicktime file?)
last atom in file was not a moov atom

qt-faststart.orig faces.mp4 bob.mov
encountered non-QT top-level atom (is this a Quicktime file?)
last atom in file was not a moov atom

E:\mediatests>qt-faststart candles.mp4 bob.mov
> ftyp          0 24
> moov         24 58817
> mdat      58841 35960979
> uuid   36019820 14670
> Last atom in file was not a moov or free atom.  Skipping.
>
> E:\mediatests>qt-faststart faces.mp4 bob.mov
> ftyp          0 28
> uuid         28 148
> mdat        176 43981826
> moov   43982002 22107
>  patching stco atom...
>  patching stco atom...
>  writing ftyp atom...
>  writing moov atom...
>  copying rest of file: 28..43982002
>
>
> --- tools/qt-faststart.orig.c   2009-05-07 21:41:30.000000000 -0700
> +++ tools/qt-faststart.c        2009-06-25 03:19:21.282979100 -0700
> @@ -1,5 +1,5 @@
>  /*
> - * qt-faststart.c, v0.1
> + * qt-faststart.c, v0.2
>   * by Mike Melanson (melanson at pcisys.net)
>   * This file is placed in the public domain. Use the program however you
>   * see fit.
> @@ -64,6 +64,7 @@
>  #define WIDE_ATOM QT_ATOM('w', 'i', 'd', 'e')
>  #define PICT_ATOM QT_ATOM('P', 'I', 'C', 'T')
>  #define FTYP_ATOM QT_ATOM('f', 't', 'y', 'p')
> +#define UUID_ATOM QT_ATOM('u', 'u', 'i', 'd')
>
>  #define CMOV_ATOM QT_ATOM('c', 'm', 'o', 'v')
>  #define STCO_ATOM QT_ATOM('s', 't', 'c', 'o')
> @@ -119,6 +120,7 @@ int main(int argc, char *argv[])
>              (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 fil
> e?)\n");
>              break;
>



More information about the ffmpeg-devel mailing list