diff libmpcodecs/vf_boxblur.c @ 32702:7af3e6f901fd

Convert some tabs to whitespace to allow using MPlayer filter sourcecode in FFmpeg.
author cehoyos
date Fri, 14 Jan 2011 22:10:21 +0000
parents a972c1a4a012
children
line wrap: on
line diff
--- a/libmpcodecs/vf_boxblur.c	Fri Jan 14 13:36:48 2011 +0000
+++ b/libmpcodecs/vf_boxblur.c	Fri Jan 14 22:10:21 2011 +0000
@@ -33,13 +33,13 @@
 //===========================================================================//
 
 typedef struct FilterParam{
-	int radius;
-	int power;
+        int radius;
+        int power;
 }FilterParam;
 
 struct vf_priv_s {
-	FilterParam lumaParam;
-	FilterParam chromaParam;
+        FilterParam lumaParam;
+        FilterParam chromaParam;
 };
 
 
@@ -48,158 +48,158 @@
 
 static int config(struct vf_instance *vf,
         int width, int height, int d_width, int d_height,
-	unsigned int flags, unsigned int outfmt){
+        unsigned int flags, unsigned int outfmt){
 
-	return vf_next_config(vf,width,height,d_width,d_height,flags,outfmt);
+        return vf_next_config(vf,width,height,d_width,d_height,flags,outfmt);
 }
 
 static inline void blur(uint8_t *dst, uint8_t *src, int w, int radius, int dstStep, int srcStep){
-	int x;
-	const int length= radius*2 + 1;
-	const int inv= ((1<<16) + length/2)/length;
+        int x;
+        const int length= radius*2 + 1;
+        const int inv= ((1<<16) + length/2)/length;
 
-	int sum= 0;
+        int sum= 0;
 
-	for(x=0; x<radius; x++){
-		sum+= src[x*srcStep]<<1;
-	}
-	sum+= src[radius*srcStep];
+        for(x=0; x<radius; x++){
+                sum+= src[x*srcStep]<<1;
+        }
+        sum+= src[radius*srcStep];
 
-	for(x=0; x<=radius; x++){
-		sum+= src[(radius+x)*srcStep] - src[(radius-x)*srcStep];
-		dst[x*dstStep]= (sum*inv + (1<<15))>>16;
-	}
+        for(x=0; x<=radius; x++){
+                sum+= src[(radius+x)*srcStep] - src[(radius-x)*srcStep];
+                dst[x*dstStep]= (sum*inv + (1<<15))>>16;
+        }
 
-	for(; x<w-radius; x++){
-		sum+= src[(radius+x)*srcStep] - src[(x-radius-1)*srcStep];
-		dst[x*dstStep]= (sum*inv + (1<<15))>>16;
-	}
+        for(; x<w-radius; x++){
+                sum+= src[(radius+x)*srcStep] - src[(x-radius-1)*srcStep];
+                dst[x*dstStep]= (sum*inv + (1<<15))>>16;
+        }
 
-	for(; x<w; x++){
-		sum+= src[(2*w-radius-x-1)*srcStep] - src[(x-radius-1)*srcStep];
-		dst[x*dstStep]= (sum*inv + (1<<15))>>16;
-	}
+        for(; x<w; x++){
+                sum+= src[(2*w-radius-x-1)*srcStep] - src[(x-radius-1)*srcStep];
+                dst[x*dstStep]= (sum*inv + (1<<15))>>16;
+        }
 }
 
 static inline void blur2(uint8_t *dst, uint8_t *src, int w, int radius, int power, int dstStep, int srcStep){
-	uint8_t temp[2][4096];
-	uint8_t *a= temp[0], *b=temp[1];
+        uint8_t temp[2][4096];
+        uint8_t *a= temp[0], *b=temp[1];
 
-	if(radius){
-		blur(a, src, w, radius, 1, srcStep);
-		for(; power>2; power--){
-			uint8_t *c;
-			blur(b, a, w, radius, 1, 1);
-			c=a; a=b; b=c;
-		}
-		if(power>1)
-			blur(dst, a, w, radius, dstStep, 1);
-		else{
-			int i;
-			for(i=0; i<w; i++)
-				dst[i*dstStep]= a[i];
-		}
-	}else{
-		int i;
-		for(i=0; i<w; i++)
-			dst[i*dstStep]= src[i*srcStep];
-	}
+        if(radius){
+                blur(a, src, w, radius, 1, srcStep);
+                for(; power>2; power--){
+                        uint8_t *c;
+                        blur(b, a, w, radius, 1, 1);
+                        c=a; a=b; b=c;
+                }
+                if(power>1)
+                        blur(dst, a, w, radius, dstStep, 1);
+                else{
+                        int i;
+                        for(i=0; i<w; i++)
+                                dst[i*dstStep]= a[i];
+                }
+        }else{
+                int i;
+                for(i=0; i<w; i++)
+                        dst[i*dstStep]= src[i*srcStep];
+        }
 }
 
 static void hBlur(uint8_t *dst, uint8_t *src, int w, int h, int dstStride, int srcStride, int radius, int power){
-	int y;
+        int y;
 
-	if(radius==0 && dst==src) return;
+        if(radius==0 && dst==src) return;
 
-	for(y=0; y<h; y++){
-		blur2(dst + y*dstStride, src + y*srcStride, w, radius, power, 1, 1);
-	}
+        for(y=0; y<h; y++){
+                blur2(dst + y*dstStride, src + y*srcStride, w, radius, power, 1, 1);
+        }
 }
 
 //FIXME optimize (x before y !!!)
 static void vBlur(uint8_t *dst, uint8_t *src, int w, int h, int dstStride, int srcStride, int radius, int power){
-	int x;
+        int x;
 
-	if(radius==0 && dst==src) return;
+        if(radius==0 && dst==src) return;
 
-	for(x=0; x<w; x++){
-		blur2(dst + x, src + x, h, radius, power, dstStride, srcStride);
-	}
+        for(x=0; x<w; x++){
+                blur2(dst + x, src + x, h, radius, power, dstStride, srcStride);
+        }
 }
 
 static int put_image(struct vf_instance *vf, mp_image_t *mpi, double pts){
-	int cw= mpi->w >> mpi->chroma_x_shift;
-	int ch= mpi->h >> mpi->chroma_y_shift;
+        int cw= mpi->w >> mpi->chroma_x_shift;
+        int ch= mpi->h >> mpi->chroma_y_shift;
 
-	mp_image_t *dmpi=vf_get_image(vf->next,mpi->imgfmt,
-		MP_IMGTYPE_TEMP, MP_IMGFLAG_ACCEPT_STRIDE | MP_IMGFLAG_READABLE,
-		mpi->w,mpi->h);
+        mp_image_t *dmpi=vf_get_image(vf->next,mpi->imgfmt,
+                MP_IMGTYPE_TEMP, MP_IMGFLAG_ACCEPT_STRIDE | MP_IMGFLAG_READABLE,
+                mpi->w,mpi->h);
 
-	assert(mpi->flags&MP_IMGFLAG_PLANAR);
+        assert(mpi->flags&MP_IMGFLAG_PLANAR);
 
-	hBlur(dmpi->planes[0], mpi->planes[0], mpi->w,mpi->h,
-		dmpi->stride[0], mpi->stride[0], vf->priv->lumaParam.radius, vf->priv->lumaParam.power);
-	hBlur(dmpi->planes[1], mpi->planes[1], cw,ch,
-		dmpi->stride[1], mpi->stride[1], vf->priv->chromaParam.radius, vf->priv->chromaParam.power);
-	hBlur(dmpi->planes[2], mpi->planes[2], cw,ch,
-		dmpi->stride[2], mpi->stride[2], vf->priv->chromaParam.radius, vf->priv->chromaParam.power);
+        hBlur(dmpi->planes[0], mpi->planes[0], mpi->w,mpi->h,
+                dmpi->stride[0], mpi->stride[0], vf->priv->lumaParam.radius, vf->priv->lumaParam.power);
+        hBlur(dmpi->planes[1], mpi->planes[1], cw,ch,
+                dmpi->stride[1], mpi->stride[1], vf->priv->chromaParam.radius, vf->priv->chromaParam.power);
+        hBlur(dmpi->planes[2], mpi->planes[2], cw,ch,
+                dmpi->stride[2], mpi->stride[2], vf->priv->chromaParam.radius, vf->priv->chromaParam.power);
 
-	vBlur(dmpi->planes[0], dmpi->planes[0], mpi->w,mpi->h,
-		dmpi->stride[0], dmpi->stride[0], vf->priv->lumaParam.radius, vf->priv->lumaParam.power);
-	vBlur(dmpi->planes[1], dmpi->planes[1], cw,ch,
-		dmpi->stride[1], dmpi->stride[1], vf->priv->chromaParam.radius, vf->priv->chromaParam.power);
-	vBlur(dmpi->planes[2], dmpi->planes[2], cw,ch,
-		dmpi->stride[2], dmpi->stride[2], vf->priv->chromaParam.radius, vf->priv->chromaParam.power);
+        vBlur(dmpi->planes[0], dmpi->planes[0], mpi->w,mpi->h,
+                dmpi->stride[0], dmpi->stride[0], vf->priv->lumaParam.radius, vf->priv->lumaParam.power);
+        vBlur(dmpi->planes[1], dmpi->planes[1], cw,ch,
+                dmpi->stride[1], dmpi->stride[1], vf->priv->chromaParam.radius, vf->priv->chromaParam.power);
+        vBlur(dmpi->planes[2], dmpi->planes[2], cw,ch,
+                dmpi->stride[2], dmpi->stride[2], vf->priv->chromaParam.radius, vf->priv->chromaParam.power);
 
-	return vf_next_put_image(vf,dmpi, pts);
+        return vf_next_put_image(vf,dmpi, pts);
 }
 
 //===========================================================================//
 
 static int query_format(struct vf_instance *vf, unsigned int fmt){
-	switch(fmt)
-	{
-	case IMGFMT_YV12:
-	case IMGFMT_I420:
-	case IMGFMT_IYUV:
-	case IMGFMT_YVU9:
-	case IMGFMT_444P:
-	case IMGFMT_422P:
-	case IMGFMT_411P:
-		return vf_next_query_format(vf, fmt);
-	}
-	return 0;
+        switch(fmt)
+        {
+        case IMGFMT_YV12:
+        case IMGFMT_I420:
+        case IMGFMT_IYUV:
+        case IMGFMT_YVU9:
+        case IMGFMT_444P:
+        case IMGFMT_422P:
+        case IMGFMT_411P:
+                return vf_next_query_format(vf, fmt);
+        }
+        return 0;
 }
 
 static int vf_open(vf_instance_t *vf, char *args){
-	int e;
+        int e;
 
-	vf->config=config;
-	vf->put_image=put_image;
-//	vf->get_image=get_image;
-	vf->query_format=query_format;
-	vf->priv=malloc(sizeof(struct vf_priv_s));
-	memset(vf->priv, 0, sizeof(struct vf_priv_s));
+        vf->config=config;
+        vf->put_image=put_image;
+//        vf->get_image=get_image;
+        vf->query_format=query_format;
+        vf->priv=malloc(sizeof(struct vf_priv_s));
+        memset(vf->priv, 0, sizeof(struct vf_priv_s));
 
-	if(args==NULL) return 0;
+        if(args==NULL) return 0;
 
-	e=sscanf(args, "%d:%d:%d:%d",
-		&vf->priv->lumaParam.radius,
-		&vf->priv->lumaParam.power,
-		&vf->priv->chromaParam.radius,
-		&vf->priv->chromaParam.power
-		);
+        e=sscanf(args, "%d:%d:%d:%d",
+                &vf->priv->lumaParam.radius,
+                &vf->priv->lumaParam.power,
+                &vf->priv->chromaParam.radius,
+                &vf->priv->chromaParam.power
+                );
 
-	if(e==2){
-		vf->priv->chromaParam.radius= vf->priv->lumaParam.radius;
-		vf->priv->chromaParam.power = vf->priv->lumaParam.power;
-	}else if(e!=4)
-		return 0;
+        if(e==2){
+                vf->priv->chromaParam.radius= vf->priv->lumaParam.radius;
+                vf->priv->chromaParam.power = vf->priv->lumaParam.power;
+        }else if(e!=4)
+                return 0;
 
-	if(vf->priv->lumaParam.radius < 0) return 0;
-	if(vf->priv->chromaParam.radius < 0) return 0;
+        if(vf->priv->lumaParam.radius < 0) return 0;
+        if(vf->priv->chromaParam.radius < 0) return 0;
 
-	return 1;
+        return 1;
 }
 
 const vf_info_t vf_info_boxblur = {