From 57c6546a5dbf54bfb4c7467605d24318b4f6559f Mon Sep 17 00:00:00 2001 From: arpi Date: Tue, 4 Feb 2003 18:53:33 +0000 Subject: fixed palette support based on patch by Joey Parrish git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@9280 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpcodecs/vf_crop.c | 1 + libmpcodecs/vf_expand.c | 3 +++ libmpcodecs/vf_flip.c | 2 ++ libmpcodecs/vf_mirror.c | 1 + libmpcodecs/vf_rotate.c | 1 + 5 files changed, 8 insertions(+) (limited to 'libmpcodecs') diff --git a/libmpcodecs/vf_crop.c b/libmpcodecs/vf_crop.c index 27f3165102..f00cccadad 100644 --- a/libmpcodecs/vf_crop.c +++ b/libmpcodecs/vf_crop.c @@ -78,6 +78,7 @@ static int put_image(struct vf_instance_s* vf, mp_image_t *mpi){ dmpi->planes[0]=mpi->planes[0]+ vf->priv->crop_y*mpi->stride[0]+ vf->priv->crop_x*(mpi->bpp/8); + dmpi->planes[1]=mpi->planes[1]; // passthrough rgb8 palette } dmpi->stride[0]=mpi->stride[0]; dmpi->width=mpi->width; diff --git a/libmpcodecs/vf_expand.c b/libmpcodecs/vf_expand.c index 64ab0e6369..653e156972 100644 --- a/libmpcodecs/vf_expand.c +++ b/libmpcodecs/vf_expand.c @@ -228,6 +228,8 @@ static int put_image(struct vf_instance_s* vf, mp_image_t *mpi){ if(vf->priv->osd) draw_osd(vf,mpi->w,mpi->h); #endif // we've used DR, so we're ready... + if(!(mpi->flags&MP_IMGFLAG_PLANAR)) + vf->priv->dmpi->planes[1] = mpi->planes[1]; // passthrough rgb8 palette return vf_next_put_image(vf,vf->priv->dmpi); } @@ -255,6 +257,7 @@ static int put_image(struct vf_instance_s* vf, mp_image_t *mpi){ vf->priv->exp_y*vf->priv->dmpi->stride[0]+vf->priv->exp_x*(vf->priv->dmpi->bpp/8), mpi->planes[0], mpi->w*(vf->priv->dmpi->bpp/8), mpi->h, vf->priv->dmpi->stride[0],mpi->stride[0]); + vf->priv->dmpi->planes[1] = mpi->planes[1]; // passthrough rgb8 palette } #ifdef OSD_SUPPORT if(vf->priv->osd) draw_osd(vf,mpi->w,mpi->h); diff --git a/libmpcodecs/vf_flip.c b/libmpcodecs/vf_flip.c index b63472a1b2..78706aff2f 100644 --- a/libmpcodecs/vf_flip.c +++ b/libmpcodecs/vf_flip.c @@ -48,6 +48,8 @@ static void get_image(struct vf_instance_s* vf, mp_image_t *mpi){ static int put_image(struct vf_instance_s* vf, mp_image_t *mpi){ if(mpi->flags&MP_IMGFLAG_DIRECT){ // we've used DR, so we're ready... + if(!(mpi->flags&MP_IMGFLAG_PLANAR)) + ((mp_image_t*)mpi->priv)->planes[1] = mpi->planes[1]; // passthrough rgb8 palette return vf_next_put_image(vf,(mp_image_t*)mpi->priv); } diff --git a/libmpcodecs/vf_mirror.c b/libmpcodecs/vf_mirror.c index 8e12788779..a16a062ab4 100644 --- a/libmpcodecs/vf_mirror.c +++ b/libmpcodecs/vf_mirror.c @@ -90,6 +90,7 @@ static int put_image(struct vf_instance_s* vf, mp_image_t *mpi){ mirror(dmpi->planes[0],mpi->planes[0], dmpi->stride[0],mpi->stride[0], dmpi->w,dmpi->h,dmpi->bpp>>3,mpi->imgfmt); + dmpi->planes[1]=mpi->planes[1]; // passthrough rgb8 palette } return vf_next_put_image(vf,dmpi); diff --git a/libmpcodecs/vf_rotate.c b/libmpcodecs/vf_rotate.c index 96f212eb66..fb5e7e96e8 100644 --- a/libmpcodecs/vf_rotate.c +++ b/libmpcodecs/vf_rotate.c @@ -91,6 +91,7 @@ static int put_image(struct vf_instance_s* vf, mp_image_t *mpi){ rotate(dmpi->planes[0],mpi->planes[0], dmpi->stride[0],mpi->stride[0], dmpi->w,dmpi->h,dmpi->bpp>>3,vf->priv->direction); + dmpi->planes[1] = mpi->planes[1]; // passthrough rgb8 palette } return vf_next_put_image(vf,dmpi); -- cgit v1.2.3