[libcamera-devel] [PATCH v2 2/2] libcamera: v4l2_device: Add stubs to set/get format

Niklas Söderlund niklas.soderlund at ragnatech.se
Thu Jan 24 19:51:32 CET 2019


Hi Jacopo,

Thanks for your work.

On 2019-01-24 12:30:00 +0100, Jacopo Mondi wrote:
> Add function stubs for set/get format to V4L2Device.
> 
> Signed-off-by: Jacopo Mondi <jacopo at jmondi.org>
> ---
>  src/libcamera/include/v4l2_device.h |  9 ++++++
>  src/libcamera/v4l2_device.cpp       | 49 +++++++++++++++++++++++++++++
>  2 files changed, 58 insertions(+)
> 
> diff --git a/src/libcamera/include/v4l2_device.h b/src/libcamera/include/v4l2_device.h
> index 413bb7f..2da30d1 100644
> --- a/src/libcamera/include/v4l2_device.h
> +++ b/src/libcamera/include/v4l2_device.h
> @@ -72,10 +72,19 @@ public:
>  	const char *deviceName() const { return caps_.card(); }
>  	const char *busName() const { return caps_.bus_info(); }
>  
> +	int format();
> +	int setFormat();
> +
>  private:
>  	std::string deviceNode_;
>  	int fd_;
>  	V4L2Capability caps_;
> +
> +	int getFormatSingleplane();

I think this should be formatSingleplane() to match the naming 
convention.

I like the structure of this patch and I think this is the way to go. I 
do think we should hold off on merging this until we can replace the 
stubs with code that do some work. Furthermore I think you can merge 1/2 
if this series, if there are no other review comments on that in the 
near future.

> +	int setFormatSingleplane();
> +
> +	int getFormatMultiplane();
> +	int setFormatMultiplane();
>  };
>  
>  } /* namespace libcamera */
> diff --git a/src/libcamera/v4l2_device.cpp b/src/libcamera/v4l2_device.cpp
> index 9cb504d..2ddb800 100644
> --- a/src/libcamera/v4l2_device.cpp
> +++ b/src/libcamera/v4l2_device.cpp
> @@ -213,4 +213,53 @@ void V4L2Device::close()
>   * \return The string containing the device location
>   */
>  
> +/**
> + * \brief Retrieve the image format set on the V4L2 device
> + *
> + * TODO: define how the image format is encoded
> + * FIXME: this function is a stub at the moment
> + *
> + * \return 0 for success, a negative error code otherwise
> + */
> +int V4L2Device::format()
> +{
> +	return caps_.isMultiplanar() ? getFormatMultiplane() :
> +				       getFormatSingleplane();
> +}
> +
> +/**
> + * \brief Program an image format on the V4L2 device
> + *
> + * TODO: define how the image format is encoded
> + * FIXME: this function is a stub at the moment
> + *
> + * \return 0 for success, a negative error code otherwise
> + */
> +int V4L2Device::setFormat()
> +{
> +	return caps_.isMultiplanar() ? setFormatMultiplane() :
> +				       setFormatSingleplane();
> +}
> +
> +/* FIXME: these functions are stubs at the moment. */
> +int V4L2Device::getFormatSingleplane()
> +{
> +	return 0;
> +}
> +
> +int V4L2Device::setFormatSingleplane()
> +{
> +	return 0;
> +}
> +
> +int V4L2Device::getFormatMultiplane()
> +{
> +	return 0;
> +}
> +
> +int V4L2Device::setFormatMultiplane()
> +{
> +	return 0;
> +}
> +
>  } /* namespace libcamera */
> -- 
> 2.20.1
> 
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel at lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel

-- 
Regards,
Niklas Söderlund


More information about the libcamera-devel mailing list