comparison libmpdemux/demuxer.c @ 6951:0504c8beccba

messages moved again
author jaf
date Thu, 08 Aug 2002 13:55:15 +0000
parents 9d0090eae586
children 3639db1fb8d3
comparison
equal deleted inserted replaced
6950:d0adb23dec87 6951:0504c8beccba
90 return NULL; 90 return NULL;
91 } 91 }
92 if(demuxer->a_streams[id]){ 92 if(demuxer->a_streams[id]){
93 mp_msg(MSGT_DEMUXER,MSGL_WARN,MSGTR_AudioStreamRedefined,id); 93 mp_msg(MSGT_DEMUXER,MSGL_WARN,MSGTR_AudioStreamRedefined,id);
94 } else { 94 } else {
95 mp_msg(MSGT_DEMUXER,MSGL_V,"==> Found audio stream: %d\n",id); 95 mp_msg(MSGT_DEMUXER,MSGL_V,MSGTR_FoundAudioStream,id);
96 demuxer->a_streams[id]=malloc(sizeof(sh_audio_t)); 96 demuxer->a_streams[id]=malloc(sizeof(sh_audio_t));
97 memset(demuxer->a_streams[id],0,sizeof(sh_audio_t)); 97 memset(demuxer->a_streams[id],0,sizeof(sh_audio_t));
98 } 98 }
99 return demuxer->a_streams[id]; 99 return demuxer->a_streams[id];
100 } 100 }
124 return NULL; 124 return NULL;
125 } 125 }
126 if(demuxer->v_streams[id]){ 126 if(demuxer->v_streams[id]){
127 mp_msg(MSGT_DEMUXER,MSGL_WARN,MSGTR_VideoStreamRedefined,id); 127 mp_msg(MSGT_DEMUXER,MSGL_WARN,MSGTR_VideoStreamRedefined,id);
128 } else { 128 } else {
129 mp_msg(MSGT_DEMUXER,MSGL_V,"==> Found video stream: %d\n",id); 129 mp_msg(MSGT_DEMUXER,MSGL_V,MSGTR_FoundVideoStream,id);
130 demuxer->v_streams[id]=malloc(sizeof(sh_video_t)); 130 demuxer->v_streams[id]=malloc(sizeof(sh_video_t));
131 memset(demuxer->v_streams[id],0,sizeof(sh_video_t)); 131 memset(demuxer->v_streams[id],0,sizeof(sh_video_t));
132 } 132 }
133 return demuxer->v_streams[id]; 133 return demuxer->v_streams[id];
134 } 134 }
569 #ifdef USE_TV 569 #ifdef USE_TV
570 //=============== Try to open as TV-input: ================= 570 //=============== Try to open as TV-input: =================
571 if((tv_param_on == 1) && 571 if((tv_param_on == 1) &&
572 (file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_TV)){ 572 (file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_TV)){
573 demuxer=new_demuxer(stream,DEMUXER_TYPE_TV,audio_id,video_id,dvdsub_id); 573 demuxer=new_demuxer(stream,DEMUXER_TYPE_TV,audio_id,video_id,dvdsub_id);
574 mp_msg(MSGT_DEMUXER,MSGL_INFO,"Detected TV! ;-)\n"); 574 mp_msg(MSGT_DEMUXER,MSGL_INFO,MSGTR_DetectedTV);
575 file_format=DEMUXER_TYPE_TV; 575 file_format=DEMUXER_TYPE_TV;
576 } 576 }
577 #endif 577 #endif
578 578
579 //=============== Try to open as multi file: ================= 579 //=============== Try to open as multi file: =================
605 } 605 }
606 //=============== Try to open as Y4M file: ================= 606 //=============== Try to open as Y4M file: =================
607 if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_Y4M){ 607 if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_Y4M){
608 demuxer=new_demuxer(stream,DEMUXER_TYPE_Y4M,audio_id,video_id,dvdsub_id); 608 demuxer=new_demuxer(stream,DEMUXER_TYPE_Y4M,audio_id,video_id,dvdsub_id);
609 if(y4m_check_file(demuxer)){ 609 if(y4m_check_file(demuxer)){
610 mp_msg(MSGT_DEMUXER,MSGL_INFO,"Detected YUV4MPEG2 file format!\n"); 610 mp_msg(MSGT_DEMUXER,MSGL_INFO,MSGTR_DetectedYUV4MPEG2file);
611 file_format=DEMUXER_TYPE_Y4M; 611 file_format=DEMUXER_TYPE_Y4M;
612 } else { 612 } else {
613 free_demuxer(demuxer); 613 free_demuxer(demuxer);
614 demuxer = NULL; 614 demuxer = NULL;
615 } 615 }
627 } 627 }
628 //=============== Try to open as NUV file: ================= 628 //=============== Try to open as NUV file: =================
629 if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_NUV){ 629 if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_NUV){
630 demuxer=new_demuxer(stream,DEMUXER_TYPE_NUV,audio_id,video_id,dvdsub_id); 630 demuxer=new_demuxer(stream,DEMUXER_TYPE_NUV,audio_id,video_id,dvdsub_id);
631 if(nuv_check_file(demuxer)){ 631 if(nuv_check_file(demuxer)){
632 mp_msg(MSGT_DEMUXER,MSGL_INFO,"Detected NuppelVideo file format!\n"); 632 mp_msg(MSGT_DEMUXER,MSGL_INFO,MSGTR_DetectedNuppelVideofile);
633 file_format=DEMUXER_TYPE_NUV; 633 file_format=DEMUXER_TYPE_NUV;
634 } else { 634 } else {
635 free_demuxer(demuxer); 635 free_demuxer(demuxer);
636 demuxer = NULL; 636 demuxer = NULL;
637 } 637 }
649 } 649 }
650 //=============== Try to open as VIVO file: ================= 650 //=============== Try to open as VIVO file: =================
651 if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_VIVO){ 651 if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_VIVO){
652 demuxer=new_demuxer(stream,DEMUXER_TYPE_VIVO,audio_id,video_id,dvdsub_id); 652 demuxer=new_demuxer(stream,DEMUXER_TYPE_VIVO,audio_id,video_id,dvdsub_id);
653 if(vivo_check_file(demuxer)){ 653 if(vivo_check_file(demuxer)){
654 mp_msg(MSGT_DEMUXER,MSGL_INFO,"Detected VIVO file format!\n"); 654 mp_msg(MSGT_DEMUXER,MSGL_INFO,MSGTR_DetectedVIVOfile);
655 file_format=DEMUXER_TYPE_VIVO; 655 file_format=DEMUXER_TYPE_VIVO;
656 } else { 656 } else {
657 free_demuxer(demuxer); 657 free_demuxer(demuxer);
658 demuxer = NULL; 658 demuxer = NULL;
659 } 659 }
714 } 714 }
715 //=============== Try to open as BMP file: ================= 715 //=============== Try to open as BMP file: =================
716 if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_BMP){ 716 if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_BMP){
717 demuxer=new_demuxer(stream,DEMUXER_TYPE_BMP,audio_id,video_id,dvdsub_id); 717 demuxer=new_demuxer(stream,DEMUXER_TYPE_BMP,audio_id,video_id,dvdsub_id);
718 if(bmp_check_file(demuxer)){ 718 if(bmp_check_file(demuxer)){
719 mp_msg(MSGT_DEMUXER,MSGL_INFO,"BMP file\n"); 719 mp_msg(MSGT_DEMUXER,MSGL_INFO,MSGTR_DetectedBMPfile);
720 file_format=DEMUXER_TYPE_BMP; 720 file_format=DEMUXER_TYPE_BMP;
721 } else { 721 } else {
722 free_demuxer(demuxer); 722 free_demuxer(demuxer);
723 demuxer = NULL; 723 demuxer = NULL;
724 } 724 }
725 } 725 }
726 //=============== Try to open as Ogg file: ================= 726 //=============== Try to open as Ogg file: =================
727 if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_OGG){ 727 if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_OGG){
728 demuxer=new_demuxer(stream,DEMUXER_TYPE_OGG,audio_id,video_id,dvdsub_id); 728 demuxer=new_demuxer(stream,DEMUXER_TYPE_OGG,audio_id,video_id,dvdsub_id);
729 if(demux_ogg_open(demuxer)){ 729 if(demux_ogg_open(demuxer)){
730 mp_msg(MSGT_DEMUXER,MSGL_INFO,"Detected OGG format\n"); 730 mp_msg(MSGT_DEMUXER,MSGL_INFO,MSGTR_DetectedOGGfile);
731 file_format=DEMUXER_TYPE_OGG; 731 file_format=DEMUXER_TYPE_OGG;
732 } else { 732 } else {
733 free_demuxer(demuxer); 733 free_demuxer(demuxer);
734 demuxer = NULL; 734 demuxer = NULL;
735 } 735 }
781 file_format=DEMUXER_TYPE_MPEG_ES; // <-- hack is here :) 781 file_format=DEMUXER_TYPE_MPEG_ES; // <-- hack is here :)
782 } else { 782 } else {
783 if(demuxer->synced==2) 783 if(demuxer->synced==2)
784 mp_msg(MSGT_DEMUXER,MSGL_ERR,"MPEG: " MSGTR_MissingVideoStreamBug); 784 mp_msg(MSGT_DEMUXER,MSGL_ERR,"MPEG: " MSGTR_MissingVideoStreamBug);
785 else 785 else
786 mp_msg(MSGT_DEMUXER,MSGL_V,"Not MPEG System Stream format... (maybe Transport Stream?)\n"); 786 mp_msg(MSGT_DEMUXER,MSGL_V,MSGTR_NotSystemStream);
787 free_demuxer(demuxer); 787 free_demuxer(demuxer);
788 demuxer = NULL; 788 demuxer = NULL;
789 } 789 }
790 } 790 }
791 break; 791 break;
808 if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_RAWDV) 808 if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_RAWDV)
809 { 809 {
810 demuxer=new_demuxer(stream,DEMUXER_TYPE_RAWDV,audio_id,video_id,dvdsub_id); 810 demuxer=new_demuxer(stream,DEMUXER_TYPE_RAWDV,audio_id,video_id,dvdsub_id);
811 if(check_file_rawdv(demuxer)) 811 if(check_file_rawdv(demuxer))
812 { 812 {
813 mp_msg(MSGT_DEMUXER,MSGL_INFO,"Detected RAWDV file format!\n"); 813 mp_msg(MSGT_DEMUXER,MSGL_INFO,MSGTR_DetectedRAWDVfile);
814 file_format=DEMUXER_TYPE_RAWDV; 814 file_format=DEMUXER_TYPE_RAWDV;
815 } 815 }
816 else 816 else
817 free_demuxer(demuxer); 817 free_demuxer(demuxer);
818 } 818 }
819 #endif 819 #endif
820 //=============== Try to open as audio file: ================= 820 //=============== Try to open as audio file: =================
821 if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_AUDIO){ 821 if(file_format==DEMUXER_TYPE_UNKNOWN || file_format==DEMUXER_TYPE_AUDIO){
822 demuxer=new_demuxer(stream,DEMUXER_TYPE_AUDIO,audio_id,video_id,dvdsub_id); 822 demuxer=new_demuxer(stream,DEMUXER_TYPE_AUDIO,audio_id,video_id,dvdsub_id);
823 if(demux_audio_open(demuxer)){ 823 if(demux_audio_open(demuxer)){
824 mp_msg(MSGT_DEMUXER,MSGL_INFO,"Detected audio file\n"); 824 mp_msg(MSGT_DEMUXER,MSGL_INFO,MSGTR_DetectedAudiofile);
825 file_format=DEMUXER_TYPE_AUDIO; 825 file_format=DEMUXER_TYPE_AUDIO;
826 } else { 826 } else {
827 free_demuxer(demuxer); 827 free_demuxer(demuxer);
828 demuxer = NULL; 828 demuxer = NULL;
829 } 829 }
895 stream_t* s; 895 stream_t* s;
896 demuxer_t *od; 896 demuxer_t *od;
897 s = new_ds_stream(demuxer->audio); 897 s = new_ds_stream(demuxer->audio);
898 od = new_demuxer(s,DEMUXER_TYPE_OGG,-1,-2,-2); 898 od = new_demuxer(s,DEMUXER_TYPE_OGG,-1,-2,-2);
899 if(!demux_ogg_open(od)) { 899 if(!demux_ogg_open(od)) {
900 mp_msg( MSGT_DEMUXER,MSGL_ERR,"Unable to open the ogg demuxer\n"); 900 mp_msg( MSGT_DEMUXER,MSGL_ERR,MSGTR_ErrorOpeningOGGDemuxer);
901 free_stream(s); 901 free_stream(s);
902 demuxer->audio->id = -2; 902 demuxer->audio->id = -2;
903 } else 903 } else
904 demuxer = new_demuxers_demuxer(demuxer,od,demuxer); 904 demuxer = new_demuxers_demuxer(demuxer,od,demuxer);
905 } 905 }
946 sh_video->bih->biBitCount); 946 sh_video->bih->biBitCount);
947 // sh_video->i_bps=10*asf_packetsize; // FIXME! 947 // sh_video->i_bps=10*asf_packetsize; // FIXME!
948 } 948 }
949 } 949 }
950 if(d_audio->id!=-2){ 950 if(d_audio->id!=-2){
951 mp_msg(MSGT_DEMUXER,MSGL_V,"ASF: Searching for audio stream (id:%d)\n",d_audio->id); 951 mp_msg(MSGT_DEMUXER,MSGL_V,MSGTR_ASFSearchingForAudioStream,d_audio->id);
952 if(!ds_fill_buffer(d_audio)){ 952 if(!ds_fill_buffer(d_audio)){
953 mp_msg(MSGT_DEMUXER,MSGL_INFO,"ASF: " MSGTR_MissingAudioStream); 953 mp_msg(MSGT_DEMUXER,MSGL_INFO,"ASF: " MSGTR_MissingAudioStream);
954 sh_audio=NULL; 954 sh_audio=NULL;
955 } else { 955 } else {
956 sh_audio=d_audio->sh;sh_audio->ds=d_audio; 956 sh_audio=d_audio->sh;sh_audio->ds=d_audio;
1017 int afmt = 0,sfmt = 0; 1017 int afmt = 0,sfmt = 0;
1018 1018
1019 if(audio_stream) { 1019 if(audio_stream) {
1020 as = open_stream(audio_stream,0,&afmt); 1020 as = open_stream(audio_stream,0,&afmt);
1021 if(!as) { 1021 if(!as) {
1022 mp_msg(MSGT_DEMUXER,MSGL_ERR,"Can't open audio stream: %s\n",audio_stream); 1022 mp_msg(MSGT_DEMUXER,MSGL_ERR,MSGTR_CannotOpenAudioStream,audio_stream);
1023 return NULL; 1023 return NULL;
1024 } 1024 }
1025 } 1025 }
1026 if(sub_stream) { 1026 if(sub_stream) {
1027 ss = open_stream(sub_stream,0,&sfmt); 1027 ss = open_stream(sub_stream,0,&sfmt);
1028 if(!ss) { 1028 if(!ss) {
1029 mp_msg(MSGT_DEMUXER,MSGL_ERR,"Can't open subtitles stream: %s\n",sub_stream); 1029 mp_msg(MSGT_DEMUXER,MSGL_ERR,MSGTR_CannotOpenSubtitlesStream,sub_stream);
1030 return NULL; 1030 return NULL;
1031 } 1031 }
1032 } 1032 }
1033 1033
1034 vd = demux_open_stream(vs,demuxer_type ? demuxer_type : file_format,audio_stream ? -2 : audio_id,video_id, sub_stream ? -2 : dvdsub_id); 1034 vd = demux_open_stream(vs,demuxer_type ? demuxer_type : file_format,audio_stream ? -2 : audio_id,video_id, sub_stream ? -2 : dvdsub_id);
1035 if(!vd) 1035 if(!vd)
1036 return NULL; 1036 return NULL;
1037 if(as) { 1037 if(as) {
1038 ad = demux_open_stream(as,audio_demuxer_type ? audio_demuxer_type : afmt,audio_id,-2,-2); 1038 ad = demux_open_stream(as,audio_demuxer_type ? audio_demuxer_type : afmt,audio_id,-2,-2);
1039 if(!ad) 1039 if(!ad)
1040 mp_msg(MSGT_DEMUXER,MSGL_WARN,"Failed to open audio demuxer: %s\n",audio_stream); 1040 mp_msg(MSGT_DEMUXER,MSGL_WARN,MSGTR_OpeningAudioDemuxerFailed,audio_stream);
1041 else if(ad->audio->sh && ((sh_audio_t*)ad->audio->sh)->format == 0x55) // MP3 1041 else if(ad->audio->sh && ((sh_audio_t*)ad->audio->sh)->format == 0x55) // MP3
1042 m_config_set_flag(mconfig,"hr-mp3-seek",1); // Enable high res seeking 1042 m_config_set_flag(mconfig,"hr-mp3-seek",1); // Enable high res seeking
1043 } 1043 }
1044 if(ss) { 1044 if(ss) {
1045 sd = demux_open_stream(ss,sub_demuxer_type ? sub_demuxer_type : sfmt,-2,-2,dvdsub_id); 1045 sd = demux_open_stream(ss,sub_demuxer_type ? sub_demuxer_type : sfmt,-2,-2,dvdsub_id);
1046 if(!sd) 1046 if(!sd)
1047 mp_msg(MSGT_DEMUXER,MSGL_WARN,"Failed to open subtitles demuxer: %s\n",sub_stream); 1047 mp_msg(MSGT_DEMUXER,MSGL_WARN,MSGTR_OpeningSubtitlesDemuxerFailed,sub_stream);
1048 } 1048 }
1049 1049
1050 if(ad && sd) 1050 if(ad && sd)
1051 return new_demuxers_demuxer(vd,ad,sd); 1051 return new_demuxers_demuxer(vd,ad,sd);
1052 else if(ad) 1052 else if(ad)
1087 if(!demuxer->seekable){ 1087 if(!demuxer->seekable){
1088 if(demuxer->file_format==DEMUXER_TYPE_AVI) 1088 if(demuxer->file_format==DEMUXER_TYPE_AVI)
1089 mp_msg(MSGT_SEEK,MSGL_WARN,MSGTR_CantSeekRawAVI); 1089 mp_msg(MSGT_SEEK,MSGL_WARN,MSGTR_CantSeekRawAVI);
1090 #ifdef USE_TV 1090 #ifdef USE_TV
1091 else if (demuxer->file_format==DEMUXER_TYPE_TV) 1091 else if (demuxer->file_format==DEMUXER_TYPE_TV)
1092 mp_msg(MSGT_SEEK,MSGL_WARN,"TV input isn't seekable! (probably seeking will be for changing channels ;)\n"); 1092 mp_msg(MSGT_SEEK,MSGL_WARN,MSGTR_TVInputNotSeekable);
1093 #endif 1093 #endif
1094 else 1094 else
1095 mp_msg(MSGT_SEEK,MSGL_WARN,MSGTR_CantSeekFile); 1095 mp_msg(MSGT_SEEK,MSGL_WARN,MSGTR_CantSeekFile);
1096 return 0; 1096 return 0;
1097 } 1097 }
1170 1170
1171 for(n = 0; info && info[2*n] != NULL; n++) 1171 for(n = 0; info && info[2*n] != NULL; n++)
1172 { 1172 {
1173 if(!strcasecmp(opt,info[2*n])) 1173 if(!strcasecmp(opt,info[2*n]))
1174 { 1174 {
1175 mp_msg(MSGT_DEMUX, MSGL_WARN, "Demuxer info %s already present\n!",opt); 1175 mp_msg(MSGT_DEMUX, MSGL_WARN,MSGTR_DemuxerInfoAlreadyPresent,opt);
1176 return 0; 1176 return 0;
1177 } 1177 }
1178 } 1178 }
1179 1179
1180 info = demuxer->info = (char**)realloc(info,(2*(n+2))*sizeof(char*)); 1180 info = demuxer->info = (char**)realloc(info,(2*(n+2))*sizeof(char*));
1191 int n; 1191 int n;
1192 1192
1193 if(!info) 1193 if(!info)
1194 return 0; 1194 return 0;
1195 1195
1196 mp_msg(MSGT_DEMUX, MSGL_INFO, "Clip info: \n"); 1196 mp_msg(MSGT_DEMUX, MSGL_INFO,MSGTR_ClipInfo);
1197 for(n = 0; info[2*n] != NULL ; n++) 1197 for(n = 0; info[2*n] != NULL ; n++)
1198 mp_msg(MSGT_DEMUX, MSGL_INFO, " %s: %s\n",info[2*n],info[2*n+1]); 1198 mp_msg(MSGT_DEMUX, MSGL_INFO, " %s: %s\n",info[2*n],info[2*n+1]);
1199 1199
1200 return 0; 1200 return 0;
1201 } 1201 }