From 50f563f9279f01a9f2177cac84178b153365f037 Mon Sep 17 00:00:00 2001 From: diego Date: Thu, 8 Oct 2009 11:25:01 +0000 Subject: cosmetics: Remove some pointless parentheses from return calls. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29759 b3059339-0415-0410-9bf9-f77b7e298cf2 --- stream/stream_dvdnav.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'stream/stream_dvdnav.c') diff --git a/stream/stream_dvdnav.c b/stream/stream_dvdnav.c index ea8a28fe5f..13b6c5f144 100644 --- a/stream/stream_dvdnav.c +++ b/stream/stream_dvdnav.c @@ -698,11 +698,11 @@ static int mp_dvdnav_get_aid_from_format (stream_t *stream, int index, uint8_t l format = dvdnav_audio_stream_format(priv->dvdnav, lg); switch(format) { case DVDNAV_FORMAT_AC3: - return (index + 128); + return index + 128; case DVDNAV_FORMAT_DTS: - return (index + 136); + return index + 136; case DVDNAV_FORMAT_LPCM: - return (index + 160); + return index + 160; case DVDNAV_FORMAT_MPEGAUDIO: return index; default: -- cgit v1.2.3 From f46ede9a6b449f0b2c084cb3580180e2def39263 Mon Sep 17 00:00:00 2001 From: reimar Date: Thu, 5 Nov 2009 21:13:38 +0000 Subject: Change the subtitle numbers in the dvdnav subtitle language info to match the numbers used by MPlayer's OSD and -sid option. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29828 b3059339-0415-0410-9bf9-f77b7e298cf2 --- stream/stream_dvdnav.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'stream/stream_dvdnav.c') diff --git a/stream/stream_dvdnav.c b/stream/stream_dvdnav.c index 13b6c5f144..a9f1939898 100644 --- a/stream/stream_dvdnav.c +++ b/stream/stream_dvdnav.c @@ -562,7 +562,7 @@ static void show_audio_subs_languages(dvdnav_t *nav) } tmp[2] = 0; if (lang != 0xFFFF) - mp_msg(MSGT_OPEN,MSGL_STATUS,MSGTR_DVDsubtitleLanguage, i+0x20, tmp); + mp_msg(MSGT_OPEN,MSGL_STATUS,MSGTR_DVDsubtitleLanguage, i, tmp); } } -- cgit v1.2.3 From b00d649d985cdd2154be916f3f448c978523becc Mon Sep 17 00:00:00 2001 From: reimar Date: Thu, 5 Nov 2009 21:22:38 +0000 Subject: Make the dvdnav stream language information output more similar to the dvd one. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29829 b3059339-0415-0410-9bf9-f77b7e298cf2 --- stream/stream_dvdnav.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) (limited to 'stream/stream_dvdnav.c') diff --git a/stream/stream_dvdnav.c b/stream/stream_dvdnav.c index a9f1939898..9013ccc023 100644 --- a/stream/stream_dvdnav.c +++ b/stream/stream_dvdnav.c @@ -517,9 +517,9 @@ static void show_audio_subs_languages(dvdnav_t *nav) uint8_t lg; uint16_t i, lang, format, id, channels; int base[7] = {128, 0, 0, 0, 160, 136, 0}; - char tmp[3]; for(i=0; i<8; i++) { + char tmp[] = "unknown"; lg = dvdnav_get_audio_logical_stream(nav, i); if(lg == 0xff) continue; channels = dvdnav_audio_stream_channels(nav, lg); @@ -528,14 +528,12 @@ static void show_audio_subs_languages(dvdnav_t *nav) else channels--; lang = dvdnav_audio_stream_to_lang(nav, lg); - if(lang == 0xFFFF) - tmp[0] = tmp[1] = '?'; - else + if(lang != 0xFFFF) { tmp[0] = lang >> 8; tmp[1] = lang & 0xFF; + tmp[2] = 0; } - tmp[2] = 0; format = dvdnav_audio_stream_format(nav, lg); if(format == 0xFFFF || format > 6) format = 1; //unknown @@ -550,18 +548,16 @@ static void show_audio_subs_languages(dvdnav_t *nav) for(i=0; i<32; i++) { + char tmp[] = "unknown"; lg = dvdnav_get_spu_logical_stream(nav, i); if(lg == 0xff) continue; lang = dvdnav_spu_stream_to_lang(nav, lg); - if(lang == 0xFFFF) - tmp[0] = tmp[1] = '?'; - else + if(lang != 0xFFFF) { tmp[0] = lang >> 8; tmp[1] = lang & 0xFF; + tmp[2] = 0; } - tmp[2] = 0; - if (lang != 0xFFFF) mp_msg(MSGT_OPEN,MSGL_STATUS,MSGTR_DVDsubtitleLanguage, i, tmp); } } -- cgit v1.2.3 From 503fe2eb9c9b2f073ce58c6bab2af727ba577740 Mon Sep 17 00:00:00 2001 From: reimar Date: Thu, 5 Nov 2009 21:26:23 +0000 Subject: Make dvdnav also print info about audio streams with unknown language, just like dvd:// git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29830 b3059339-0415-0410-9bf9-f77b7e298cf2 --- stream/stream_dvdnav.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'stream/stream_dvdnav.c') diff --git a/stream/stream_dvdnav.c b/stream/stream_dvdnav.c index 9013ccc023..96b6ef9784 100644 --- a/stream/stream_dvdnav.c +++ b/stream/stream_dvdnav.c @@ -538,9 +538,9 @@ static void show_audio_subs_languages(dvdnav_t *nav) if(format == 0xFFFF || format > 6) format = 1; //unknown id = i + base[format]; - if (lang != 0xFFFF) { mp_msg(MSGT_OPEN,MSGL_STATUS,MSGTR_DVDaudioStreamInfo, i, dvd_audio_stream_types[format], dvd_audio_stream_channels[channels], tmp, id); + if (lang != 0xFFFF) { if(lang && tmp[0]) mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_AID_%d_LANG=%s\n", id, tmp); } -- cgit v1.2.3 From c76ea256def0de246c8e7127cf0fe48872f3278d Mon Sep 17 00:00:00 2001 From: reimar Date: Thu, 5 Nov 2009 21:27:25 +0000 Subject: Cosmetics: indentation, merge two consecutive ifs. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29831 b3059339-0415-0410-9bf9-f77b7e298cf2 --- stream/stream_dvdnav.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'stream/stream_dvdnav.c') diff --git a/stream/stream_dvdnav.c b/stream/stream_dvdnav.c index 96b6ef9784..09776846a4 100644 --- a/stream/stream_dvdnav.c +++ b/stream/stream_dvdnav.c @@ -538,12 +538,10 @@ static void show_audio_subs_languages(dvdnav_t *nav) if(format == 0xFFFF || format > 6) format = 1; //unknown id = i + base[format]; - mp_msg(MSGT_OPEN,MSGL_STATUS,MSGTR_DVDaudioStreamInfo, i, - dvd_audio_stream_types[format], dvd_audio_stream_channels[channels], tmp, id); - if (lang != 0xFFFF) { - if(lang && tmp[0]) + mp_msg(MSGT_OPEN,MSGL_STATUS,MSGTR_DVDaudioStreamInfo, i, + dvd_audio_stream_types[format], dvd_audio_stream_channels[channels], tmp, id); + if (lang != 0xFFFF && lang && tmp[0]) mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_AID_%d_LANG=%s\n", id, tmp); - } } for(i=0; i<32; i++) @@ -558,7 +556,7 @@ static void show_audio_subs_languages(dvdnav_t *nav) 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, i, tmp); } } -- cgit v1.2.3 From ef479d9d01905143b8309557d6b77d4155f6a378 Mon Sep 17 00:00:00 2001 From: reimar Date: Thu, 5 Nov 2009 21:29:14 +0000 Subject: dvdnav: print ID_SID_..._LANG, just like dvd:// git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29832 b3059339-0415-0410-9bf9-f77b7e298cf2 --- stream/stream_dvdnav.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'stream/stream_dvdnav.c') diff --git a/stream/stream_dvdnav.c b/stream/stream_dvdnav.c index 09776846a4..c0c3e7e1db 100644 --- a/stream/stream_dvdnav.c +++ b/stream/stream_dvdnav.c @@ -557,6 +557,8 @@ static void show_audio_subs_languages(dvdnav_t *nav) tmp[2] = 0; } mp_msg(MSGT_OPEN,MSGL_STATUS,MSGTR_DVDsubtitleLanguage, i, tmp); + if (lang != 0xFFFF && lang && tmp[0]) + mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_SID_%d_LANG=%s\n", i, tmp); } } -- cgit v1.2.3 From 2dfd5e5f535292c491bc967a8a8e4d109d9c5965 Mon Sep 17 00:00:00 2001 From: reimar Date: Mon, 9 Nov 2009 10:27:48 +0000 Subject: Fixup the dvdnav <-> sid mapping, dvdnav_spu_stream_to_lang and dvdnav_get_spu_logical_stream both take the same numbering (i.e. not the ids used in the MPEG-TS). git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29858 b3059339-0415-0410-9bf9-f77b7e298cf2 --- stream/stream_dvdnav.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'stream/stream_dvdnav.c') diff --git a/stream/stream_dvdnav.c b/stream/stream_dvdnav.c index c0c3e7e1db..4c6a09ea4a 100644 --- a/stream/stream_dvdnav.c +++ b/stream/stream_dvdnav.c @@ -549,16 +549,16 @@ static void show_audio_subs_languages(dvdnav_t *nav) char tmp[] = "unknown"; lg = dvdnav_get_spu_logical_stream(nav, i); if(lg == 0xff) continue; - lang = dvdnav_spu_stream_to_lang(nav, lg); + lang = dvdnav_spu_stream_to_lang(nav, i); if(lang != 0xFFFF) { tmp[0] = lang >> 8; 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); } } @@ -797,9 +797,9 @@ int mp_dvdnav_sid_from_lang(stream_t *stream, unsigned char *language) { for(k=0; k<32; k++) { lg = dvdnav_get_spu_logical_stream(priv->dvdnav, k); if(lg == 0xff) continue; - lang = dvdnav_spu_stream_to_lang(priv->dvdnav, lg); + lang = dvdnav_spu_stream_to_lang(priv->dvdnav, k); if(lang != 0xFFFF && lang == lcode) { - return k; + return lg; } } language += 2; @@ -816,12 +816,16 @@ int mp_dvdnav_sid_from_lang(stream_t *stream, unsigned char *language) { * \return 0 on error, 1 if successful */ int mp_dvdnav_lang_from_sid(stream_t *stream, int sid, unsigned char *buf) { - uint8_t lg; + uint8_t lg, k; 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); + for (k=0; k<32; k++) + if (dvdnav_get_spu_logical_stream(priv->dvdnav, k) == sid) + break; + if (k == 32) + return 0; + lang = dvdnav_spu_stream_to_lang(priv->dvdnav, k); if(lang == 0xffff) return 0; buf[0] = lang >> 8; buf[1] = lang & 0xFF; @@ -842,7 +846,7 @@ int mp_dvdnav_number_of_subs(stream_t *stream) { for(k=0; k<32; k++) { lg = dvdnav_get_spu_logical_stream(priv->dvdnav, k); if(lg == 0xff) continue; - n++; + if(lg >= n) n = lg + 1; } return n; } -- cgit v1.2.3 From a144a22453e94ef5d5d01eb8491836fcd4c8ee6e Mon Sep 17 00:00:00 2001 From: reimar Date: Mon, 9 Nov 2009 10:29:15 +0000 Subject: Remove unused mp_dvdnav_aid_from_audio_num function git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29859 b3059339-0415-0410-9bf9-f77b7e298cf2 --- stream/stream_dvdnav.c | 21 --------------------- 1 file changed, 21 deletions(-) (limited to 'stream/stream_dvdnav.c') diff --git a/stream/stream_dvdnav.c b/stream/stream_dvdnav.c index 4c6a09ea4a..af57c185cd 100644 --- a/stream/stream_dvdnav.c +++ b/stream/stream_dvdnav.c @@ -708,27 +708,6 @@ static int mp_dvdnav_get_aid_from_format (stream_t *stream, int index, uint8_t l return -1; } -/** - * \brief mp_dvdnav_aid_from_audio_num() returns the audio id corresponding to the logical number - * \param stream: - stream pointer - * \param audio_num: - logical number - * \return -1 on error, current subtitle id if successful - */ -int mp_dvdnav_aid_from_audio_num(stream_t *stream, int audio_num) { - dvdnav_priv_t * priv = stream->priv; - int k; - uint8_t lg; - - for(k=0; k<32; k++) { - lg = dvdnav_get_audio_logical_stream(priv->dvdnav, k); - if (lg == 0xff) continue; - if (lg != audio_num) continue; - - return mp_dvdnav_get_aid_from_format (stream, k, lg); - } - return -1; -} - /** * \brief mp_dvdnav_aid_from_lang() returns the audio id corresponding to the language code 'lang' * \param stream: - stream pointer -- cgit v1.2.3 From 6e8f1e844f4f446369cc4ebc1abf362c37b3ebf2 Mon Sep 17 00:00:00 2001 From: reimar Date: Tue, 10 Nov 2009 23:03:52 +0000 Subject: Remove an unused variable. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29886 b3059339-0415-0410-9bf9-f77b7e298cf2 --- stream/stream_dvdnav.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'stream/stream_dvdnav.c') diff --git a/stream/stream_dvdnav.c b/stream/stream_dvdnav.c index af57c185cd..274360c6ab 100644 --- a/stream/stream_dvdnav.c +++ b/stream/stream_dvdnav.c @@ -795,7 +795,7 @@ int mp_dvdnav_sid_from_lang(stream_t *stream, unsigned char *language) { * \return 0 on error, 1 if successful */ int mp_dvdnav_lang_from_sid(stream_t *stream, int sid, unsigned char *buf) { - uint8_t lg, k; + uint8_t k; uint16_t lang; dvdnav_priv_t *priv = stream->priv; if(sid < 0) return 0; -- cgit v1.2.3 From 8f164e07a00a82b2a7cde6b617c896e35e4ee9e1 Mon Sep 17 00:00:00 2001 From: reimar Date: Tue, 10 Nov 2009 23:10:57 +0000 Subject: Share dvd_device extern declaration between dvd and dvdnav. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29887 b3059339-0415-0410-9bf9-f77b7e298cf2 --- stream/stream_dvdnav.c | 1 - 1 file changed, 1 deletion(-) (limited to 'stream/stream_dvdnav.c') diff --git a/stream/stream_dvdnav.c b/stream/stream_dvdnav.c index 274360c6ab..3f07255fa4 100644 --- a/stream/stream_dvdnav.c +++ b/stream/stream_dvdnav.c @@ -47,7 +47,6 @@ typedef struct { unsigned int state; } dvdnav_priv_t; -extern char *dvd_device; extern char *audio_lang, *dvdsub_lang; extern char *dvd_audio_stream_channels[6], *dvd_audio_stream_types[8]; -- cgit v1.2.3 From 80217b424035375d5887f1da7cacd2b1c242f63c Mon Sep 17 00:00:00 2001 From: reimar Date: Tue, 10 Nov 2009 23:12:01 +0000 Subject: Remove unused extern declarations. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29888 b3059339-0415-0410-9bf9-f77b7e298cf2 --- stream/stream_dvdnav.c | 1 - 1 file changed, 1 deletion(-) (limited to 'stream/stream_dvdnav.c') diff --git a/stream/stream_dvdnav.c b/stream/stream_dvdnav.c index 3f07255fa4..dbe6bdb6a9 100644 --- a/stream/stream_dvdnav.c +++ b/stream/stream_dvdnav.c @@ -47,7 +47,6 @@ typedef struct { unsigned int state; } dvdnav_priv_t; -extern char *audio_lang, *dvdsub_lang; extern char *dvd_audio_stream_channels[6], *dvd_audio_stream_types[8]; static struct stream_priv_s { -- cgit v1.2.3 From 36ec82183681b5c751026e2c2d121cb4bd5bc87b Mon Sep 17 00:00:00 2001 From: reimar Date: Tue, 10 Nov 2009 23:15:48 +0000 Subject: Move arrays used by both dvd and dvdnav to dvd_common. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29889 b3059339-0415-0410-9bf9-f77b7e298cf2 --- stream/stream_dvdnav.c | 2 -- 1 file changed, 2 deletions(-) (limited to 'stream/stream_dvdnav.c') diff --git a/stream/stream_dvdnav.c b/stream/stream_dvdnav.c index dbe6bdb6a9..1a93611182 100644 --- a/stream/stream_dvdnav.c +++ b/stream/stream_dvdnav.c @@ -47,8 +47,6 @@ typedef struct { unsigned int state; } dvdnav_priv_t; -extern char *dvd_audio_stream_channels[6], *dvd_audio_stream_types[8]; - static struct stream_priv_s { int track; char* device; -- cgit v1.2.3 From 0d40667c8cf05c8957ad2e1bfec41ca41c88888a Mon Sep 17 00:00:00 2001 From: reimar Date: Tue, 10 Nov 2009 23:20:05 +0000 Subject: Move dvd_speed and dvd_set_speed to dvd_common and implement -dvd-speed support for dvdnav. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29890 b3059339-0415-0410-9bf9-f77b7e298cf2 --- stream/stream_dvdnav.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'stream/stream_dvdnav.c') diff --git a/stream/stream_dvdnav.c b/stream/stream_dvdnav.c index 1a93611182..eafc922f80 100644 --- a/stream/stream_dvdnav.c +++ b/stream/stream_dvdnav.c @@ -87,6 +87,8 @@ static dvdnav_priv_t * new_dvdnav_stream(char * filename) { return NULL; } + dvd_set_speed(priv->filename, dvd_speed); + if(dvdnav_open(&(priv->dvdnav),priv->filename)!=DVDNAV_STATUS_OK) { free(priv->filename); @@ -291,6 +293,7 @@ static void stream_dvdnav_close(stream_t *s) { dvdnav_priv_t *priv = s->priv; dvdnav_close(priv->dvdnav); priv->dvdnav = NULL; + dvd_set_speed(priv->filename, -1); free(priv); } -- cgit v1.2.3 From 2bf260398ba7b6c39fbb8644be09888c408e4176 Mon Sep 17 00:00:00 2001 From: reimar Date: Wed, 11 Nov 2009 09:09:08 +0000 Subject: Set the EOF flag when dvdnav reached the end of the requested title. Otherwise it would just hang, either at the menu or trying to play the last played frame as a still frame. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29893 b3059339-0415-0410-9bf9-f77b7e298cf2 --- stream/stream_dvdnav.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'stream/stream_dvdnav.c') diff --git a/stream/stream_dvdnav.c b/stream/stream_dvdnav.c index eafc922f80..9962c0606f 100644 --- a/stream/stream_dvdnav.c +++ b/stream/stream_dvdnav.c @@ -349,8 +349,10 @@ static int fill_buffer(stream_t *s, char *but, int len) if(dvdnav_current_title_info(priv->dvdnav, &tit, &part) == DVDNAV_STATUS_OK) { mp_msg(MSGT_CPLAYER,MSGL_V, "\r\nDVDNAV, NEW TITLE %d\r\n", tit); dvdnav_get_highlight (priv, 0); - if(priv->title > 0 && tit != priv->title) + if(priv->title > 0 && tit != priv->title) { + priv->state |= NAV_FLAG_EOF; return 0; + } } break; } @@ -364,8 +366,10 @@ static int fill_buffer(stream_t *s, char *but, int len) priv->state |= NAV_FLAG_WAIT_READ; if(priv->title > 0 && dvd_last_chapter > 0) { int tit=0, part=0; - if(dvdnav_current_title_info(priv->dvdnav, &tit, &part) == DVDNAV_STATUS_OK && part > dvd_last_chapter) + if(dvdnav_current_title_info(priv->dvdnav, &tit, &part) == DVDNAV_STATUS_OK && part > dvd_last_chapter) { + priv->state |= NAV_FLAG_EOF; return 0; + } } dvdnav_get_highlight (priv, 1); } -- cgit v1.2.3