Mercurial > mplayer.hg
diff libmpcodecs/vf_unsharp.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 | 8fa2f43cb760 |
| children | c4287381e2ea |
line wrap: on
line diff
--- a/libmpcodecs/vf_unsharp.c Fri Jan 14 13:36:48 2011 +0000 +++ b/libmpcodecs/vf_unsharp.c Fri Jan 14 22:10:21 2011 +0000 @@ -83,52 +83,52 @@ int32_t halfscale = 1 << ((stepsX+stepsY)*2-1); if( !fp->amount ) { - if( src == dst ) - return; - if( dstStride == srcStride ) - fast_memcpy( dst, src, srcStride*height ); - else - for( y=0; y<height; y++, dst+=dstStride, src+=srcStride ) - fast_memcpy( dst, src, width ); - return; + if( src == dst ) + return; + if( dstStride == srcStride ) + fast_memcpy( dst, src, srcStride*height ); + else + for( y=0; y<height; y++, dst+=dstStride, src+=srcStride ) + fast_memcpy( dst, src, width ); + return; } for( y=0; y<2*stepsY; y++ ) - memset( SC[y], 0, sizeof(SC[y][0]) * (width+2*stepsX) ); + memset( SC[y], 0, sizeof(SC[y][0]) * (width+2*stepsX) ); for( y=-stepsY; y<height+stepsY; y++ ) { - if( y < height ) src2 = src; - memset( SR, 0, sizeof(SR[0]) * (2*stepsX-1) ); - for( x=-stepsX; x<width+stepsX; x++ ) { - Tmp1 = x<=0 ? src2[0] : x>=width ? src2[width-1] : src2[x]; - for( z=0; z<stepsX*2; z+=2 ) { - Tmp2 = SR[z+0] + Tmp1; SR[z+0] = Tmp1; - Tmp1 = SR[z+1] + Tmp2; SR[z+1] = Tmp2; - } - for( z=0; z<stepsY*2; z+=2 ) { - Tmp2 = SC[z+0][x+stepsX] + Tmp1; SC[z+0][x+stepsX] = Tmp1; - Tmp1 = SC[z+1][x+stepsX] + Tmp2; SC[z+1][x+stepsX] = Tmp2; - } - if( x>=stepsX && y>=stepsY ) { - uint8_t* srx = src - stepsY*srcStride + x - stepsX; - uint8_t* dsx = dst - stepsY*dstStride + x - stepsX; + if( y < height ) src2 = src; + memset( SR, 0, sizeof(SR[0]) * (2*stepsX-1) ); + for( x=-stepsX; x<width+stepsX; x++ ) { + Tmp1 = x<=0 ? src2[0] : x>=width ? src2[width-1] : src2[x]; + for( z=0; z<stepsX*2; z+=2 ) { + Tmp2 = SR[z+0] + Tmp1; SR[z+0] = Tmp1; + Tmp1 = SR[z+1] + Tmp2; SR[z+1] = Tmp2; + } + for( z=0; z<stepsY*2; z+=2 ) { + Tmp2 = SC[z+0][x+stepsX] + Tmp1; SC[z+0][x+stepsX] = Tmp1; + Tmp1 = SC[z+1][x+stepsX] + Tmp2; SC[z+1][x+stepsX] = Tmp2; + } + if( x>=stepsX && y>=stepsY ) { + uint8_t* srx = src - stepsY*srcStride + x - stepsX; + uint8_t* dsx = dst - stepsY*dstStride + x - stepsX; - res = (int32_t)*srx + ( ( ( (int32_t)*srx - (int32_t)((Tmp1+halfscale) >> scalebits) ) * amount ) >> 16 ); - *dsx = res>255 ? 255 : res<0 ? 0 : (uint8_t)res; - } - } - if( y >= 0 ) { - dst += dstStride; - src += srcStride; - } + res = (int32_t)*srx + ( ( ( (int32_t)*srx - (int32_t)((Tmp1+halfscale) >> scalebits) ) * amount ) >> 16 ); + *dsx = res>255 ? 255 : res<0 ? 0 : (uint8_t)res; + } + } + if( y >= 0 ) { + dst += dstStride; + src += srcStride; + } } } //===========================================================================// static int config( struct vf_instance *vf, - int width, int height, int d_width, int d_height, - unsigned int flags, unsigned int outfmt ) { + int width, int height, int d_width, int d_height, + unsigned int flags, unsigned int outfmt ) { int z, stepsX, stepsY; FilterParam *fp; @@ -143,7 +143,7 @@ stepsX = fp->msizeX/2; stepsY = fp->msizeY/2; for( z=0; z<2*stepsY; z++ ) - fp->SC[z] = av_malloc(sizeof(*(fp->SC[z])) * (width+2*stepsX)); + fp->SC[z] = av_malloc(sizeof(*(fp->SC[z])) * (width+2*stepsX)); fp = &vf->priv->chromaParam; effect = fp->amount == 0 ? "don't touch" : fp->amount < 0 ? "blur" : "sharpen"; @@ -152,7 +152,7 @@ stepsX = fp->msizeX/2; stepsY = fp->msizeY/2; for( z=0; z<2*stepsY; z++ ) - fp->SC[z] = av_malloc(sizeof(*(fp->SC[z])) * (width+2*stepsX)); + fp->SC[z] = av_malloc(sizeof(*(fp->SC[z])) * (width+2*stepsX)); return vf_next_config( vf, width, height, d_width, d_height, flags, outfmt ); } @@ -161,9 +161,9 @@ static void get_image( struct vf_instance *vf, mp_image_t *mpi ) { if( mpi->flags & MP_IMGFLAG_PRESERVE ) - return; // don't change + return; // don't change if( mpi->imgfmt!=vf->priv->outfmt ) - return; // colorspace differ + return; // colorspace differ vf->dmpi = vf_get_image( vf->next, mpi->imgfmt, mpi->type, mpi->flags, mpi->w, mpi->h ); mpi->planes[0] = vf->dmpi->planes[0]; @@ -172,8 +172,8 @@ if( mpi->flags & MP_IMGFLAG_PLANAR ) { mpi->planes[1] = vf->dmpi->planes[1]; mpi->planes[2] = vf->dmpi->planes[2]; - mpi->stride[1] = vf->dmpi->stride[1]; - mpi->stride[2] = vf->dmpi->stride[2]; + mpi->stride[1] = vf->dmpi->stride[1]; + mpi->stride[2] = vf->dmpi->stride[2]; } mpi->flags |= MP_IMGFLAG_DIRECT; } @@ -182,8 +182,8 @@ mp_image_t *dmpi; if( !(mpi->flags & MP_IMGFLAG_DIRECT) ) - // no DR, so get a new image! hope we'll get DR buffer: - vf->dmpi = vf_get_image( vf->next,vf->priv->outfmt, MP_IMGTYPE_TEMP, MP_IMGFLAG_ACCEPT_STRIDE, mpi->w, mpi->h); + // no DR, so get a new image! hope we'll get DR buffer: + vf->dmpi = vf_get_image( vf->next,vf->priv->outfmt, MP_IMGTYPE_TEMP, MP_IMGFLAG_ACCEPT_STRIDE, mpi->w, mpi->h); dmpi= vf->dmpi; unsharp( dmpi->planes[0], mpi->planes[0], dmpi->stride[0], mpi->stride[0], mpi->w, mpi->h, &vf->priv->lumaParam ); @@ -194,11 +194,11 @@ #if HAVE_MMX if(gCpuCaps.hasMMX) - __asm__ volatile ("emms\n\t"); + __asm__ volatile ("emms\n\t"); #endif #if HAVE_MMX2 if(gCpuCaps.hasMMX2) - __asm__ volatile ("sfence\n\t"); + __asm__ volatile ("sfence\n\t"); #endif return vf_next_put_image( vf, dmpi, pts); @@ -212,13 +212,13 @@ fp = &vf->priv->lumaParam; for( z=0; z<sizeof(fp->SC)/sizeof(fp->SC[0]); z++ ) { - av_free( fp->SC[z] ); - fp->SC[z] = NULL; + av_free( fp->SC[z] ); + fp->SC[z] = NULL; } fp = &vf->priv->chromaParam; for( z=0; z<sizeof(fp->SC)/sizeof(fp->SC[0]); z++ ) { - av_free( fp->SC[z] ); - fp->SC[z] = NULL; + av_free( fp->SC[z] ); + fp->SC[z] = NULL; } free( vf->priv ); @@ -232,7 +232,7 @@ case IMGFMT_YV12: case IMGFMT_I420: case IMGFMT_IYUV: - return vf_next_query_format( vf, vf->priv->outfmt ); + return vf_next_query_format( vf, vf->priv->outfmt ); } return 0; } @@ -280,32 +280,32 @@ memset( vf->priv, 0, sizeof(struct vf_priv_s) ); if( args ) { - char *args2 = strchr( args, 'l' ); - if( args2 ) - parse( &vf->priv->lumaParam, args2 ); - else { - vf->priv->lumaParam.amount = - vf->priv->lumaParam.msizeX = - vf->priv->lumaParam.msizeY = 0; - } + char *args2 = strchr( args, 'l' ); + if( args2 ) + parse( &vf->priv->lumaParam, args2 ); + else { + vf->priv->lumaParam.amount = + vf->priv->lumaParam.msizeX = + vf->priv->lumaParam.msizeY = 0; + } - args2 = strchr( args, 'c' ); - if( args2 ) - parse( &vf->priv->chromaParam, args2 ); - else { - vf->priv->chromaParam.amount = - vf->priv->chromaParam.msizeX = - vf->priv->chromaParam.msizeY = 0; - } + args2 = strchr( args, 'c' ); + if( args2 ) + parse( &vf->priv->chromaParam, args2 ); + else { + vf->priv->chromaParam.amount = + vf->priv->chromaParam.msizeX = + vf->priv->chromaParam.msizeY = 0; + } - if( !vf->priv->lumaParam.msizeX && !vf->priv->chromaParam.msizeX ) - return 0; // nothing to do + if( !vf->priv->lumaParam.msizeX && !vf->priv->chromaParam.msizeX ) + return 0; // nothing to do } // check csp: vf->priv->outfmt = vf_match_csp( &vf->next, fmt_list, IMGFMT_YV12 ); if( !vf->priv->outfmt ) { - uninit( vf ); + uninit( vf ); return 0; // no csp match :( }
