void gaussblur_apply(VJFrame *frame, int radius, int strength, int quality ) { uint8_t *A = frame->data[3]; const unsigned int width = frame->width; const unsigned int height = frame->height; const int len = frame->len; if( last_radius != radius || last_strength != strength || last_quality != quality ) { if( gaussfilter->filter_context ) { sws_freeContext( gaussfilter->filter_context ); } if( gaussfilter_init( width, height, radius, strength, quality ) == 0 ) return; last_radius = radius; last_strength = strength; last_quality = quality; } veejay_memcpy( temp, A, len ); gaussblur( A, width, temp, width, width, height, gaussfilter->filter_context ); }
void main(void) { vec2 d=vec2(0.0, 1.0/scrnsz.y); gl_FragColor=vec4(gaussblur(g_texcoord).rgb,1.0); }