extra/genbh92lobe.m
Go to the documentation of this file.
1 function y = genbh92lobe(x)
2 % Calculate transform of the Blackman-Harris 92dB window
3 % x: bin positions to compute (real values), y: transform values
4 N = 512;
5 f = x*pi*2/N; % frequency sampling
6 df = 2*pi/N;
7 y = zeros(size(x)); % initialize window
8 consts = [.35875, .48829, .14128, .01168]; % window constants
9 for m=0:3
10  y = y + consts(m+1)/2*(D(f-df*m,N)+D(f+df*m,N)); % sum Dirichlet kernels
11 end
12 y = y/N/consts(1); % normalize
13 end
14 function y = D(x,N)
15 % Calculate rectangular window transform (Dirichlet kernel)
16 y = sin(N*x/2)./sin(x/2);
17 y(find(y~=y))=N; % avoid NaN if x==0
18 end
N, 1 zeros()
initialize window consts
it can be given away to ff_start_frame *A reference passed to cur_buf_copy and partial_buf are used by libavfilter internally and must not be accessed by filters Reference permissions The AVFilterBufferRef structure has a perms field that describes what the code that owns the reference is allowed to do to the buffer data Different references for the same buffer can have different permissions For video filters that implement the deprecated start_frame draw_slice end_frame the permissions only apply to the parts of the buffer that have already been covered by the draw_slice method The value is a binary OR of the following constants
window constants for m
end end
D(D(float, sse)
#define N
Definition: vf_pp7.c:200
Discrete Time axis x
frequency sampling df
overlapping window(triangular window to avoid too much overlapping) ovidx
int size
the buffer and buffer reference mechanism is intended to avoid
function y
these buffered frames must be flushed immediately if a new input produces new the filter must not call request_frame to get more It must just process the frame or queue it The task of requesting more frames is left to the filter s request_frame method or the application If a filter has several the filter must be ready for frames arriving randomly on any input any filter with several inputs will most likely require some kind of queuing mechanism It is perfectly acceptable to have a limited queue and to drop frames when the inputs are too unbalanced request_frame This method is called when a frame is wanted on an output For an it should directly call filter_frame on the corresponding output For a if there are queued frames already one of these frames should be pushed If the filter should request a frame on one of its repeatedly until at least one frame has been pushed Return values