CVS: main mplayer.c,1.68,1.69
Update of /cvsroot/mplayer/main In directory usw-pr-cvs1:/tmp/cvs-serv20103 Modified Files: mplayer.c Log Message: add mixer support Index: mplayer.c =================================================================== RCS file: /cvsroot/mplayer/main/mplayer.c,v retrieving revision 1.68 retrieving revision 1.69 diff -C2 -r1.68 -r1.69 *** mplayer.c 2001/04/15 20:31:57 1.68 --- mplayer.c 2001/04/15 22:34:09 1.69 *************** *** 89,93 **** //**************************************************************************// ! // .SUB //**************************************************************************// --- 89,93 ---- //**************************************************************************// ! // .SUB //**************************************************************************// *************** *** 128,154 **** static int cfg_include(struct config *conf, char *filename){ ! return parse_config_file(conf, filename); } char *get_path(char *filename){ ! char *homedir; ! char *buff; ! static char *config_dir = "/.mplayer"; ! int len; ! ! if ((homedir = getenv("HOME")) == NULL) ! return NULL; ! len = strlen(homedir) + strlen(config_dir) + 1; ! if (filename == NULL) { ! if ((buff = (char *) malloc(len)) == NULL) ! return NULL; ! sprintf(buff, "%s%s", homedir, config_dir); ! } else { ! len += strlen(filename) + 1; ! if ((buff = (char *) malloc(len)) == NULL) ! return NULL; ! sprintf(buff, "%s%s/%s", homedir, config_dir, filename); ! } ! return buff; } --- 128,154 ---- static int cfg_include(struct config *conf, char *filename){ ! return parse_config_file(conf, filename); } char *get_path(char *filename){ ! char *homedir; ! char *buff; ! static char *config_dir = "/.mplayer"; ! int len; ! ! if ((homedir = getenv("HOME")) == NULL) ! return NULL; ! len = strlen(homedir) + strlen(config_dir) + 1; ! if (filename == NULL) { ! if ((buff = (char *) malloc(len)) == NULL) ! return NULL; ! sprintf(buff, "%s%s", homedir, config_dir); ! } else { ! len += strlen(filename) + 1; ! if ((buff = (char *) malloc(len)) == NULL) ! return NULL; ! sprintf(buff, "%s%s/%s", homedir, config_dir, filename); ! } ! return buff; } *************** *** 275,280 **** // callback, the opendivx decoder calls this for each frame: void convert_linux(unsigned char *puc_y, int stride_y, ! unsigned char *puc_u, unsigned char *puc_v, int stride_uv, ! unsigned char *bmp, int width_y, int height_y){ // printf("convert_yuv called %dx%d stride: %d,%d\n",width_y,height_y,stride_y,stride_uv); --- 275,280 ---- // callback, the opendivx decoder calls this for each frame: void convert_linux(unsigned char *puc_y, int stride_y, ! unsigned char *puc_u, unsigned char *puc_v, int stride_uv, ! unsigned char *bmp, int width_y, int height_y){ // printf("convert_yuv called %dx%d stride: %d,%d\n",width_y,height_y,stride_y,stride_uv); *************** *** 283,287 **** opendivx_src[1]=puc_u; opendivx_src[2]=puc_v; ! opendivx_stride[0]=stride_y; opendivx_stride[1]=stride_uv; --- 283,287 ---- opendivx_src[1]=puc_u; opendivx_src[2]=puc_v; ! opendivx_stride[0]=stride_y; opendivx_stride[1]=stride_uv; *************** *** 431,435 **** float sub_fps=0; //int user_bpp=0; ! #include "cfg-mplayer.h" --- 431,438 ---- float sub_fps=0; //int user_bpp=0; ! extern int vo_dbpp; ! // --- NEW ! #include "mixer.h" ! // --- #include "cfg-mplayer.h" *************** *** 471,475 **** while (video_out_drivers[i]) { const vo_info_t *info = video_out_drivers[i++]->get_info (); ! printf("\t%s\t%s\n", info->short_name, info->name); } printf("\n"); --- 474,478 ---- while (video_out_drivers[i]) { const vo_info_t *info = video_out_drivers[i++]->get_info (); ! printf("\t%s\t%s\n", info->short_name, info->name); } printf("\n"); *************** *** 558,562 **** stream_read_dword_le(demuxer->stream); //filesize id=stream_read_dword_le(demuxer->stream); // "AVI " ! if(id==formtypeAVI){ printf("Detected AVI file format!\n"); file_format=DEMUXER_TYPE_AVI; --- 561,565 ---- stream_read_dword_le(demuxer->stream); //filesize id=stream_read_dword_le(demuxer->stream); // "AVI " ! if(id==formtypeAVI){ printf("Detected AVI file format!\n"); file_format=DEMUXER_TYPE_AVI; *************** *** 642,646 **** } demuxer->endpos=avi_header.movi_end; ! if(avi_header.idx_size>0){ // check that file is non-interleaved: --- 645,649 ---- } demuxer->endpos=avi_header.movi_end; ! if(avi_header.idx_size>0){ // check that file is non-interleaved: *************** *** 672,676 **** printf("Detected NON-INTERLEAVED AVI file-format!\n"); demuxer->type=DEMUXER_TYPE_AVI_NI; // HACK!!!! ! pts_from_bps=1; // force BPS sync! } } --- 675,679 ---- printf("Detected NON-INTERLEAVED AVI file-format!\n"); demuxer->type=DEMUXER_TYPE_AVI_NI; // HACK!!!! ! pts_from_bps=1; // force BPS sync! } } *************** *** 680,686 **** printf("Using NON-INTERLEAVED Broken AVI file-format!\n"); demuxer->type=DEMUXER_TYPE_AVI_NINI; // HACK!!!! ! avi_header.idx_pos_a= ! avi_header.idx_pos_v=avi_header.movi_start; ! pts_from_bps=1; // force BPS sync! } } --- 683,689 ---- printf("Using NON-INTERLEAVED Broken AVI file-format!\n"); demuxer->type=DEMUXER_TYPE_AVI_NINI; // HACK!!!! ! avi_header.idx_pos_a= ! avi_header.idx_pos_v=avi_header.movi_start; ! pts_from_bps=1; // force BPS sync! } } *************** *** 908,912 **** exit(1); } ! if(out_fmt==IMGFMT_YUY2) DS_VideoDecoder_SetDestFmt(16,mmioFOURCC('Y', 'U', 'Y', '2')); --- 911,915 ---- exit(1); } ! if(out_fmt==IMGFMT_YUY2) DS_VideoDecoder_SetDestFmt(16,mmioFOURCC('Y', 'U', 'Y', '2')); *************** *** 919,923 **** printf("DivX setting result = %d\n", DS_SetAttr_DivX("Quality",divx_quality) ); // printf("DivX setting result = %d\n", DS_SetValue_DivX("Brightness",60) ); ! if(verbose) printf("INFO: Win32/DShow video codec init OK!\n"); break; --- 922,926 ---- printf("DivX setting result = %d\n", DS_SetAttr_DivX("Quality",divx_quality) ); // printf("DivX setting result = %d\n", DS_SetValue_DivX("Brightness",60) ); ! if(verbose) printf("INFO: Win32/DShow video codec init OK!\n"); break; *************** *** 1044,1048 **** fflush(stdout); ! //================== MAIN: ========================== { --- 1047,1051 ---- fflush(stdout); ! //================== MAIN: ========================== { *************** *** 1293,1297 **** if(1) while(v_frame<a_frame || force_redraw){ ! float frame_time=1; float pts1=d_video->pts; --- 1296,1300 ---- if(1) while(v_frame<a_frame || force_redraw){ ! float frame_time=1; float pts1=d_video->pts; *************** *** 1312,1318 **** // let's decode dec_frame.length = in_size; ! dec_frame.bitstream = start; ! dec_frame.render_flag = 1; ! decore(0x123, 0, &dec_frame, NULL); t2=GetTimer();t=t2-t;video_time_usage+=t*0.000001f; --- 1315,1321 ---- // let's decode dec_frame.length = in_size; ! dec_frame.bitstream = start; ! dec_frame.render_flag = 1; ! decore(0x123, 0, &dec_frame, NULL); t2=GetTimer();t=t2-t;video_time_usage+=t*0.000001f; *************** *** 1350,1354 **** if(in_size<0){ eof=1;break;} if(in_size>max_framesize) max_framesize=in_size; - if(in_size){ sh_video->bih->biSizeImage = in_size; --- 1353,1356 ---- *************** *** 1390,1406 **** else if(!i){ eof=1; break;} // EOF } ! if(grab_frames==2 && (i==0x1B3 || i==0x1B8)) grab_frames=1; if(!read_video_packet(d_video)){ eof=1; break;} // EOF //printf("read packet 0x%X, len=%d\n",i,videobuf_len); } ! if(videobuf_len>max_framesize) max_framesize=videobuf_len; // debug //printf("--- SEND %d bytes\n",videobuf_len); ! if(grab_frames==1){ ! FILE *f=fopen("grab.mpg","ab"); ! fwrite(videobuffer,videobuf_len-4,1,f); ! fclose(f); ! } ! t-=GetTimer(); mpeg2_decode_data(video_out, videobuffer, videobuffer+videobuf_len); --- 1392,1408 ---- else if(!i){ eof=1; break;} // EOF } ! if(grab_frames==2 && (i==0x1B3 || i==0x1B8)) grab_frames=1; if(!read_video_packet(d_video)){ eof=1; break;} // EOF //printf("read packet 0x%X, len=%d\n",i,videobuf_len); } ! if(videobuf_len>max_framesize) max_framesize=videobuf_len; // debug //printf("--- SEND %d bytes\n",videobuf_len); ! if(grab_frames==1){ ! FILE *f=fopen("grab.mpg","ab"); ! fwrite(videobuffer,videobuf_len-4,1,f); ! fclose(f); ! } ! t-=GetTimer(); mpeg2_decode_data(video_out, videobuffer, videobuffer+videobuf_len); *************** *** 1413,1417 **** sh_video->frametime=10000.0f/(float)frameratecode2framerate[picture->frame_rate_code]; } ! frame_time=(100+picture->repeat_count)*0.01f; picture->repeat_count=0; --- 1415,1419 ---- sh_video->frametime=10000.0f/(float)frameratecode2framerate[picture->frame_rate_code]; } ! frame_time=(100+picture->repeat_count)*0.01f; picture->repeat_count=0; *************** *** 1526,1530 **** #endif getch2(20)<=0 && mplayer_get_key()<=0){ ! video_out->check_events(); } osd_function=OSD_PLAY; --- 1528,1532 ---- #endif getch2(20)<=0 && mplayer_get_key()<=0){ ! video_out->check_events(); } osd_function=OSD_PLAY; *************** *** 1579,1582 **** --- 1581,1598 ---- osd_level=(osd_level+1)%3; break; + // --- NEW + case '*': + mixer_incvolume(); + break; + case '/': + mixer_decvolume(); + break; + case 'm': + mixer_usemaster=1; + break;; + case 'c': + mixer_usemaster=0; + break; + // --- } if(rel_seek_secs) *************** *** 1590,1594 **** if(has_audio) ds_free_packs(d_audio); ds_free_packs(d_video); ! // printf("sh_audio->a_buffer_len=%d \n",sh_audio->a_buffer_len); sh_audio->a_buffer_len=0; --- 1606,1610 ---- if(has_audio) ds_free_packs(d_audio); ds_free_packs(d_video); ! // printf("sh_audio->a_buffer_len=%d \n",sh_audio->a_buffer_len); sh_audio->a_buffer_len=0; *************** *** 1602,1606 **** int audio_chunk_pos=-1; int video_chunk_pos=d_video->pos; ! skip_video_frames=0; --- 1618,1622 ---- int audio_chunk_pos=-1; int video_chunk_pos=d_video->pos; ! skip_video_frames=0; *************** *** 1722,1726 **** // skip_audio_bytes=bytes to skip from that chunk // skip_audio_secs=time to play audio before video (if can't skip) ! // calc skip_video_frames & adjust video pts counter: // i=last; --- 1738,1742 ---- // skip_audio_bytes=bytes to skip from that chunk // skip_audio_secs=time to play audio before video (if can't skip) ! // calc skip_video_frames & adjust video pts counter: // i=last; *************** *** 1736,1740 **** ++i; } ! } --- 1752,1756 ---- ++i; } ! } *************** *** 1769,1773 **** } break; ! case DEMUXER_TYPE_MPEG_ES: case DEMUXER_TYPE_MPEG_PS: { --- 1785,1789 ---- } break; ! case DEMUXER_TYPE_MPEG_ES: case DEMUXER_TYPE_MPEG_PS: { *************** *** 1803,1807 **** d_audio->pts=0; // PTS is outdated because of the raw data skipping } ! current_module="resync_audio"; --- 1819,1823 ---- d_audio->pts=0; // PTS is outdated because of the raw data skipping } ! current_module="resync_audio"; *************** *** 1828,1832 **** if(d_video->pts && d_audio->pts){ if (d_video->pts < d_audio->pts){ ! } else { while(d_video->pts > d_audio->pts){ --- 1844,1848 ---- if(d_video->pts && d_audio->pts){ if (d_video->pts < d_audio->pts){ ! } else { while(d_video->pts > d_audio->pts){ *************** *** 1870,1874 **** // for(i=1;i<=11;i++) osd_text_buffer[10+i]=i;osd_text_buffer[10+i]=0; // vo_osd_text=osd_text_buffer; ! // find sub if(subtitles){ --- 1886,1890 ---- // for(i=1;i<=11;i++) osd_text_buffer[10+i]=i;osd_text_buffer[10+i]=0; // vo_osd_text=osd_text_buffer; ! // find sub if(subtitles){ _______________________________________________ Mplayer-cvslog mailing list Mplayer-cvslog@lists.sourceforge.net http://lists.sourceforge.net/lists/listinfo/mplayer-cvslog
participants (1)
-
Zoltan Ponekker