[FFmpeg-devel] [PATCH]Recognize "qt " compatible brand in isom

Clément Bœsch ubitux at gmail.com
Fri Nov 2 19:44:11 CET 2012


On Fri, Nov 02, 2012 at 07:35:42PM +0100, Carl Eugen Hoyos wrote:
> On Friday 02 November 2012 03:50:29 pm Clément Bœsch wrote:
> > On Fri, Nov 02, 2012 at 03:37:32PM +0100, Carl Eugen Hoyos wrote:
> > > Hi!
> > >
> > > Attached patch fixes ticket #1881 for me, I don't know if it has funny
> > > side-effects.
> > >
> > > Please review, Carl Eugen
> > >
> > > diff --git a/libavformat/mov.c b/libavformat/mov.c
> > > index d7d7f21..3488a80 100644
> > > --- a/libavformat/mov.c
> > > +++ b/libavformat/mov.c
> > > @@ -755,6 +755,8 @@ static int mov_read_ftyp(MOVContext *c, AVIOContext
> > > *pb, MOVAtom atom) avio_read(pb, comp_brands_str, comp_brand_size);
> > >      comp_brands_str[comp_brand_size] = 0;
> > >      av_dict_set(&c->fc->metadata, "compatible_brands", comp_brands_str,
> > > 0); +    if (!strncmp(comp_brands_str, "qt  ", 4))
> > > +        c->isom = 0;
> >
> > You can have several compatible brands, why would you compare to only one?
> >
> > Also, I'm not sure that's a good idea to have a compatible brand with QT
> > having such "huge" consequence…
> 
> Less intrusive patch attached.
> 
> Please comment, Carl Eugen

> diff --git a/libavformat/mov.c b/libavformat/mov.c
> index d7d7f21..4f1aad1 100644
> --- a/libavformat/mov.c
> +++ b/libavformat/mov.c
> @@ -1397,7 +1397,8 @@ int ff_mov_read_stsd_entries(MOVContext *c, AVIOContext *pb, int entries)
>  
>              //Read QT version 1 fields. In version 0 these do not exist.
>              av_dlog(c->fc, "version =%d, isom =%d\n",version,c->isom);
> -            if (!c->isom) {
> +            if (!c->isom ||
> +                strstr(av_dict_get(c->fc->metadata, "compatible_brands", NULL, AV_DICT_MATCH_CASE)->value, "qt  ")) {
>                  if (version==1) {
>                      sc->samples_per_frame = avio_rb32(pb);
>                      avio_rb32(pb); /* bytes per packet */

Might be ok. But you could also just assume that the "JUNK" major brand is
an alias for the QuickTime brand, and thus mark the file as non-isom.

I'm not a maintainer of that file though.

-- 
Clément B.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 490 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20121102/877898f5/attachment.asc>


More information about the ffmpeg-devel mailing list