[FFmpeg-devel] [PATCH 1/3] lavfi: EBU R.128 irregular time
Clément Bœsch
ubitux at gmail.com
Sat Jan 19 01:29:50 CET 2013
On Fri, Jan 18, 2013 at 05:13:10AM +0000, sedacca at comcast.net wrote:
> Correct the time interval between logged data rows to the expected
> value of 100 milliseconds by naming a new loop counter variable
> to be distinct from loop counters for inner loops that
> inadvertently change the outer loop operation.
>
> This suggested patch is 1 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 patch.
>
>
> ---
> libavfilter/f_ebur128.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/libavfilter/f_ebur128.c b/libavfilter/f_ebur128.c
> index f9da80d..85fddad 100644
> --- a/libavfilter/f_ebur128.c
> +++ b/libavfilter/f_ebur128.c
> @@ -438,7 +438,7 @@ static int gate_update(struct integrator *integ, double power,
>
> static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *insamples)
> {
> - int i, ch;
> + int i, ch, idx_insample;
> AVFilterContext *ctx = inlink->dst;
> EBUR128Context *ebur128 = ctx->priv;
> const int nb_channels = ebur128->nb_channels;
> @@ -446,7 +446,7 @@ static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *insamples)
> const double *samples = (double *)insamples->data[0];
> AVFilterBufferRef *pic = ebur128->outpicref;
>
> - for (i = 0; i < nb_samples; i++) {
> + for (idx_insample = 0; idx_insample < nb_samples; idx_insample++) {
> const int bin_id_400 = ebur128->i400.cache_pos;
> const int bin_id_3000 = ebur128->i3000.cache_pos;
>
> @@ -505,7 +505,7 @@ static int filter_frame(AVFilterLink *inlink, AVFilterBufferRef *insamples)
> double power_400 = 1e-12, power_3000 = 1e-12;
> AVFilterLink *outlink = ctx->outputs[0];
> const int64_t pts = insamples->pts +
> - av_rescale_q(i, (AVRational){ 1, inlink->sample_rate },
> + av_rescale_q(idx_insample, (AVRational){ 1, inlink->sample_rate },
> outlink->time_base);
>
> ebur128->sample_count = 0;
LGTM, thanks
--
Clément B.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 490 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20130119/16de3878/attachment.asc>
More information about the ffmpeg-devel
mailing list