From b64de24fd7a5ac4889e5021a1bd4086ba4d34abc Mon Sep 17 00:00:00 2001 From: "sedacca@comcast.net" Date: Fri, 18 Jan 2013 05:14:01 +0000 Subject: [PATCH] lavfi/ebur128: advance pointer to samples MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- libavfilter/f_ebur128.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavfilter/f_ebur128.c b/libavfilter/f_ebur128.c index 02657673f8..66cc133704 100644 --- a/libavfilter/f_ebur128.c +++ b/libavfilter/f_ebur128.c @@ -478,6 +478,8 @@ static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *insamples) for (ch = 0; ch < nb_channels; ch++) { double bin; + ebur128->x[ch * 3] = *samples++; // set X[i] + if (!ebur128->ch_weighting[ch]) continue; @@ -491,8 +493,6 @@ static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *insamples) - dst[1]*name##_A1 - dst[2]*name##_A2; \ } while (0) - ebur128->x[ch * 3] = *samples++; // set X[i] - // TODO: merge both filters in one? FILTER(y, x, PRE); // apply pre-filter ebur128->x[ch * 3 + 2] = ebur128->x[ch * 3 + 1];