[Spice-devel] [PATCH] gstreamer-encoder: fix compiler warning

Christophe de Dinechin christophe.de.dinechin at gmail.com
Mon Jul 1 12:32:04 UTC 2019


Kevin Pouget writes:

> this warning is failing my build, I assume it comes from a new version
> of the compiler catching the useless call to abs().

Is it useless, or is there a signed/unsigned mismatch?

I suspect the intent is more something like:

    abs((int64) (bit_rate - encoder->video_bit_rate))

in order to catch the delta in bitrate in either direction.

>
> ---
>
>> error: taking the absolute value of unsigned type 'uint64_t'
>> {aka 'long unsigned int'} has no effect [-Werror=absolute-value]
> ---
>  server/gstreamer-encoder.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/server/gstreamer-encoder.c b/server/gstreamer-encoder.c
> index 6416b688..dbd4b11d 100644
> --- a/server/gstreamer-encoder.c
> +++ b/server/gstreamer-encoder.c
> @@ -515,7 +515,7 @@ static void set_video_bit_rate(SpiceGstEncoder *encoder, uint64_t bit_rate)
>          encoder->video_bit_rate = bit_rate;
>          set_gstenc_bitrate(encoder);
>
> -    } else  if (abs(bit_rate - encoder->video_bit_rate) > encoder->video_bit_rate * SPICE_GST_VIDEO_BITRATE_MARGIN) {
> +    } else  if ((bit_rate - encoder->video_bit_rate) > encoder->video_bit_rate * SPICE_GST_VIDEO_BITRATE_MARGIN) {
>          encoder->video_bit_rate = bit_rate;
>          set_pipeline_changes(encoder, SPICE_GST_VIDEO_PIPELINE_BITRATE);
>      }


--
Cheers,
Christophe de Dinechin (IRC c3d)


More information about the Spice-devel mailing list