diff options
Diffstat (limited to 'video/filter/vf_mirror.c')
-rw-r--r-- | video/filter/vf_mirror.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/video/filter/vf_mirror.c b/video/filter/vf_mirror.c index e201edecd1..10ac5f308f 100644 --- a/video/filter/vf_mirror.c +++ b/video/filter/vf_mirror.c @@ -83,13 +83,10 @@ static void mirror(unsigned char* dst,unsigned char* src,int dststride,int srcst //===========================================================================// -static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ - mp_image_t *dmpi; - - // hope we'll get DR buffer: - dmpi=vf_get_image(vf->next,mpi->imgfmt, - MP_IMGTYPE_TEMP, MP_IMGFLAG_ACCEPT_STRIDE, - mpi->w, mpi->h); +static struct mp_image *filter(struct vf_instance *vf, struct mp_image *mpi) +{ + mp_image_t *dmpi = vf_alloc_out_image(vf); + mp_image_copy_attributes(dmpi, mpi); if(mpi->flags&MP_IMGFLAG_PLANAR){ mirror(dmpi->planes[0],mpi->planes[0], @@ -108,14 +105,15 @@ static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){ dmpi->planes[1]=mpi->planes[1]; // passthrough rgb8 palette } - return vf_next_put_image(vf,dmpi, pts); + talloc_free(mpi); + return dmpi; } //===========================================================================// static int vf_open(vf_instance_t *vf, char *args){ //vf->config=config; - vf->put_image=put_image; + vf->filter=filter; return 1; } |