Mercurial > mplayer.hg
comparison stream/stream_dvdnav.c @ 20405:a11a208925b9
don't play any other title other than N when N is specified (with dvdnav://N)
author | nicodvb |
---|---|
date | Mon, 23 Oct 2006 21:04:31 +0000 |
parents | b0a938df89ed |
children | 831cd8cbf58a |
comparison
equal
deleted
inserted
replaced
20404:07238c655349 | 20405:a11a208925b9 |
---|---|
211 } | 211 } |
212 switch (event) { | 212 switch (event) { |
213 case DVDNAV_STOP: return len; | 213 case DVDNAV_STOP: return len; |
214 case DVDNAV_BLOCK_OK: return len; | 214 case DVDNAV_BLOCK_OK: return len; |
215 case DVDNAV_VTS_CHANGE: { | 215 case DVDNAV_VTS_CHANGE: { |
216 int tit = 0, part = 0; | |
217 dvdnav_vts_change_event_t *evt = (dvdnav_vts_change_event_t*)but; | |
216 s->end_pos = 0; | 218 s->end_pos = 0; |
217 update_title_len(s); | 219 update_title_len(s); |
220 if(dvdnav_current_title_info(dvdnav_priv->dvdnav, &tit, &part) == DVDNAV_STATUS_OK) { | |
221 mp_msg(MSGT_CPLAYER,MSGL_V, "\r\nDVDNAV, NEW VTS event: VTS %d, title %d\r\n", evt->new_vtsN, tit); | |
222 if(dvdnav_priv->title > 0 && tit != dvdnav_priv->title) | |
223 return 0; | |
224 } | |
218 break; | 225 break; |
219 } | 226 } |
220 } | 227 } |
221 } | 228 } |
222 mp_msg(MSGT_STREAM,MSGL_DBG2,"DVDNAV fill_buffer len: %d\n",len); | 229 mp_msg(MSGT_STREAM,MSGL_DBG2,"DVDNAV fill_buffer len: %d\n",len); |
285 mp_msg(MSGT_OPEN,MSGL_ERR,MSGTR_CantOpenDVD,filename); | 292 mp_msg(MSGT_OPEN,MSGL_ERR,MSGTR_CantOpenDVD,filename); |
286 return STREAM_UNSUPORTED; | 293 return STREAM_UNSUPORTED; |
287 } | 294 } |
288 | 295 |
289 if(p->track > 0) { | 296 if(p->track > 0) { |
297 dvdnav_priv->title = p->track; | |
290 if(dvdnav_title_play(dvdnav_priv->dvdnav, p->track) != DVDNAV_STATUS_OK) { | 298 if(dvdnav_title_play(dvdnav_priv->dvdnav, p->track) != DVDNAV_STATUS_OK) { |
291 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)); | 299 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)); |
292 return STREAM_UNSUPORTED; | 300 return STREAM_UNSUPORTED; |
293 } | 301 } |
294 } else if(p->track == -1) | 302 } else if(p->track == -1) |