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;