diff options
author | henry <henry@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2005-04-15 12:14:24 +0000 |
---|---|---|
committer | henry <henry@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2005-04-15 12:14:24 +0000 |
commit | b3bd58219b11396bae9454d39520502596f37453 (patch) | |
tree | 6ad9ce316702d15fff78fb828704bd6df1caf2cb /mplayer.c | |
parent | 0f3c4943073abcba6d18f90e047bc33ab812d5f9 (diff) | |
download | mpv-b3bd58219b11396bae9454d39520502596f37453.tar.bz2 mpv-b3bd58219b11396bae9454d39520502596f37453.tar.xz |
Fix OSD when switching subtitles - set the osd buffer to Subtitle: off
first, and then eventually set it to other values if some kind of subtitles
is on. Otherwise 1) spudec stuff stomps on the buffer after vobsub, 2)
Subtitle: off isn't displayed when cycling text subtitles.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@15162 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'mplayer.c')
-rw-r--r-- | mplayer.c | 30 |
1 files changed, 15 insertions, 15 deletions
@@ -3910,16 +3910,15 @@ if ((user_muted | edl_muted) != mixer.muted) mixer_mute(&mixer); osd_show_sub_visibility--; } else if (osd_show_vobsub_changed) { + snprintf(osd_text_tmp, 63, "Subtitles: off"); if (vo_vobsub && vobsub_id >= 0) { const char *language = "none"; language = vobsub_get_id(vo_vobsub, (unsigned int) vobsub_id); - snprintf(osd_text_tmp, 63, "Subtitles: (%d) %s", vobsub_id, language ? language : "unknown"); + snprintf(osd_text_tmp, 63, "Subtitles: (%d) %s", vobsub_id, language ? language : "unknown"); } #ifdef HAVE_OGGVORBIS if (d_dvdsub && demuxer->type == DEMUXER_TYPE_OGG) { - if (dvdsub_id < 0) - snprintf(osd_text_tmp, 63, "Subtitles: (off)"); - else { + if (dvdsub_id >= 0) { char *lang = demux_ogg_sub_lang(demuxer, dvdsub_id); if (!lang) lang = "unknown"; snprintf(osd_text_tmp, 63, "Subtitles: (%d) %s", dvdsub_id, lang); @@ -3928,15 +3927,17 @@ if ((user_muted | edl_muted) != mixer.muted) mixer_mute(&mixer); #endif #ifdef USE_DVDREAD if (vo_spudec && (demuxer->type != DEMUXER_TYPE_MATROSKA)) { - char lang[5] = "none"; - int code = 0; - if (dvdsub_id >= 0) code = dvd_lang_from_sid(stream, dvdsub_id); - if (code) { - lang[0] = code >> 8; - lang[1] = code; - lang[2] = 0; + if (dvdsub_id >= 0) { + char lang[5] = "none"; + int code = 0; + code = dvd_lang_from_sid(stream, dvdsub_id); + if (code) { + lang[0] = code >> 8; + lang[1] = code; + lang[2] = 0; + } + snprintf(osd_text_tmp, 63, "Subtitles: (%d) %s", dvdsub_id, lang); } - snprintf(osd_text_tmp, 63, "Subtitles: (%d) %s", dvdsub_id, lang); } #endif #ifdef HAVE_MATROSKA @@ -3945,9 +3946,8 @@ if ((user_muted | edl_muted) != mixer.muted) mixer_mute(&mixer); if (dvdsub_id >= 0) { demux_mkv_get_sub_lang(demuxer, dvdsub_id, lang, 9); lang[9] = 0; - } else - strcpy(lang, "off"); - snprintf(osd_text_tmp, 63, "Subtitles: (%d) %s", dvdsub_id, lang); + snprintf(osd_text_tmp, 63, "Subtitles: (%d) %s", dvdsub_id, lang); + } } #endif osd_show_vobsub_changed--; |