From 64554884c43a221c8d0165b090d5abaf0d0cbdcc Mon Sep 17 00:00:00 2001 From: Jack Date: Wed, 13 Mar 2013 00:59:01 +0800 Subject: [PATCH] remove duplicate blur Signed-off-by: Jack --- libav/avplay.c | 112 +------------------------------------------------ 1 file changed, 2 insertions(+), 110 deletions(-) diff --git a/libav/avplay.c b/libav/avplay.c index 21791cb..9ec444c 100644 --- a/libav/avplay.c +++ b/libav/avplay.c @@ -1988,116 +1988,7 @@ void* video_render_thrd(void *param) return NULL; } -/* 下面模糊代码来自ffmpeg. */ -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 sum= 0; - - for(x=0; x>16; - } - - for(; x>16; - } - - for(; x>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]; - - 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; idata[0], - frame->data[1], frame->data[2]}; - int linesize[3] = { frame->linesize[0], - frame->linesize[1], frame->linesize[2] }; - - data[0] = frame->data[0] + dy * fw + dx; - data[1] = frame->data[1] + ((dy / 2) * (fw / 2)) + dx / 2; - data[2] = frame->data[2] + ((dy / 2) * (fw / 2)) + dx / 2; - - hBlur(data[0], data[0], dcx, dcy, - linesize[0], linesize[0], 16, 2); - hBlur(data[1], data[1], cw, ch, - linesize[1], linesize[1], 16, 2); - hBlur(data[2], data[2], cw, ch, - linesize[2], linesize[2], 16, 2); - - vBlur(data[0], data[0], dcx, dcy, - linesize[0], linesize[0], 16, 2); - vBlur(data[1], data[1], cw, ch, - linesize[1], linesize[1], 16, 2); - vBlur(data[2], data[2], cw, ch, - linesize[2], linesize[2], 16, 2); -} - +/* 下面模糊代码来自ffdshow. */ void blurring(AVFrame* frame, int fw, int fh, int dx, int dy, int dcx, int dcy) { uint8_t* tempLogo = malloc(dcx * dcy); @@ -2218,6 +2109,7 @@ void blurring(AVFrame* frame, int fw, int fh, int dx, int dy, int dcx, int dcy) free(borderE); } +/* 下面alpha_blend代码来自vlc. */ void alpha_blend(AVFrame* frame, uint8_t* rgba, int fw, int fh, int rgba_w, int rgba_h, int x, int y) {