diff options
-rw-r--r-- | libmpcodecs/vf.c | 4 | ||||
-rw-r--r-- | libmpcodecs/vf.h | 1 | ||||
-rw-r--r-- | libmpcodecs/vf_rotate.c | 3 |
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); |