On Thu, Feb 26, 2015 at 01:41:08PM +0530, arwa arif wrote: > I have updated the patch. > > Can you please explain me which user options to include?
yes it could be similar to the vf_geq.c flter so something like -vf fftfilt=dc=128:lum="'(1 / (1 + exp(-Y/10.0+H/100.0)))'" could result in the equivalent of this: @@ -97,6 +98,13 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) av_rdft_end(fftfilt->rdft); + for (i = 0; i < rdft_hlen; i++) + { + for (j = 0; j < rdft_vlen; j++) + fftfilt->rdft_vdata[i * rdft_vlen + j] *= (1 / (1 + exp(-j/10.0+h/100.0))); + } + fftfilt->rdft_vdata[0] += rdft_hlen * rdft_vlen * 128; + /*Vertical pass - IRDFT*/ fftfilt->rdft = av_rdft_init(rdft_vbits, IDFT_C2R); further comments below [...] > + /* RDFT - Array initialization for Horizontal pass*/ > + for (rdft_hbits = 1; 1 << rdft_hbits < 2 * w; rdft_hbits++); > + rdft_hlen = 1 << rdft_hbits; > + fftfilt->rdft_hdata = av_malloc_array(h, rdft_hlen * sizeof(FFTSample)); > + > + /* RDFT - Array initialization for Vertical pass*/ > + for (rdft_vbits = 1; 1 << rdft_vbits < 2 * h; rdft_vbits++); without the 2 * the code will be faster > + rdft_vlen = 1 << rdft_vbits; > + fftfilt->rdft_vdata = av_malloc_array(w, rdft_hlen * rdft_vlen * > sizeof(FFTSample)); ftfilt->rdft_vdata = av_malloc_array(rdft_hlen, rdft_vlen * sizeof(FFTSample)); that is without the w also the av_malloc_array return values need to be checked, the functions could fail if there is npt enough memory [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Asymptotically faster algorithms should always be preferred if you have asymptotical amounts of data
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel