Mercurial > libavformat.hg
changeset 6222:0bc4c96a5aea libavformat
add AV_DISPOSITION_FORCED flag and use it in matroska demuxer
author | aurel |
---|---|
date | Fri, 02 Jul 2010 16:38:44 +0000 |
parents | b9bf2d18f51e |
children | 806269213b00 |
files | avformat.h matroskadec.c |
diffstat | 2 files changed, 8 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/avformat.h Fri Jul 02 15:09:27 2010 +0000 +++ b/avformat.h Fri Jul 02 16:38:44 2010 +0000 @@ -396,6 +396,10 @@ #define AV_DISPOSITION_COMMENT 0x0008 #define AV_DISPOSITION_LYRICS 0x0010 #define AV_DISPOSITION_KARAOKE 0x0020 +/** Track should be used during playback by default. + Useful for subtitle track that should be displayed + even when user did not explicitly ask for subtitles. */ +#define AV_DISPOSITION_FORCED 0x0040 /** * Stream structure.
--- a/matroskadec.c Fri Jul 02 15:09:27 2010 +0000 +++ b/matroskadec.c Fri Jul 02 16:38:44 2010 +0000 @@ -139,6 +139,7 @@ double time_scale; uint64_t default_duration; uint64_t flag_default; + uint64_t flag_forced; MatroskaTrackVideo video; MatroskaTrackAudio audio; EbmlList encodings; @@ -336,11 +337,11 @@ { MATROSKA_ID_TRACKDEFAULTDURATION, EBML_UINT, 0, offsetof(MatroskaTrack,default_duration) }, { MATROSKA_ID_TRACKTIMECODESCALE, EBML_FLOAT,0, offsetof(MatroskaTrack,time_scale), {.f=1.0} }, { MATROSKA_ID_TRACKFLAGDEFAULT, EBML_UINT, 0, offsetof(MatroskaTrack,flag_default), {.u=1} }, + { MATROSKA_ID_TRACKFLAGFORCED, EBML_UINT, 0, offsetof(MatroskaTrack,flag_forced), {.u=0} }, { MATROSKA_ID_TRACKVIDEO, EBML_NEST, 0, offsetof(MatroskaTrack,video), {.n=matroska_track_video} }, { MATROSKA_ID_TRACKAUDIO, EBML_NEST, 0, offsetof(MatroskaTrack,audio), {.n=matroska_track_audio} }, { MATROSKA_ID_TRACKCONTENTENCODINGS,EBML_NEST, 0, 0, {.n=matroska_track_encodings} }, { MATROSKA_ID_TRACKFLAGENABLED, EBML_NONE }, - { MATROSKA_ID_TRACKFLAGFORCED, EBML_NONE }, { MATROSKA_ID_TRACKFLAGLACING, EBML_NONE }, { MATROSKA_ID_CODECNAME, EBML_NONE }, { MATROSKA_ID_CODECDECODEALL, EBML_NONE }, @@ -1391,6 +1392,8 @@ if (track->flag_default) st->disposition |= AV_DISPOSITION_DEFAULT; + if (track->flag_forced) + st->disposition |= AV_DISPOSITION_FORCED; if (track->default_duration) av_reduce(&st->codec->time_base.num, &st->codec->time_base.den,