[FFmpeg-devel] [PATCH] lavfi/buffersink: cast to uint64_t before shifting.

Andreas Rheinhardt andreas.rheinhardt at gmail.com
Tue Sep 8 21:14:18 EEST 2020


Nicolas George:
> Fix CID 1466666.
> 
> Signed-off-by: Nicolas George <george at nsup.org>
> ---
>  libavfilter/buffersink.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/libavfilter/buffersink.c b/libavfilter/buffersink.c
> index 9338969bf1..58848941d4 100644
> --- a/libavfilter/buffersink.c
> +++ b/libavfilter/buffersink.c
> @@ -72,10 +72,10 @@ static void cleanup_redundant_layouts(AVFilterContext *ctx)
>  
>      for (i = 0; i < nb_counts; i++)
>          if (buf->channel_counts[i] < 64)
> -            counts |= 1 << buf->channel_counts[i];
> +            counts |= (uint64_t)1 << buf->channel_counts[i];
>      for (i = lc = 0; i < nb_layouts; i++) {
>          n = av_get_channel_layout_nb_channels(buf->channel_layouts[i]);
> -        if (n < 64 && (counts & (1 << n)))
> +        if (n < 64 && (counts & ((uint64_t)1 << n)))
>              av_log(ctx, AV_LOG_WARNING,
>                     "Removing channel layout 0x%"PRIx64", redundant with %d channels\n",
>                     buf->channel_layouts[i], n);
> 
Using ULL would be shorter.

- Andreas


More information about the ffmpeg-devel mailing list