diff options
author | wm4 <wm4@nowhere> | 2012-08-03 09:32:08 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2012-08-03 12:48:03 +0200 |
commit | e26b7314cf6751a5b2aafb9c29395711758e30b5 (patch) | |
tree | 78b09c49f044bf96a9bb6ee0c188e319ff7489a4 /command.c | |
parent | e13c05366557cbe3bf371010f2087a57f072a7eb (diff) | |
download | mpv-e26b7314cf6751a5b2aafb9c29395711758e30b5.tar.bz2 mpv-e26b7314cf6751a5b2aafb9c29395711758e30b5.tar.xz |
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.
Diffstat (limited to 'command.c')
-rw-r--r-- | command.c | 12 |
1 files changed, 7 insertions, 5 deletions
@@ -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; |