[FFmpeg-devel] [PATCH v2 1/2] avcodec: add Dolby E decoder
Moritz Barsnick
barsnick at gmx.net
Wed Jul 19 14:48:47 EEST 2017
On Sat, Jul 01, 2017 at 17:03:46 +0300, foo86 wrote:
> +static av_cold void init_tables(void)
> +{
> + int i, j;
> +
> + for (i = 1; i < 17; i++)
> + mantissa_tab1[i][0] = 1.0 / (1 << i - 1);
> +
> + for (i = 2; i < 16; i++) {
> + mantissa_tab1[i][1] = 1.0 / ((1 << i) - 1);
> + mantissa_tab1[i][2] = 0.5 / ((1 << i) - 1);
> + mantissa_tab1[i][3] = 0.25 / ((1 << i) - 1);
> + }
> +
> + mantissa_tab1[i][1] = 0.5 / (1 << 15);
> + mantissa_tab1[i][2] = 0.75 / (1 << 15);
> + mantissa_tab1[i][3] = 0.875 / (1 << 15);
> +
> + for (i = 1; i < 17; i++) {
> + mantissa_tab2[i][1] = mantissa_tab1[i][0] * 0.5;
> + mantissa_tab2[i][2] = mantissa_tab1[i][0] * 0.75;
> + mantissa_tab2[i][3] = mantissa_tab1[i][0] * 0.875;
> + for (j = 1; j < 4; j++)
> + mantissa_tab3[i][j] = 1.0 / (1 << i) + 1.0 / (1 << j) - 1.0 / (1 << i + j);
> + }
> +
> + mantissa_tab3[1][3] = 0.6875;
> +
> + for (i = 0; i < 25; i++) {
> + exponent_tab[i * 2 ] = 1.0 / (1 << i);
> + exponent_tab[i * 2 + 1] = M_SQRT1_2 / (1 << i);
> + }
The literal numerical constants used in the quoted section should
probably get 'f' suffixes, to force single precision operations. (Not
that it matters much in the init code.)
Moritz
More information about the ffmpeg-devel
mailing list