[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