[Mplayerxp-cvslog] SF.net SVN: mplayerxp:[229] mplayerxp
Brought to you by:
olov
From: <nic...@us...> - 2012-10-27 15:18:45
|
Revision: 229 http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=229&view=rev Author: nickols_k Date: 2012-10-27 15:18:38 +0000 (Sat, 27 Oct 2012) Log Message: ----------- combine some variables into structures Modified Paths: -------------- mplayerxp/cfg-mplayer.h mplayerxp/libmpcodecs/ad_a52.c mplayerxp/libmpcodecs/ad_dca.c mplayerxp/libmpcodecs/ad_faad.c mplayerxp/libmpcodecs/dec_video.c mplayerxp/libmpcodecs/vd_libmpeg2.c mplayerxp/mplayer.c mplayerxp/mplayer.h mplayerxp/xmp_core.c Modified: mplayerxp/cfg-mplayer.h =================================================================== --- mplayerxp/cfg-mplayer.h 2012-10-27 15:04:43 UTC (rev 228) +++ mplayerxp/cfg-mplayer.h 2012-10-27 15:18:38 UTC (rev 229) @@ -35,7 +35,6 @@ extern int enable_xp_audio; -extern float playbackspeed_factor; /* from libvo/aspect.c */ extern float monitor_pixel_aspect; @@ -247,7 +246,7 @@ {"zoom", &vo_conf.screen_size_xy, CONF_TYPE_FLOAT, CONF_RANGE, 0, 4096, NULL, "scale output image by given factor"}, {"screenw", &vo_conf.screenwidth, CONF_TYPE_INT, CONF_RANGE, 0, 4096, NULL, "specifies the horizontal resolution of the screen (if supported)"}, {"screenh", &vo_conf.screenheight, CONF_TYPE_INT, CONF_RANGE, 0, 4096, NULL, "specifies the vertical resolution of the screen (if supported)"}, - {"speed", &playbackspeed_factor, CONF_TYPE_FLOAT, CONF_RANGE, 0.01, 100.0, NULL, "sets playback speed factor"}, + {"speed", &mp_conf.playbackspeed_factor, CONF_TYPE_FLOAT, CONF_RANGE, 0.01, 100.0, NULL, "sets playback speed factor"}, {"aspect", &vo_conf.movie_aspect, CONF_TYPE_FLOAT, CONF_RANGE, 0.2, 3.0, NULL, "sets aspect-ratio of movies (autodetect)"}, {"noaspect", &vo_conf.movie_aspect, CONF_TYPE_FLAG, 0, 0, 0, NULL, "unsets aspect-ratio of movies"}, {"aspect-ratio", &vo_conf.softzoom, CONF_TYPE_FLAG, 0, 0, 1, NULL, "keeps aspect-ratio of the movie during window resize"}, Modified: mplayerxp/libmpcodecs/ad_a52.c =================================================================== --- mplayerxp/libmpcodecs/ad_a52.c 2012-10-27 15:04:43 UTC (rev 228) +++ mplayerxp/libmpcodecs/ad_a52.c 2012-10-27 15:18:38 UTC (rev 229) @@ -138,7 +138,7 @@ float pts; int flags=0; /* Dolby AC3 audio:*/ - mpxp_a52_accel = mplayer_accel; + mpxp_a52_accel = mp_data->mplayer_accel; mpxp_a52_state=a52_init (mpxp_a52_accel); if (mpxp_a52_state == NULL) { MSG_ERR("A52 init failed\n"); Modified: mplayerxp/libmpcodecs/ad_dca.c =================================================================== --- mplayerxp/libmpcodecs/ad_dca.c 2012-10-27 15:04:43 UTC (rev 228) +++ mplayerxp/libmpcodecs/ad_dca.c 2012-10-27 15:18:38 UTC (rev 229) @@ -140,7 +140,7 @@ float pts; int flags=0; /* Dolby AC3 audio:*/ - mpxp_dca_accel = mplayer_accel; + mpxp_dca_accel = mp_data->mplayer_accel; mpxp_dca_state = dca_init(mpxp_dca_accel); if (mpxp_dca_state == NULL) { MSG_ERR("dca init failed\n"); Modified: mplayerxp/libmpcodecs/ad_faad.c =================================================================== --- mplayerxp/libmpcodecs/ad_faad.c 2012-10-27 15:04:43 UTC (rev 228) +++ mplayerxp/libmpcodecs/ad_faad.c 2012-10-27 15:18:38 UTC (rev 229) @@ -170,7 +170,7 @@ float pts; int NeAAC_init; NeAACDecConfigurationPtr NeAAC_conf; - if(!(NeAAC_hdec = NeAACDecOpen(mplayer_accel))) + if(!(NeAAC_hdec = NeAACDecOpen(mp_data->mplayer_accel))) { MSG_WARN("FAAD: Failed to open the decoder!\n"); // XXX: deal with cleanup! return 0; Modified: mplayerxp/libmpcodecs/dec_video.c =================================================================== --- mplayerxp/libmpcodecs/dec_video.c 2012-10-27 15:04:43 UTC (rev 228) +++ mplayerxp/libmpcodecs/dec_video.c 2012-10-27 15:18:38 UTC (rev 229) @@ -288,19 +288,18 @@ } #ifdef USE_SUB -extern subtitle* mp_subtitles; static float sub_last_pts = -303; #endif static void update_subtitle(sh_video_t *sh_video,float v_pts,unsigned xp_idx) { #ifdef USE_SUB // find sub - if(mp_subtitles && v_pts>0){ + if(mp_data->subtitles && v_pts>0){ float pts=v_pts; if(mp_conf.sub_fps==0) mp_conf.sub_fps=sh_video->fps; MP_UNIT("find_sub"); if (pts > sub_last_pts || pts < sub_last_pts-1.0 ) { - find_sub(mp_subtitles,sub_uses_time?(100*pts):(pts*mp_conf.sub_fps),vo_data); // FIXME! frame counter... + find_sub(mp_data->subtitles,sub_uses_time?(100*pts):(pts*mp_conf.sub_fps),vo_data); // FIXME! frame counter... sub_last_pts = pts; } MP_UNIT(NULL); Modified: mplayerxp/libmpcodecs/vd_libmpeg2.c =================================================================== --- mplayerxp/libmpcodecs/vd_libmpeg2.c 2012-10-27 15:04:43 UTC (rev 228) +++ mplayerxp/libmpcodecs/vd_libmpeg2.c 2012-10-27 15:18:38 UTC (rev 229) @@ -187,7 +187,7 @@ priv_t *priv; if(!load_lib("libmpeg2"SLIBSUFFIX)) return 0; priv=sh->context=malloc(sizeof(priv_t)); - if(!(priv->mpeg2dec=mpeg2_init(mplayer_accel))) return 0; + if(!(priv->mpeg2dec=mpeg2_init(mp_data->mplayer_accel))) return 0; return mpcodecs_config_vo(sh,sh->src_w,sh->src_h,NULL); } Modified: mplayerxp/mplayer.c =================================================================== --- mplayerxp/mplayer.c 2012-10-27 15:04:43 UTC (rev 228) +++ mplayerxp/mplayer.c 2012-10-27 15:18:38 UTC (rev 229) @@ -88,18 +88,12 @@ volatile unsigned xp_drop_frame_cnt=0; float xp_screen_pts; -float playbackspeed_factor=1.0; static unsigned mpxp_after_seek=0; int audio_eof=0; demux_stream_t *d_video=NULL; static int osd_show_framedrop = 0; static int osd_function=OSD_PLAY; -#ifdef USE_SUB -subtitle* mp_subtitles=NULL; -#endif -int use_pts_fix2=-1; - /************************************************************************ Special case: inital audio PTS: example: some movies has a_pts = v_pts = XX sec @@ -108,11 +102,6 @@ float initial_audio_pts=HUGE; initial_audio_pts_correction_t initial_audio_pts_corr; -/* - Acceleration for codecs -*/ -unsigned mplayer_accel=0; - /************************************************************************** Config file **************************************************************************/ @@ -203,10 +192,12 @@ mp_conf.has_video=1; mp_conf.has_dvdsub=1; mp_conf.osd_level=2; + mp_conf.playbackspeed_factor=1.0; mp_data=random_malloc(sizeof(mp_data_t),1000); memset(mp_data,0,sizeof(mp_data_t)); mp_data->seek_time=-1; mp_data->bench=malloc(sizeof(time_usage_t)); + mp_data->use_pts_fix2=-1; memset(mp_data->bench,0,sizeof(time_usage_t)); } @@ -663,10 +654,10 @@ inited_flags&=~INITED_SUBTITLE; MP_UNIT("sub_free"); mp_input_uninit(); - sub_free( mp_subtitles ); + sub_free( mp_data->subtitles ); mp_conf.sub_name=NULL; vo_data->sub=NULL; - mp_subtitles=NULL; + mp_data->subtitles=NULL; } #endif MP_UNIT(NULL); @@ -853,12 +844,12 @@ gCpuCaps.hasAES, gCpuCaps.hasAVX, gCpuCaps.hasFMA); - if(gCpuCaps.hasMMX) mplayer_accel |= MM_ACCEL_X86_MMX; - if(gCpuCaps.hasMMX2) mplayer_accel |= MM_ACCEL_X86_MMXEXT; - if(gCpuCaps.hasSSE) mplayer_accel |= MM_ACCEL_X86_SSE; - if(gCpuCaps.has3DNow) mplayer_accel |= MM_ACCEL_X86_3DNOW; - if(gCpuCaps.has3DNowExt) mplayer_accel |= MM_ACCEL_X86_3DNOWEXT; - MSG_V("mplayer_accel=%i\n",mplayer_accel); + if(gCpuCaps.hasMMX) mp_data->mplayer_accel |= MM_ACCEL_X86_MMX; + if(gCpuCaps.hasMMX2) mp_data->mplayer_accel |= MM_ACCEL_X86_MMXEXT; + if(gCpuCaps.hasSSE) mp_data->mplayer_accel |= MM_ACCEL_X86_SSE; + if(gCpuCaps.has3DNow) mp_data->mplayer_accel |= MM_ACCEL_X86_3DNOW; + if(gCpuCaps.has3DNowExt) mp_data->mplayer_accel |= MM_ACCEL_X86_3DNOWEXT; + MSG_V("mp_data->mplayer_accel=%i\n",mp_data->mplayer_accel); } #endif @@ -1014,7 +1005,7 @@ memcpy(sh_audio->a_buffer,&sh_audio->a_buffer[playsize],sh_audio->a_buffer_len); if(!mp_conf.av_sync_pts && mp_conf.xp>=XP_VAPlay) pthread_mutex_lock(&audio_timer_mutex); - if(use_pts_fix2) { + if(mp_data->use_pts_fix2) { if(sh_audio->a_pts != HUGE) { sh_audio->a_pts_pos-=playsize; if(sh_audio->a_pts_pos > -ao_get_delay(ao_data)*sh_audio->af_bps) { @@ -1132,7 +1123,7 @@ static void vplayer_check_chapter_change(frame_attr_t* shva_prev,float v_pts) { - if(use_pts_fix2 && sh_audio) { + if(mp_data->use_pts_fix2 && sh_audio) { if(sh_video->chapter_change == -1) { /* First frame after seek */ while(v_pts < 1.0 && sh_audio->timer==0.0 && ao_get_delay(ao_data)==0.0) usleep(0); /* Wait for audio to start play */ @@ -1162,9 +1153,9 @@ often ao_get_delay() never returns 0 :( */ if(audio_eof && !get_delay_audio_buffer()) goto nosound_model; if((!audio_eof || ao_get_delay(ao_data)) && - (!use_pts_fix2 || (!sh_audio->chapter_change && !sh_video->chapter_change))) + (!mp_data->use_pts_fix2 || (!sh_audio->chapter_change && !sh_video->chapter_change))) sleep_time=xp_screen_pts-(sh_audio->timer-ao_get_delay(ao_data)); - else if(use_pts_fix2 && sh_audio->chapter_change) + else if(mp_data->use_pts_fix2 && sh_audio->chapter_change) sleep_time=0; else goto nosound_model; @@ -1765,17 +1756,17 @@ // check .sub MP_UNIT("read_subtitles_file"); if(mp_conf.sub_name){ - mp_subtitles=sub_read_file(mp_conf.sub_name, sh_video->fps); - if(!mp_subtitles) MSG_ERR(MSGTR_CantLoadSub,mp_conf.sub_name); + mp_data->subtitles=sub_read_file(mp_conf.sub_name, sh_video->fps); + if(!mp_data->subtitles) MSG_ERR(MSGTR_CantLoadSub,mp_conf.sub_name); } else if(mp_conf.sub_auto) { // auto load sub file ... - mp_subtitles=sub_read_file( filename ? sub_filename( get_path("sub/"), filename ) + mp_data->subtitles=sub_read_file( filename ? sub_filename( get_path("sub/"), filename ) : "default.sub", sh_video->fps ); } - if(mp_subtitles) + if(mp_data->subtitles) { inited_flags|=INITED_SUBTITLE; - if(stream_dump_type>1) list_sub_file(mp_subtitles); + if(stream_dump_type>1) list_sub_file(mp_data->subtitles); } #endif } @@ -2541,9 +2532,9 @@ d_video->demuxer->file_format == DEMUXER_TYPE_H264_ES || d_video->demuxer->file_format == DEMUXER_TYPE_MPEG_PS || d_video->demuxer->file_format == DEMUXER_TYPE_MPEG_TS))) - use_pts_fix2=1; + mp_data->use_pts_fix2=1; else - use_pts_fix2=0; + mp_data->use_pts_fix2=0; if(sh_video) sh_video->chapter_change=0; Modified: mplayerxp/mplayer.h =================================================================== --- mplayerxp/mplayer.h 2012-10-27 15:04:43 UTC (rev 228) +++ mplayerxp/mplayer.h 2012-10-27 15:18:38 UTC (rev 229) @@ -28,6 +28,7 @@ int autoq; /* quality's options: */ unsigned verbose; int benchmark; + float playbackspeed_factor; // sync int frame_dropping; // option 0=no drop 1= drop vo 2= drop decode int av_sync_pts; @@ -99,13 +100,14 @@ typedef struct mp_data_s { int seek_time; int output_quality; + int use_pts_fix2; + unsigned mplayer_accel; + any_t* subtitles; any_t* mconfig; time_usage_t*bench; }mp_data_t; extern mp_data_t* mp_data; -extern unsigned mplayer_accel; -extern int use_pts_fix2; extern void exit_player(char* how); extern void mpxp_resync_audio_stream(void); Modified: mplayerxp/xmp_core.c =================================================================== --- mplayerxp/xmp_core.c 2012-10-27 15:04:43 UTC (rev 228) +++ mplayerxp/xmp_core.c 2012-10-27 15:18:38 UTC (rev 229) @@ -324,7 +324,7 @@ if(!(xp_core.has_audio && mp_conf.xp < XP_VAFull)) priv->name = "video decoder+vf"; drop_barrier=(float)(xp_core.num_v_buffs/2)*(1/sh_video->fps); - if(mp_conf.av_sync_pts == -1 && !use_pts_fix2) + if(mp_conf.av_sync_pts == -1 && !mp_data->use_pts_fix2) xp_is_bad_pts = d_video->demuxer->file_format == DEMUXER_TYPE_MPEG_ES || d_video->demuxer->file_format == DEMUXER_TYPE_MPEG4_ES || d_video->demuxer->file_format == DEMUXER_TYPE_H264_ES || This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |