summaryrefslogtreecommitdiffstats
path: root/libmpcodecs/vf_palette.c
diff options
context:
space:
mode:
authorarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-05-30 00:26:23 +0000
committerarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-05-30 00:26:23 +0000
commit38e810acbad702861f9ee2104370b2988b82d850 (patch)
tree3d5361b8876f37c5f77703a702d830f5cc5c3d66 /libmpcodecs/vf_palette.c
parentbe0755b06b563a3707a602f007085e77d08339e6 (diff)
downloadmpv-38e810acbad702861f9ee2104370b2988b82d850.tar.bz2
mpv-38e810acbad702861f9ee2104370b2988b82d850.tar.xz
grayscaled palette support
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@6233 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpcodecs/vf_palette.c')
-rw-r--r--libmpcodecs/vf_palette.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/libmpcodecs/vf_palette.c b/libmpcodecs/vf_palette.c
index f858757a3c..3aae0fb8a2 100644
--- a/libmpcodecs/vf_palette.c
+++ b/libmpcodecs/vf_palette.c
@@ -29,6 +29,8 @@ static unsigned int rgb_list[]={
0
};
+static unsigned int gray_pal[256];
+
static unsigned int find_best(struct vf_instance_s* vf, unsigned int fmt){
unsigned int best=0;
int ret;
@@ -73,6 +75,8 @@ static void put_image(struct vf_instance_s* vf, mp_image_t *mpi){
MP_IMGTYPE_TEMP, MP_IMGFLAG_ACCEPT_STRIDE,
mpi->w, mpi->h);
+ if(!mpi->planes[1]) mpi->planes[1]=gray_pal;
+
if(mpi->w==mpi->stride[0] && dmpi->w*(dmpi->bpp>>3)==dmpi->stride[0]){
// no stride conversion needed
switch(dmpi->imgfmt&255){
@@ -119,10 +123,12 @@ static int query_format(struct vf_instance_s* vf, unsigned int fmt){
}
static int open(vf_instance_t *vf, char* args){
+ unsigned int i;
vf->config=config;
vf->put_image=put_image;
vf->query_format=query_format;
vf->priv=malloc(sizeof(struct vf_priv_s));
+ for(i=0;i<256;i++) gray_pal[i]=0x01010101*i;
return 1;
}