lavfi/ebur128: advance pointer to samples
Correct the advancement of a pointer to skip over LFE samples as intended in the loudness computation. This suggested patch is 3 of 3 for Ticket #2144 "libavfilter ebur128 loudness inaccuracy, irregular time interval, LFE interference". This suggested patch supersedes the contribution of January 15, 2013 in the thread “[PATCH] lavfi: EBU R.128 irreg time, ch weights, skip LFE” which combined multiple fixes in one batch.
This commit is contained in:
parent
de21e6736e
commit
b64de24fd7
@ -478,6 +478,8 @@ static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *insamples)
|
|||||||
for (ch = 0; ch < nb_channels; ch++) {
|
for (ch = 0; ch < nb_channels; ch++) {
|
||||||
double bin;
|
double bin;
|
||||||
|
|
||||||
|
ebur128->x[ch * 3] = *samples++; // set X[i]
|
||||||
|
|
||||||
if (!ebur128->ch_weighting[ch])
|
if (!ebur128->ch_weighting[ch])
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@ -491,8 +493,6 @@ static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *insamples)
|
|||||||
- dst[1]*name##_A1 - dst[2]*name##_A2; \
|
- dst[1]*name##_A1 - dst[2]*name##_A2; \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
ebur128->x[ch * 3] = *samples++; // set X[i]
|
|
||||||
|
|
||||||
// TODO: merge both filters in one?
|
// TODO: merge both filters in one?
|
||||||
FILTER(y, x, PRE); // apply pre-filter
|
FILTER(y, x, PRE); // apply pre-filter
|
||||||
ebur128->x[ch * 3 + 2] = ebur128->x[ch * 3 + 1];
|
ebur128->x[ch * 3 + 2] = ebur128->x[ch * 3 + 1];
|
||||||
|
Loading…
Reference in New Issue
Block a user