aboutsummaryrefslogtreecommitdiffhomepage
path: root/stream
diff options
context:
space:
mode:
authorGravatar nicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-10-23 21:04:31 +0000
committerGravatar nicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-10-23 21:04:31 +0000
commit260908034036b6ddbb77cf9ac7386476e3a3f031 (patch)
treefd397ef6a3b601b5c5b56aab0e97f3b41e1de4e5 /stream
parent8ac3fbc190317346d56d9ff11174ae8980ac8ccc (diff)
don't play any other title other than N when N is specified (with dvdnav://N)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20421 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'stream')
-rw-r--r--stream/stream_dvdnav.c8
-rw-r--r--stream/stream_dvdnav.h1
2 files changed, 9 insertions, 0 deletions
diff --git a/stream/stream_dvdnav.c b/stream/stream_dvdnav.c
index 6f4c70ab49..c8e6c2fa47 100644
--- a/stream/stream_dvdnav.c
+++ b/stream/stream_dvdnav.c
@@ -213,8 +213,15 @@ static int fill_buffer(stream_t *s, char *but, int len)
case DVDNAV_STOP: return len;
case DVDNAV_BLOCK_OK: return len;
case DVDNAV_VTS_CHANGE: {
+ int tit = 0, part = 0;
+ dvdnav_vts_change_event_t *evt = (dvdnav_vts_change_event_t*)but;
s->end_pos = 0;
update_title_len(s);
+ if(dvdnav_current_title_info(dvdnav_priv->dvdnav, &tit, &part) == DVDNAV_STATUS_OK) {
+ mp_msg(MSGT_CPLAYER,MSGL_V, "\r\nDVDNAV, NEW VTS event: VTS %d, title %d\r\n", evt->new_vtsN, tit);
+ if(dvdnav_priv->title > 0 && tit != dvdnav_priv->title)
+ return 0;
+ }
break;
}
}
@@ -287,6 +294,7 @@ static int open_s(stream_t *stream,int mode, void* opts, int* file_format) {
}
if(p->track > 0) {
+ dvdnav_priv->title = p->track;
if(dvdnav_title_play(dvdnav_priv->dvdnav, p->track) != DVDNAV_STATUS_OK) {
mp_msg(MSGT_OPEN,MSGL_FATAL,"dvdnav_stream, couldn't select title %d, error '%s'\n", p->track, dvdnav_err_to_string(dvdnav_priv->dvdnav));
return STREAM_UNSUPORTED;
diff --git a/stream/stream_dvdnav.h b/stream/stream_dvdnav.h
index 71bbc63931..cd097936d2 100644
--- a/stream/stream_dvdnav.h
+++ b/stream/stream_dvdnav.h
@@ -20,6 +20,7 @@ typedef struct {
int prelen; /* length of prefill buffer */
unsigned int duration; /* in milliseconds */
int mousex, mousey;
+ int title;
} dvdnav_priv_t;
extern int dvd_nav_still;