Mercurial > mplayer.hg
comparison stream/stream_dvdnav.c @ 25176:6d9212e61af8
cosmetics: moved identification code to a separate function
author | nicodvb |
---|---|
date | Thu, 29 Nov 2007 23:01:46 +0000 |
parents | 644be6d209a2 |
children | a43d99a80f4a |
comparison
equal
deleted
inserted
replaced
25175:ca7da6235b2c | 25176:6d9212e61af8 |
---|---|
362 free(parts); | 362 free(parts); |
363 mp_msg(MSGT_IDENTIFY, MSGL_INFO, "\n"); | 363 mp_msg(MSGT_IDENTIFY, MSGL_INFO, "\n"); |
364 } | 364 } |
365 } | 365 } |
366 | 366 |
367 static void identify(dvdnav_priv_t *priv, struct stream_priv_s *p) | |
368 { | |
369 uint32_t titles=0, i; | |
370 if(p->track <= 0) { | |
371 dvdnav_get_number_of_titles(priv->dvdnav, &titles); | |
372 for(i=0; i<titles; i++) | |
373 identify_chapters(priv->dvdnav, i); | |
374 } | |
375 else | |
376 identify_chapters(priv->dvdnav, p->track); | |
377 } | |
378 | |
367 static int open_s(stream_t *stream,int mode, void* opts, int* file_format) { | 379 static int open_s(stream_t *stream,int mode, void* opts, int* file_format) { |
368 struct stream_priv_s* p = (struct stream_priv_s*)opts; | 380 struct stream_priv_s* p = (struct stream_priv_s*)opts; |
369 char *filename; | 381 char *filename; |
370 dvdnav_priv_t *priv; | 382 dvdnav_priv_t *priv; |
371 | 383 |
376 mp_msg(MSGT_OPEN,MSGL_ERR,MSGTR_CantOpenDVD,filename, strerror(errno)); | 388 mp_msg(MSGT_OPEN,MSGL_ERR,MSGTR_CantOpenDVD,filename, strerror(errno)); |
377 return STREAM_UNSUPPORTED; | 389 return STREAM_UNSUPPORTED; |
378 } | 390 } |
379 | 391 |
380 if(p->track > 0) { | 392 if(p->track > 0) { |
381 if(mp_msg_test(MSGT_IDENTIFY, MSGL_INFO)) | |
382 identify_chapters(priv->dvdnav, p->track); | |
383 if(dvd_chapter > 0 && dvd_last_chapter > 0 && dvd_chapter > dvd_last_chapter) { | 393 if(dvd_chapter > 0 && dvd_last_chapter > 0 && dvd_chapter > dvd_last_chapter) { |
384 mp_msg(MSGT_OPEN,MSGL_FATAL,"dvdnav_stream, invalid chapter range: %d > %d\n", dvd_chapter, dvd_last_chapter); | 394 mp_msg(MSGT_OPEN,MSGL_FATAL,"dvdnav_stream, invalid chapter range: %d > %d\n", dvd_chapter, dvd_last_chapter); |
385 return STREAM_UNSUPPORTED; | 395 return STREAM_UNSUPPORTED; |
386 } | 396 } |
387 priv->title = p->track; | 397 priv->title = p->track; |
395 dvdnav_menu_call(priv->dvdnav, DVD_MENU_Root); | 405 dvdnav_menu_call(priv->dvdnav, DVD_MENU_Root); |
396 else { | 406 else { |
397 mp_msg(MSGT_OPEN,MSGL_INFO,"dvdnav_stream, you didn't specify a track number (as in dvdnav://1), playing whole disc\n"); | 407 mp_msg(MSGT_OPEN,MSGL_INFO,"dvdnav_stream, you didn't specify a track number (as in dvdnav://1), playing whole disc\n"); |
398 dvdnav_menu_call(priv->dvdnav, DVD_MENU_Title); | 408 dvdnav_menu_call(priv->dvdnav, DVD_MENU_Title); |
399 } | 409 } |
400 if(p->track <= 0 && mp_msg_test(MSGT_IDENTIFY, MSGL_INFO)) { | 410 if(mp_msg_test(MSGT_IDENTIFY, MSGL_INFO)) |
401 uint32_t titles=0, i; | 411 identify(priv, p); |
402 dvdnav_get_number_of_titles(priv->dvdnav, &titles); | |
403 for(i=0; i<titles; i++) | |
404 identify_chapters(priv->dvdnav, i); | |
405 } | |
406 if(dvd_angle > 1) | 412 if(dvd_angle > 1) |
407 dvdnav_angle_change(priv->dvdnav, dvd_angle); | 413 dvdnav_angle_change(priv->dvdnav, dvd_angle); |
408 | 414 |
409 stream->sector_size = 2048; | 415 stream->sector_size = 2048; |
410 stream->flags = STREAM_READ | STREAM_SEEK; | 416 stream->flags = STREAM_READ | STREAM_SEEK; |