All pastes #256056 Raw Edit

Someone

public text v1 · immutable
#256056 ·published 2006-11-23 18:40 UTC
rendered paste body
Index: libmpcodecs/vf.c
===================================================================
--- libmpcodecs/vf.c    (revision 21180)
+++ libmpcodecs/vf.c    (working copy)
@@ -668,7 +672,9 @@
 }

 int vf_next_put_image(struct vf_instance_s* vf,mp_image_t *mpi, double pts){
-    return vf->next->put_image(vf->next,mpi, pts);
+    vf = vf->next;
+    while (vf->skip_filter) vf = vf->next;
+    return vf->put_image(vf,mpi, pts);
 }

 void vf_next_draw_slice(struct vf_instance_s* vf,unsigned char** src, int * stride,int w, int h, int x, int y){
Index: libmpcodecs/vf.h
===================================================================
--- libmpcodecs/vf.h    (revision 21180)
+++ libmpcodecs/vf.h    (working copy)
@@ -55,6 +55,7 @@
     struct vf_instance_s* next;
     mp_image_t *dmpi;
     struct vf_priv_s* priv;
+    int skip_filter;
 } vf_instance_t;

 // control codes:
Index: libmpcodecs/dec_video.c
===================================================================
--- libmpcodecs/dec_video.c     (revision 21180)
+++ libmpcodecs/dec_video.c     (working copy)
@@ -385,7 +385,9 @@
 unsigned int t2 = GetTimer();
 vf_instance_t *vf = sh_video->vfilter;
 // apply video filters and call the leaf vo/ve
-int ret = vf->put_image(vf,mpi, pts);
+int ret;
+while (vf->skip_filter) vf = vf->next;
+ret = vf->put_image(vf,mpi, pts);
 if(ret>0) {
     vf->control(vf,VFCTRL_DRAW_OSD,NULL);
 #ifdef USE_ASS