Hello!
On Fri, Jul 19, 2013 at 9:22 AM, Kostya Shishkov
<[email protected]>wrote:
> ---
> It's good enough for the only file I care about but maybe it's useful for
> the
> others too.
>
> The source can benefit from heavy diegoing (because it's mostly TwinVQ
> decoder
> bits that were tweaked to be close to the reference decoder, or the ones
> that
> had to be duplicated because of the different bitstream reader).
>
Cool!
I have just one comment right now, I'll post a full review soon:
> +/**
> + * Sum to data a periodic peak of a given period, width and shape.
> + *
> + * @param period the period of the peak divised by 400.0
> + */
> +static void add_peak(float period, int width, const float *shape,
> + float ppc_gain, float *speech, int len)
> +{
> + int i, j;
> +
> + const float *shape_end = shape + len;
> + int center;
> +
> + // First peak centered around zero
> + for (i = 0; i < width/2; i++)
> + speech[i] += ppc_gain * *shape++;
> +
> + for (i = 1; i < ROUNDED_DIV(len,width) ; i++) {
> + center = (int)(i * period + 0.5);
> + for (j = width/-2; j < (width-1)/2+1; j++)
> + speech[j+center] += ppc_gain * *shape++;
> + }
> +
> + // For the last block, be careful not to go beyond the end of the
> buffer
> + center = (int)(i * period + 0.5);
> + for (j = -width/2; j < (width - 1)/2 + 1 && shape < shape_end; j++)
> + speech[j+center] += ppc_gain * *shape++;
> +}
>
> This function looks very similar to the twinvq one (besides that the
period is not multiplied by 400). Did you try to reuse it?
-Vitor
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel