[FFmpeg-devel] [PATCH] Add default stream flag

Aurelien Jacobs aurel
Fri Feb 29 01:39:29 CET 2008


Evgeniy Stepanov wrote:

> On Thursday 28 February 2008 23:49:15 Michael Niedermayer wrote:
> > On Thu, Feb 28, 2008 at 11:24:22PM +0300, Evgeniy Stepanov wrote:
> > > Hi,
> > >
> > > this patch adds 'default_stream' flag to AVStream. Streams marked
> > > as default are to be selected for playback (or whatever else) if
> > > the user does not have any other preference (like language, or an
> > > exact stream id).
> > >
> > > This patch adds support for such streams in matroska muxer and
> > > demuxer. I don't know if there is similar functionality in other
> > > containers.
> >
> > nut of course ...
> >
> > > Is there a better place to put this information, without adding a
> > > new member to AVStream ?
> > >
> > > Maybe add an AVStream.flags with one bit of it occupied by
> > > default_stream flag ?
> >
> > This is better, but please call it int disposition; with
> > AV_DISPOSITION_DEFAULT
> > AV_DISPOSITION_DUB
> > AV_DISPOSITION_ORIGINAL
> > AV_DISPOSITION_COMMENT
> > AV_DISPOSITION_LYRICS
> > AV_DISPOSITION_KARAOKE
> 
> Here. Both matroska and nut supported (I invented new disposition
> 'default' for nut, it is not in the spec). In ffmpeg.c, disposition
> is copied from ist to ost.
> 
> [...]
> 
> --- a/libavformat/matroskaenc.c
> +++ b/libavformat/matroskaenc.c
> @@ -549,6 +549,8 @@ static int mkv_write_tracks(AVFormatContext *s)
>          else
>              put_ebml_string(pb, MATROSKA_ID_TRACKLANGUAGE, "und");
>  
> +        put_ebml_uint(pb,
> MATROSKA_ID_TRACKFLAGDEFAULT, !!(st->disposition &
> AV_DISPOSITION_DEFAULT));

IMO, don't write this uint if it's not needed:

    if (st->disposition & AV_DISPOSITION_DEFAULT)
        put_ebml_uint(pb, MATROSKA_ID_TRACKFLAGDEFAULT, 1);

Except that, matroska part is OK.

Aurel




More information about the ffmpeg-devel mailing list