summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-02-04 18:53:33 +0000
committerarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-02-04 18:53:33 +0000
commit57c6546a5dbf54bfb4c7467605d24318b4f6559f (patch)
tree8ca88184aa63ed6145c4fcfedbe939fba8395636
parent127530fe9fa003f01a9d634842d464d46129edbe (diff)
downloadmpv-57c6546a5dbf54bfb4c7467605d24318b4f6559f.tar.bz2
mpv-57c6546a5dbf54bfb4c7467605d24318b4f6559f.tar.xz
fixed palette support
based on patch by Joey Parrish <joey@nicewarrior.org> git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@9280 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r--libmpcodecs/vf_crop.c1
-rw-r--r--libmpcodecs/vf_expand.c3
-rw-r--r--libmpcodecs/vf_flip.c2
-rw-r--r--libmpcodecs/vf_mirror.c1
-rw-r--r--libmpcodecs/vf_rotate.c1
5 files changed, 8 insertions, 0 deletions
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);