diff options
author | Uoti Urpala <uau@glyph.nonexistent.invalid> | 2008-12-01 19:53:57 +0200 |
---|---|---|
committer | Uoti Urpala <uau@glyph.nonexistent.invalid> | 2008-12-09 04:31:07 +0200 |
commit | 02efad79a28345e5814af1b60e0bb3c40cb5a941 (patch) | |
tree | 83c164e897ed46b24701f8190412d2883f085ba2 /libmpcodecs/vf_expand.c | |
parent | 95f35c4d205daafe4797f28d7ec79f3ebb1952a1 (diff) | |
download | mpv-02efad79a28345e5814af1b60e0bb3c40cb5a941.tar.bz2 mpv-02efad79a28345e5814af1b60e0bb3c40cb5a941.tar.xz |
Update OSD while paused
When OSD contents change while paused, try to change the OSD drawn in
the currently visible frame. If such OSD updates are not supported
then advance by one frame and draw the OSD normally. Add some support
for OSD redrawing to vo xv.
The new xv code makes a copy of the original frame contents before
drawing the OSD if MPlayer is already paused when the frame is drawn.
If such a copy of the current frame exists then the frame contents can
be restored and a different OSD drawn on top of the same frame.
Diffstat (limited to 'libmpcodecs/vf_expand.c')
-rw-r--r-- | libmpcodecs/vf_expand.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libmpcodecs/vf_expand.c b/libmpcodecs/vf_expand.c index cdde44f82b..dec0c524b6 100644 --- a/libmpcodecs/vf_expand.c +++ b/libmpcodecs/vf_expand.c @@ -3,6 +3,7 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <stdbool.h> #include "config.h" #include "mp_msg.h" @@ -419,6 +420,11 @@ static int control(struct vf_instance* vf, int request, void* data){ break; case VFCTRL_DRAW_OSD: if(vf->priv->osd_enabled) return CONTROL_TRUE; + break; + case VFCTRL_REDRAW_OSD: + if (vf->priv->osd_enabled) + return false; + break; } #endif return vf_next_control(vf,request,data); |