From e26b7314cf6751a5b2aafb9c29395711758e30b5 Mon Sep 17 00:00:00 2001 From: wm4 Date: Fri, 3 Aug 2012 09:32:08 +0200 Subject: mplayer: fix output of audio/sub language in terminal output The SH_COMMON lang field seems to be blatantly unreliable and is not always set by demux_lavf (at least not with dvdnav:// ). Also fix the same for the show_tracks_osd slave command. --- command.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'command.c') diff --git a/command.c b/command.c index 053ac653ee..ee9fcbc48e 100644 --- a/command.c +++ b/command.c @@ -2665,13 +2665,13 @@ static void show_tracks_on_osd(MPContext *mpctx) if (cnt > 1) res = talloc_asprintf_append(res, "(Warning: more than one video stream.)\n"); -#define STD_TRACK_HDR(st, id) \ +#define STD_TRACK_HDR(st, id, lang) \ res = talloc_asprintf_append(res, "%s(%d) ", IND, st->id); \ if (st->title) { \ res = talloc_asprintf_append(res, "'%s' ", st->title); \ } \ - if (st->lang) { \ - res = talloc_asprintf_append(res, "(%s) ", st->lang); \ + if (lang) { \ + res = talloc_asprintf_append(res, "(%s) ", lang); \ } for (n = 0; n < MAX_A_STREAMS; n++) { @@ -2680,7 +2680,8 @@ static void show_tracks_on_osd(MPContext *mpctx) cnt++; if (a == cur_a) res = talloc_asprintf_append(res, "> "); - STD_TRACK_HDR(a, aid) + char *lang = demuxer_audio_lang(mpctx->demuxer, a->index); + STD_TRACK_HDR(a, aid, lang) if (a == cur_a) res = talloc_asprintf_append(res, "<"); res = talloc_asprintf_append(res, "\n"); @@ -2695,7 +2696,8 @@ static void show_tracks_on_osd(MPContext *mpctx) cnt++; if (s == cur_s) res = talloc_asprintf_append(res, "> "); - STD_TRACK_HDR(s, sid) + char *lang = demuxer_sub_lang(mpctx->demuxer, s->index); + STD_TRACK_HDR(s, sid, lang) char *type = "?"; switch (s->type) { case 't': type = "SRT"; break; -- cgit v1.2.3