[FFmpeg-devel] [RFC/PATCH]lavc/v4l2_context: Change the type of the ioctl cmd to unsigned long

Mark Thompson sw at jkqxz.net
Sun Nov 5 03:52:38 EET 2017


On 05/11/17 01:25, Carl Eugen Hoyos wrote:
> 2017-11-05 1:46 GMT+01:00 Carl Eugen Hoyos <ceffmpeg at gmail.com>:
> 
>> Attached patch fixes a warning on a current 64bit Linux system (that I
>> do not see on my ancient system where the ioctl cmd has type int).
>> Is there a better way to deal with it?
> 
> The way I understand the issue the attached patch works with both
> int and unsigned long as types.

> From 7acece14950f212f49d7a24e14803a25c27aba3b Mon Sep 17 00:00:00 2001
> From: Carl Eugen Hoyos <ceffmpeg at gmail.com>
> Date: Sun, 5 Nov 2017 01:53:49 +0100
> Subject: [PATCH] lavc/v4l2_context: Change the type of the ioctl cmd to
>  unsigned.
> 
> Fixes a warning on recent Linux:
> libavcodec/v4l2_context.c: In function 'ff_v4l2_context_set_status':
> libavcodec/v4l2_context.c:496:26: warning: comparison is always false due to limited range of data type
> ---
>  libavcodec/v4l2_context.c |    2 +-
>  libavcodec/v4l2_context.h |    2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/libavcodec/v4l2_context.c b/libavcodec/v4l2_context.c
> index 9f3b56d..78aa0fa 100644
> --- a/libavcodec/v4l2_context.c
> +++ b/libavcodec/v4l2_context.c
> @@ -484,7 +484,7 @@ static int v4l2_get_coded_format(V4L2Context* ctx, uint32_t *p)
>    *
>    *****************************************************************************/
>  
> -int ff_v4l2_context_set_status(V4L2Context* ctx, int cmd)
> +int ff_v4l2_context_set_status(V4L2Context* ctx, unsigned cmd)
>  {
>      int type = ctx->type;
>      int ret;
> diff --git a/libavcodec/v4l2_context.h b/libavcodec/v4l2_context.h
> index 503cc36..4d7734a 100644
> --- a/libavcodec/v4l2_context.h
> +++ b/libavcodec/v4l2_context.h
> @@ -135,7 +135,7 @@ void ff_v4l2_context_release(V4L2Context* ctx);
>   *                those frames will be dropped.
>   * @return 0 in case of success, a negative value representing the error otherwise.
>   */
> -int ff_v4l2_context_set_status(V4L2Context* ctx, int cmd);
> +int ff_v4l2_context_set_status(V4L2Context* ctx, unsigned cmd);
>  
>  /**
>   * Dequeues a buffer from a V4L2Context to an AVPacket.
> -- 
> 1.7.10.4
> 

This one LGTM.  (I don't mind between unsigned int or uint32_t.)

Thanks,

- Mark


More information about the ffmpeg-devel mailing list