[libav-devel] [PATCH 1/2] dca: Add math helpers.

Janne Grunau janne-libav at jannau.net
Tue Dec 15 22:07:33 CET 2015


On 2015-12-03 13:45:10 +0100, Alexandra Hájková wrote:
> They will be used by the integer core decoder.
> ---
>  libavcodec/dcamath.h | 42 ++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 42 insertions(+)
>  create mode 100644 libavcodec/dcamath.h
> 
> diff --git a/libavcodec/dcamath.h b/libavcodec/dcamath.h
> new file mode 100644
> index 0000000..e21eb07
> --- /dev/null
> +++ b/libavcodec/dcamath.h
> @@ -0,0 +1,42 @@
> +/*
> + * This file is part of Libav.
> + *
> + * Libav is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU Lesser General Public
> + * License as published by the Free Software Foundation; either
> + * version 2.1 of the License, or (at your option) any later version.
> + *
> + * Libav is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> + * Lesser General Public License for more details.
> + *
> + * You should have received a copy of the GNU Lesser General Public
> + * License along with Libav; if not, write to the Free Software
> + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
> + */
> +
> +#include "libavutil/common.h"
> +
> +
> +// clip a signed integer into the (-2^23), (2^23-1) range
> +static inline int dca_clip23(int a)
> +{
> +    return av_clip_intp2(a, 23);
> +}
> +
> +static inline int32_t dca_norm(int64_t a, int bits)
> +{
> +    if (bits > 0)
> +        return (int32_t)((a + (INT64_C(1) << (bits - 1))) >> bits);
> +    else
> +        return (int32_t)a;
> +}
> +
> +static inline int64_t dca_round(int64_t a, int bits)
> +{
> +    if (bits > 0)
> +        return (a + (INT64_C(1) << (bits - 1))) & ~((INT64_C(1) << bits) - 1);
> +    else
> +        return a;
> +}

dca_round is unused in "dca: change the core to work with integer 
coefficients". Will the functions be used somewhere else or just in 
dequantize_c()? If they are just used in dequantize_c() it would make 
sense to move dca_clip23() and and dca_norm() to dcadsp.c

Janne


More information about the libav-devel mailing list