Mercurial > mplayer.hg
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]) |