summaryrefslogtreecommitdiffstats
path: root/mplayer.c
diff options
context:
space:
mode:
authorhenry <henry@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-04-15 12:14:24 +0000
committerhenry <henry@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-04-15 12:14:24 +0000
commitb3bd58219b11396bae9454d39520502596f37453 (patch)
tree6ad9ce316702d15fff78fb828704bd6df1caf2cb /mplayer.c
parent0f3c4943073abcba6d18f90e047bc33ab812d5f9 (diff)
downloadmpv-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.c30
1 files changed, 15 insertions, 15 deletions
diff --git a/mplayer.c b/mplayer.c
index 24d6c571fd..650e2397c7 100644
--- a/mplayer.c
+++ b/mplayer.c
@@ -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--;