On Fri, Nov 06, 2009 at 02:59:34AM -0200, D?niel Fraga wrote: > 4) -slang still doesn't work for dvdnav:// although it always worked > for dvd://. But I'm happy that at least now, dvdnav:// will not > "forget" the subtitle selection when changing chapters. The subtitle<->language mapping is broken with dvdnav, thus it can't work. However this issue only exists because your DVD has "holes", i.e. subtitle 0 does not exist, but 1 does, two does not exist but 3 does etc. I do not have any such DVD, so I can't test it and I don't know libdvdnav well enough to know what I am doing, but please test what attached patch changes (preferably with output again like for the others). Note that selecting subtitles from the menu I think is just a not implemented feature, and I'm not going to implement it (I don't even use that feature with my hardware DVD players :-) ). -------------- next part -------------- Index: stream/stream_dvdnav.c =================================================================== --- stream/stream_dvdnav.c (revision 29832) +++ stream/stream_dvdnav.c (working copy) @@ -556,9 +556,9 @@ tmp[1] = lang & 0xFF; tmp[2] = 0; } - mp_msg(MSGT_OPEN,MSGL_STATUS,MSGTR_DVDsubtitleLanguage, i, tmp); + mp_msg(MSGT_OPEN,MSGL_STATUS,MSGTR_DVDsubtitleLanguage, lg, tmp); if (lang != 0xFFFF && lang && tmp[0]) - mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_SID_%d_LANG=%s\n", i, tmp); + mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_SID_%d_LANG=%s\n", lg, tmp); } } @@ -820,8 +820,7 @@ uint16_t lang; dvdnav_priv_t *priv = stream->priv; if(sid < 0) return 0; - lg = dvdnav_get_spu_logical_stream(priv->dvdnav, sid); - lang = dvdnav_spu_stream_to_lang(priv->dvdnav, lg); + lang = dvdnav_spu_stream_to_lang(priv->dvdnav, sid); if(lang == 0xffff) return 0; buf[0] = lang >> 8; buf[1] = lang & 0xFF;