[Mplayerxp-cvslog] SF.net SVN: mplayerxp:[248] mplayerxp
Brought to you by:
olov
From: <nic...@us...> - 2012-10-29 13:12:21
|
Revision: 248 http://mplayerxp.svn.sourceforge.net/mplayerxp/?rev=248&view=rev Author: nickols_k Date: 2012-10-29 13:12:12 +0000 (Mon, 29 Oct 2012) Log Message: ----------- cleanups Modified Paths: -------------- mplayerxp/mplayer.c mplayerxp/xmp_core.c Modified: mplayerxp/mplayer.c =================================================================== --- mplayerxp/mplayer.c 2012-10-29 12:54:02 UTC (rev 247) +++ mplayerxp/mplayer.c 2012-10-29 13:12:12 UTC (rev 248) @@ -114,8 +114,6 @@ **************************************************************************/ #include "xmp_core.h" -float xp_screen_pts; - ao_data_t* ao_data=NULL; vo_data_t* vo_data=NULL; pthread_mutex_t audio_timer_mutex=PTHREAD_MUTEX_INITIALIZER; @@ -1159,7 +1157,7 @@ } } -static float vplayer_compute_sleep_time(frame_attr_t* shva_prev) +static float vplayer_compute_sleep_time(frame_attr_t* shva_prev,float screen_pts) { priv_t*priv=mp_data->priv; sh_audio_t* sh_audio=priv->demuxer->audio->sh; @@ -1171,7 +1169,7 @@ if(xp_core.audio->eof && !get_delay_audio_buffer()) goto nosound_model; if((!xp_core.audio->eof || ao_get_delay(ao_data)) && (!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)); + sleep_time=screen_pts-(sh_audio->timer-ao_get_delay(ao_data)); else if(mp_data->use_pts_fix2 && sh_audio->chapter_change) sleep_time=0; else @@ -1230,6 +1228,7 @@ sh_audio_t* sh_audio=priv->demuxer->audio->sh; sh_video_t* sh_video=priv->demuxer->video->sh; demux_stream_t *d_audio=priv->demuxer->audio; + float screen_pts=0; float v_pts=0; float sleep_time=0; int can_blit=0; @@ -1262,7 +1261,7 @@ #endif /*--------- add OSD to the next frame contents ---------*/ if(can_blit) { - xp_screen_pts=v_pts-(mp_conf.av_sync_pts?0:initial_audio_pts); + screen_pts=v_pts-(mp_conf.av_sync_pts?0:initial_audio_pts); #ifdef USE_OSD MSG_D("dec_ahead_main: draw_osd to %u\n",player_idx); MP_UNIT("draw_osd"); @@ -1292,7 +1291,7 @@ /* It's time to sleep ;)...*/ MP_UNIT("sleep"); GetRelativeTime(); /* reset timer */ - sleep_time=vplayer_compute_sleep_time(&shva_prev); + sleep_time=vplayer_compute_sleep_time(&shva_prev,screen_pts); if(mp_conf.benchmark && sleep_time < 0 && sleep_time < priv->max_av_resync) priv->max_av_resync=sleep_time; if(!(vo_data->flags&256)){ /* flag 256 means: libvo driver does its timing (dvb card) */ if(!vplayer_do_sleep(rtc_fd,sleep_time)) return 0; Modified: mplayerxp/xmp_core.c =================================================================== --- mplayerxp/xmp_core.c 2012-10-29 12:54:02 UTC (rev 247) +++ mplayerxp/xmp_core.c 2012-10-29 13:12:12 UTC (rev 248) @@ -176,7 +176,6 @@ pthread_mutex_t audio_decode_mutex=PTHREAD_MUTEX_INITIALIZER; pthread_cond_t audio_decode_cond=PTHREAD_COND_INITIALIZER; -extern volatile float xp_screen_pts; volatile int dec_ahead_can_aseek=0; /* It is safe to seek audio */ volatile int dec_ahead_can_adseek=1; /* It is safe to seek audio buffer thread */ @@ -260,6 +259,7 @@ static unsigned compute_frame_dropping(sh_video_t* sh_video,float v_pts,float drop_barrier) { unsigned rc=0; + float screen_pts=dae_played_fra(xp_core.video).v_pts-(mp_conf.av_sync_pts?0:initial_audio_pts); static float prev_delta=64; float delta,max_frame_delay;/* delay for decoding of top slow frame */ max_frame_delay = mp_data->bench->max_video+mp_data->bench->max_vout; @@ -275,7 +275,7 @@ - while(video.pts < audio.pts) video.seek_to_key_frame(video.get_next_key_frame(video.get_cur_pos())) */ - delta=v_pts-xp_screen_pts; + delta=v_pts-screen_pts; if(max_frame_delay*3 > drop_barrier) { if(drop_barrier < (float)(xp_core.num_v_buffs-2)/sh_video->fps) drop_barrier += 1/sh_video->fps; else This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |