comparison matroskadec.c @ 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 9df581584d50
children 806269213b00
comparison
equal deleted inserted replaced
6221:b9bf2d18f51e 6222:0bc4c96a5aea
137 EbmlBin codec_priv; 137 EbmlBin codec_priv;
138 char *language; 138 char *language;
139 double time_scale; 139 double time_scale;
140 uint64_t default_duration; 140 uint64_t default_duration;
141 uint64_t flag_default; 141 uint64_t flag_default;
142 uint64_t flag_forced;
142 MatroskaTrackVideo video; 143 MatroskaTrackVideo video;
143 MatroskaTrackAudio audio; 144 MatroskaTrackAudio audio;
144 EbmlList encodings; 145 EbmlList encodings;
145 146
146 AVStream *stream; 147 AVStream *stream;
334 { MATROSKA_ID_CODECPRIVATE, EBML_BIN, 0, offsetof(MatroskaTrack,codec_priv) }, 335 { MATROSKA_ID_CODECPRIVATE, EBML_BIN, 0, offsetof(MatroskaTrack,codec_priv) },
335 { MATROSKA_ID_TRACKLANGUAGE, EBML_UTF8, 0, offsetof(MatroskaTrack,language), {.s="eng"} }, 336 { MATROSKA_ID_TRACKLANGUAGE, EBML_UTF8, 0, offsetof(MatroskaTrack,language), {.s="eng"} },
336 { MATROSKA_ID_TRACKDEFAULTDURATION, EBML_UINT, 0, offsetof(MatroskaTrack,default_duration) }, 337 { MATROSKA_ID_TRACKDEFAULTDURATION, EBML_UINT, 0, offsetof(MatroskaTrack,default_duration) },
337 { MATROSKA_ID_TRACKTIMECODESCALE, EBML_FLOAT,0, offsetof(MatroskaTrack,time_scale), {.f=1.0} }, 338 { MATROSKA_ID_TRACKTIMECODESCALE, EBML_FLOAT,0, offsetof(MatroskaTrack,time_scale), {.f=1.0} },
338 { MATROSKA_ID_TRACKFLAGDEFAULT, EBML_UINT, 0, offsetof(MatroskaTrack,flag_default), {.u=1} }, 339 { MATROSKA_ID_TRACKFLAGDEFAULT, EBML_UINT, 0, offsetof(MatroskaTrack,flag_default), {.u=1} },
340 { MATROSKA_ID_TRACKFLAGFORCED, EBML_UINT, 0, offsetof(MatroskaTrack,flag_forced), {.u=0} },
339 { MATROSKA_ID_TRACKVIDEO, EBML_NEST, 0, offsetof(MatroskaTrack,video), {.n=matroska_track_video} }, 341 { MATROSKA_ID_TRACKVIDEO, EBML_NEST, 0, offsetof(MatroskaTrack,video), {.n=matroska_track_video} },
340 { MATROSKA_ID_TRACKAUDIO, EBML_NEST, 0, offsetof(MatroskaTrack,audio), {.n=matroska_track_audio} }, 342 { MATROSKA_ID_TRACKAUDIO, EBML_NEST, 0, offsetof(MatroskaTrack,audio), {.n=matroska_track_audio} },
341 { MATROSKA_ID_TRACKCONTENTENCODINGS,EBML_NEST, 0, 0, {.n=matroska_track_encodings} }, 343 { MATROSKA_ID_TRACKCONTENTENCODINGS,EBML_NEST, 0, 0, {.n=matroska_track_encodings} },
342 { MATROSKA_ID_TRACKFLAGENABLED, EBML_NONE }, 344 { MATROSKA_ID_TRACKFLAGENABLED, EBML_NONE },
343 { MATROSKA_ID_TRACKFLAGFORCED, EBML_NONE },
344 { MATROSKA_ID_TRACKFLAGLACING, EBML_NONE }, 345 { MATROSKA_ID_TRACKFLAGLACING, EBML_NONE },
345 { MATROSKA_ID_CODECNAME, EBML_NONE }, 346 { MATROSKA_ID_CODECNAME, EBML_NONE },
346 { MATROSKA_ID_CODECDECODEALL, EBML_NONE }, 347 { MATROSKA_ID_CODECDECODEALL, EBML_NONE },
347 { MATROSKA_ID_CODECINFOURL, EBML_NONE }, 348 { MATROSKA_ID_CODECINFOURL, EBML_NONE },
348 { MATROSKA_ID_CODECDOWNLOADURL, EBML_NONE }, 349 { MATROSKA_ID_CODECDOWNLOADURL, EBML_NONE },
1389 av_metadata_set2(&st->metadata, "language", track->language, 0); 1390 av_metadata_set2(&st->metadata, "language", track->language, 0);
1390 av_metadata_set2(&st->metadata, "title", track->name, 0); 1391 av_metadata_set2(&st->metadata, "title", track->name, 0);
1391 1392
1392 if (track->flag_default) 1393 if (track->flag_default)
1393 st->disposition |= AV_DISPOSITION_DEFAULT; 1394 st->disposition |= AV_DISPOSITION_DEFAULT;
1395 if (track->flag_forced)
1396 st->disposition |= AV_DISPOSITION_FORCED;
1394 1397
1395 if (track->default_duration) 1398 if (track->default_duration)
1396 av_reduce(&st->codec->time_base.num, &st->codec->time_base.den, 1399 av_reduce(&st->codec->time_base.num, &st->codec->time_base.den,
1397 track->default_duration, 1000000000, 30000); 1400 track->default_duration, 1000000000, 30000);
1398 1401