summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libmpcodecs/dec_video.c5
-rw-r--r--libmpcodecs/vf.h2
-rw-r--r--libmpcodecs/vf_vo.c5
-rw-r--r--mplayer.c5
4 files changed, 12 insertions, 5 deletions
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();