diff --git a/libmpcodecs/dec_video.c b/libmpcodecs/dec_video.c index cb6186534d..a1d57dda4e 100644 --- a/libmpcodecs/dec_video.c +++ b/libmpcodecs/dec_video.c @@ -194,16 +194,15 @@ else if(gCpuCaps.hasMMX){ } #endif -if(!mpi) return 0; // error / skipped frame - t2=GetTimer();t=t2-t; tt = t*0.000001f; video_time_usage+=tt; -if(drop_frame) return 0; +if(!mpi || drop_frame) return 0; // error / skipped frame //vo_draw_image(video_out,mpi); vf->put_image(vf,mpi); +vf->control(vf,VFCTRL_DRAW_OSD,NULL); t2=GetTimer()-t2; tt=t2*0.000001f; diff --git a/libmpcodecs/vf.h b/libmpcodecs/vf.h index 1fa6cd734a..c4af334936 100644 --- a/libmpcodecs/vf.h +++ b/libmpcodecs/vf.h @@ -50,6 +50,8 @@ typedef struct vf_instance_s { #define VFCTRL_SET_PP_LEVEL 5 /* set postprocessing level */ #define VFCTRL_SET_EQUALIZER 6 /* set color options (brightness,contrast etc) */ +#define VFCTRL_DRAW_OSD 7 + #include "vfcap.h" // functions: diff --git a/libmpcodecs/vf_vo.c b/libmpcodecs/vf_vo.c index 69586aa369..a8f7030566 100644 --- a/libmpcodecs/vf_vo.c +++ b/libmpcodecs/vf_vo.c @@ -42,6 +42,11 @@ static int config(struct vf_instance_s* vf, static int control(struct vf_instance_s* vf, int request, void* data){ + switch(request){ + case VFCTRL_DRAW_OSD: + video_out->draw_osd(); + return CONTROL_TRUE; + } // return video_out->control(request,data); return CONTROL_UNKNOWN; } diff --git a/mplayer.c b/mplayer.c index 6e66959488..0f95c30b30 100644 --- a/mplayer.c +++ b/mplayer.c @@ -1512,6 +1512,7 @@ if(!sh_video) { sh_video->timer+=frame_time; time_frame+=frame_time; // for nosound // check for frame-drop: + current_module="check_framedrop"; if(sh_audio && !d_audio->eof){ float delay=audio_out->get_delay(); float d=(sh_video->timer)-(sh_audio->timer-delay); @@ -1538,8 +1539,8 @@ if(!sh_video) { // ========================================================================== - current_module="draw_osd"; - if(vo_config_count) video_out->draw_osd(); +// current_module="draw_osd"; +// if(vo_config_count) video_out->draw_osd(); #ifdef HAVE_NEW_GUI if(use_gui) guiEventHandling();