summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libmpcodecs/vf.c4
-rw-r--r--libmpcodecs/vf.h1
-rw-r--r--libmpcodecs/vf_rotate.c3
3 files changed, 8 insertions, 0 deletions
diff --git a/libmpcodecs/vf.c b/libmpcodecs/vf.c
index d348a506a8..3001eae288 100644
--- a/libmpcodecs/vf.c
+++ b/libmpcodecs/vf.c
@@ -390,6 +390,10 @@ int vf_next_put_image(struct vf_instance_s* vf,mp_image_t *mpi){
return vf->next->put_image(vf->next,mpi);
}
+void vf_next_draw_slice(struct vf_instance_s* vf,unsigned char** src, int * stride,int w, int h, int x, int y){
+ vf->next->draw_slice(vf->next,src,stride,w,h,x,y);
+}
+
//============================================================================
vf_instance_t* append_filters(vf_instance_t* last){
diff --git a/libmpcodecs/vf.h b/libmpcodecs/vf.h
index fa7fb47b2a..fe04c467ef 100644
--- a/libmpcodecs/vf.h
+++ b/libmpcodecs/vf.h
@@ -78,6 +78,7 @@ int vf_next_config(struct vf_instance_s* vf,
int vf_next_control(struct vf_instance_s* vf, int request, void* data);
int vf_next_query_format(struct vf_instance_s* vf, unsigned int fmt);
int vf_next_put_image(struct vf_instance_s* vf,mp_image_t *mpi);
+void vf_next_draw_slice (struct vf_instance_s* vf, unsigned char** src, int* stride, int w,int h, int x, int y);
vf_instance_t* append_filters(vf_instance_t* last);
diff --git a/libmpcodecs/vf_rotate.c b/libmpcodecs/vf_rotate.c
index bc4e279eb7..65eb32ffa7 100644
--- a/libmpcodecs/vf_rotate.c
+++ b/libmpcodecs/vf_rotate.c
@@ -61,6 +61,9 @@ static int config(struct vf_instance_s* vf,
}
if (vf->priv->direction & 4){
vf->put_image=vf_next_put_image; // passthru mode!
+ if (vf->next->draw_slice) vf->draw_slice=vf_next_draw_slice;
+/* FIXME: this should be in an other procedure in vf.c; that should always check
+ whether the filter after the passthrough one still (not)supports slices */
return vf_next_config(vf,width,height,d_width,d_height,flags,outfmt);
}
return vf_next_config(vf,height,width,d_height,d_width,flags,outfmt);