[FFmpeg-devel] [PATCH] avcodec/pngenc: cast double to integer type to avoid problems with some AV_WB32() implementations
Ronald S. Bultje
rsbultje at gmail.com
Mon Mar 2 02:07:46 CET 2015
Hi,
On Sun, Mar 1, 2015 at 7:38 PM, Michael Niedermayer <michaelni at gmx.at>
wrote:
> alternatively lrint(f)() could be used
> or various other options
>
> Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> ---
> libavcodec/pngenc.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/libavcodec/pngenc.c b/libavcodec/pngenc.c
> index 9fd8eef..3a94366 100644
> --- a/libavcodec/pngenc.c
> +++ b/libavcodec/pngenc.c
> @@ -231,7 +231,7 @@ static int png_write_row(PNGEncContext *s, const
> uint8_t *data, int size)
> return 0;
> }
>
> -#define AV_WB32_PNG(buf, n) (AV_WB32(buf, round((n) * 100000)))
> +#define AV_WB32_PNG(buf, n) (AV_WB32(buf, (unsigned int)round((n) *
> 100000))
>
The typical solution here is to use lrint(f), and that is the C-recommended
way of converting a double to a integer(ish). So I'd prefer we use that
instead of this sort of frankenversion of the same concept.
Ronald
More information about the ffmpeg-devel
mailing list