comparison libmpdemux/stream_dvd.c @ 16770:a580febbb306

ugly hack to make it work again with external libdvdread
author reimar
date Sat, 15 Oct 2005 11:47:33 +0000
parents e1d6fbd607e0
children 8d4fb5469efb
comparison
equal deleted inserted replaced
16769:fbc6a8f05730 16770:a580febbb306
623 { 623 {
624 d->nr_of_channels=0; 624 d->nr_of_channels=0;
625 if(vts_file->vts_pgcit) { 625 if(vts_file->vts_pgcit) {
626 int i; 626 int i;
627 for(i=0;i<8;i++) 627 for(i=0;i<8;i++)
628 #ifdef USE_MPDVDKIT
628 if(vts_file->vts_pgcit->pgci_srp[ttn].pgc->audio_control[i].present) { 629 if(vts_file->vts_pgcit->pgci_srp[ttn].pgc->audio_control[i].present) {
630 #else
631 if(vts_file->vts_pgcit->pgci_srp[ttn].pgc->audio_control[i] & 0x8000) {
632 #endif
629 audio_attr_t * audio = &vts_file->vtsi_mat->vts_audio_attr[i]; 633 audio_attr_t * audio = &vts_file->vtsi_mat->vts_audio_attr[i];
630 int language = 0; 634 int language = 0;
631 char tmp[] = "unknown"; 635 char tmp[] = "unknown";
632 636
633 if(audio->lang_type == 1) { 637 if(audio->lang_type == 1) {
636 tmp[1]=language&0xff; 640 tmp[1]=language&0xff;
637 tmp[2]=0; 641 tmp[2]=0;
638 } 642 }
639 643
640 d->audio_streams[d->nr_of_channels].language=language; 644 d->audio_streams[d->nr_of_channels].language=language;
645 #ifdef USE_MPDVDKIT
641 d->audio_streams[d->nr_of_channels].id=vts_file->vts_pgcit->pgci_srp[ttn].pgc->audio_control[i].s_audio; 646 d->audio_streams[d->nr_of_channels].id=vts_file->vts_pgcit->pgci_srp[ttn].pgc->audio_control[i].s_audio;
647 #else
648 d->audio_streams[d->nr_of_channels].id=vts_file->vts_pgcit->pgci_srp[ttn].pgc->audio_control[i] >> 8 & 7;
649 #endif
642 switch(audio->audio_format) { 650 switch(audio->audio_format) {
643 case 0: // ac3 651 case 0: // ac3
644 d->audio_streams[d->nr_of_channels].id+=FIRST_AC3_AID; 652 d->audio_streams[d->nr_of_channels].id+=FIRST_AC3_AID;
645 break; 653 break;
646 case 6: // dts 654 case 6: // dts
685 { 693 {
686 int i; 694 int i;
687 695
688 d->nr_of_subtitles=0; 696 d->nr_of_subtitles=0;
689 for(i=0;i<32;i++) 697 for(i=0;i<32;i++)
698 #ifdef USE_MPDVDKIT
690 if(vts_file->vts_pgcit->pgci_srp[ttn].pgc->subp_control[i].present) { 699 if(vts_file->vts_pgcit->pgci_srp[ttn].pgc->subp_control[i].present) {
700 #else
701 if(vts_file->vts_pgcit->pgci_srp[ttn].pgc->subp_control[i] & 0x80000000) {
702 #endif
691 subp_attr_t * subtitle = &vts_file->vtsi_mat->vts_subp_attr[i]; 703 subp_attr_t * subtitle = &vts_file->vtsi_mat->vts_subp_attr[i];
692 video_attr_t *video = &vts_file->vtsi_mat->vts_video_attr; 704 video_attr_t *video = &vts_file->vtsi_mat->vts_video_attr;
693 int language = 0; 705 int language = 0;
694 char tmp[] = "unknown"; 706 char tmp[] = "unknown";
695 707
701 } 713 }
702 714
703 d->subtitles[ d->nr_of_subtitles ].language=language; 715 d->subtitles[ d->nr_of_subtitles ].language=language;
704 d->subtitles[ d->nr_of_subtitles ].id=d->nr_of_subtitles; 716 d->subtitles[ d->nr_of_subtitles ].id=d->nr_of_subtitles;
705 if(video->display_aspect_ratio == 0) /* 4:3 */ 717 if(video->display_aspect_ratio == 0) /* 4:3 */
718 #ifdef USE_MPDVDKIT
706 d->subtitles[d->nr_of_subtitles].id = vts_file->vts_pgcit->pgci_srp[ttn].pgc->subp_control[i].s_4p3; 719 d->subtitles[d->nr_of_subtitles].id = vts_file->vts_pgcit->pgci_srp[ttn].pgc->subp_control[i].s_4p3;
720 #else
721 d->subtitles[d->nr_of_subtitles].id = vts_file->vts_pgcit->pgci_srp[ttn].pgc->subp_control[i] >> 24 & 31;
722 #endif
707 else if(video->display_aspect_ratio == 3) /* 16:9 */ 723 else if(video->display_aspect_ratio == 3) /* 16:9 */
724 #ifdef USE_MPDVDKIT
708 d->subtitles[d->nr_of_subtitles].id = vts_file->vts_pgcit->pgci_srp[ttn].pgc->subp_control[i].s_lbox; 725 d->subtitles[d->nr_of_subtitles].id = vts_file->vts_pgcit->pgci_srp[ttn].pgc->subp_control[i].s_lbox;
726 #else
727 d->subtitles[d->nr_of_subtitles].id = vts_file->vts_pgcit->pgci_srp[ttn].pgc->subp_control[i] >> 8 & 31;
728 #endif
709 729
710 mp_msg(MSGT_OPEN,MSGL_V,"[open] subtitle ( sid ): %d language: %s\n", d->nr_of_subtitles, tmp); 730 mp_msg(MSGT_OPEN,MSGL_V,"[open] subtitle ( sid ): %d language: %s\n", d->nr_of_subtitles, tmp);
711 if(identify) { 731 if(identify) {
712 mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_SUBTITLE_ID=%d\n", d->subtitles[d->nr_of_subtitles].id); 732 mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_SUBTITLE_ID=%d\n", d->subtitles[d->nr_of_subtitles].id);
713 if(language && tmp[0]) 733 if(language && tmp[0])