diff options
author | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-11-19 14:23:54 +0000 |
---|---|---|
committer | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-11-19 14:23:54 +0000 |
commit | b38e1ca6e7f699db28a9f15111a8a82ce600ef97 (patch) | |
tree | f3fe29fd9aa2614b508bf20f5aa1a17698e71290 /mplayer.c | |
parent | 0b062aa4474e24fcbf56b5341cded4a622f6e18f (diff) | |
download | mpv-b38e1ca6e7f699db28a9f15111a8a82ce600ef97.tar.bz2 mpv-b38e1ca6e7f699db28a9f15111a8a82ce600ef97.tar.xz |
Generalize subtitle switching, demux_ogg does not need a special case
anymore and demux_mov works now, too.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21054 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'mplayer.c')
-rw-r--r-- | mplayer.c | 32 |
1 files changed, 19 insertions, 13 deletions
@@ -2246,6 +2246,10 @@ static int mp_property_sub(m_option_t* prop,int action,void* arg) { return M_PROPERTY_OK; } #endif + if (dvdsub_id >= 0) { + snprintf(*(char**)arg, 63, "(%d) %s", dvdsub_id, MSGTR_Unknown); + return M_PROPERTY_OK; + } snprintf(*(char**)arg, 63, MSGTR_Disabled); return M_PROPERTY_OK; @@ -2316,10 +2320,16 @@ static int mp_property_sub(m_option_t* prop,int action,void* arg) { spudec_reset(vo_spudec); } #endif -#ifdef HAVE_OGGVORBIS - if (demuxer->type == DEMUXER_TYPE_OGG) - d_dvdsub->id = demux_ogg_sub_id(demuxer, dvdsub_id); -#endif + if (stream->type != STREAMTYPE_DVD) { + int i = 0; + for (d_dvdsub->id = 0; d_dvdsub->id < MAX_S_STREAMS; d_dvdsub->id++) { + if (demuxer->s_streams[d_dvdsub->id]) { + if (i == dvdsub_id) break; + i++; + } + } + d_dvdsub->sh = demuxer->s_streams[d_dvdsub->id]; + } if (demuxer->type == DEMUXER_TYPE_MATROSKA) { d_dvdsub->id = demux_mkv_change_subs(demuxer, dvdsub_id); #ifdef USE_ASS @@ -4043,18 +4053,14 @@ if(!demuxer) } inited_flags|=INITED_DEMUXER; -if (demuxer->type==DEMUXER_TYPE_MATROSKA) { +if (stream->type != STREAMTYPE_DVD) { + int i; // setup global sub numbering global_sub_indices[SUB_SOURCE_DEMUX] = global_sub_size; // the global # of the first demux-specific sub. - global_sub_size += demux_mkv_num_subs(demuxer); + for (i = 0; i < MAX_S_STREAMS; i++) + if (demuxer->s_streams[i]) + global_sub_size++; } -#ifdef HAVE_OGGVORBIS -if (demuxer->type==DEMUXER_TYPE_OGG) { - // setup global sub numbering - global_sub_indices[SUB_SOURCE_DEMUX] = global_sub_size; // the global # of the first demux-specific sub. - global_sub_size += demux_ogg_num_subs(demuxer); -} -#endif current_module="demux_open2"; |