comparison libmpdemux/demux_mkv.c @ 26269:65ad20416dd7

Support 'default' attribute for audio and subtitle tracks. The first default track is chosen for playback if language-based selection failes. Additionally, for audio tracks, the first one is chosen if there are no default tracks at all.
author eugeni
date Sun, 30 Mar 2008 16:55:46 +0000
parents 835f8ba52075
children 664b4467564d
comparison
equal deleted inserted replaced
26268:2f5886f0d307 26269:65ad20416dd7
1847 if(!sh_a) return 1; 1847 if(!sh_a) return 1;
1848 mkv_d->audio_tracks[mkv_d->last_aid] = track->tnum; 1848 mkv_d->audio_tracks[mkv_d->last_aid] = track->tnum;
1849 1849
1850 if (track->language && (strcmp(track->language, "und") != 0)) 1850 if (track->language && (strcmp(track->language, "und") != 0))
1851 sh_a->lang = strdup(track->language); 1851 sh_a->lang = strdup(track->language);
1852 sh_a->default_track = track->default_track;
1852 sh_a->ds = demuxer->audio; 1853 sh_a->ds = demuxer->audio;
1853 sh_a->wf = malloc (sizeof (WAVEFORMATEX)); 1854 sh_a->wf = malloc (sizeof (WAVEFORMATEX));
1854 if (track->ms_compat && (track->private_size >= sizeof(WAVEFORMATEX))) 1855 if (track->ms_compat && (track->private_size >= sizeof(WAVEFORMATEX)))
1855 { 1856 {
1856 WAVEFORMATEX *wf = (WAVEFORMATEX *)track->private_data; 1857 WAVEFORMATEX *wf = (WAVEFORMATEX *)track->private_data;
2215 memcpy (sh->extradata, track->private_data, 2216 memcpy (sh->extradata, track->private_data,
2216 track->private_size); 2217 track->private_size);
2217 sh->extradata_len = track->private_size; 2218 sh->extradata_len = track->private_size;
2218 if (track->language && (strcmp(track->language, "und") != 0)) 2219 if (track->language && (strcmp(track->language, "und") != 0))
2219 sh->lang = strdup(track->language); 2220 sh->lang = strdup(track->language);
2221 sh->default_track = track->default_track;
2220 } 2222 }
2221 else 2223 else
2222 { 2224 {
2223 mp_msg (MSGT_DEMUX, MSGL_ERR, MSGTR_MPDEMUX_MKV_SubtitleTypeNotSupported, 2225 mp_msg (MSGT_DEMUX, MSGL_ERR, MSGTR_MPDEMUX_MKV_SubtitleTypeNotSupported,
2224 track->codec_id); 2226 track->codec_id);