changeset 18778:8491f306b52f

intercept VFCTRL_FLIP_PAGE if needed
author michael
date Wed, 21 Jun 2006 20:52:07 +0000
parents 886095ad9c0f
children d3b0e55b0c90
files libmpcodecs/vf_framestep.c
diffstat 1 files changed, 11 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/libmpcodecs/vf_framestep.c	Wed Jun 21 20:29:45 2006 +0000
+++ b/libmpcodecs/vf_framestep.c	Wed Jun 21 20:52:07 2006 +0000
@@ -73,6 +73,7 @@
     int  frame_step;
     /* Only I-Frame (2), print on I-Frame (1) */
     int  dump_iframe;
+    int last_skip;
 };
 
 /* Filter handler */
@@ -108,6 +109,8 @@
     /* Increment current frame */
     ++priv->frame_cur;
 
+    priv->last_skip= skip;
+
     if (skip == 0) {
 	/* Get image, export type (we don't modify tghe image) */
 	dmpi=vf_get_image(vf->next, mpi->imgfmt,
@@ -133,6 +136,13 @@
     return 0;
 }
 
+static int control(struct vf_instance_s* vf, int request, void* data){
+    if(request == VFCTRL_FLIP_PAGE && vf->priv->last_skip){
+        return CONTROL_TRUE;
+    }
+    return vf_next_control(vf,request,data);
+}
+
 static void uninit(struct vf_instance_s* vf)
 {
     /* Free private data */
@@ -145,6 +155,7 @@
 	struct vf_priv_s *p;
 
         vf->put_image = put_image;
+        vf->control= control;
 	vf->uninit = uninit;
 	vf->default_reqs = VFCAP_ACCEPT_STRIDE;
 	vf->priv = p = calloc(1, sizeof(struct vf_priv_s));