[libcamera-devel,v4,3/7] libcamera: v4l2_videodevice: Improve toColorSpace() readability
diff mbox series

Message ID 20220830074725.1059643-4-umang.jain@ideasonboard.com
State Accepted
Delegated to: Umang Jain
Headers show
Series
  • Colospace adjustment and gstreamer mapping
Related show

Commit Message

Umang Jain Aug. 30, 2022, 7:47 a.m. UTC
Wrap V4L2Device::toColorspace() inside a private static member
function in V4L2VideoDevice class. It improves readability in
setting the colorspace for V4L2DeviceFormat.

No functional changes intended.

Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 include/libcamera/internal/v4l2_videodevice.h |  3 +++
 src/libcamera/v4l2_videodevice.cpp            | 19 +++++++++++--------
 2 files changed, 14 insertions(+), 8 deletions(-)

Comments

Nicolas Dufresne via libcamera-devel Sept. 1, 2022, 3:37 a.m. UTC | #1
On Tue, Aug 30, 2022 at 01:17:21PM +0530, Umang Jain via libcamera-devel wrote:
> Wrap V4L2Device::toColorspace() inside a private static member
> function in V4L2VideoDevice class. It improves readability in
> setting the colorspace for V4L2DeviceFormat.
> 
> No functional changes intended.
> 
> Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>

> ---
>  include/libcamera/internal/v4l2_videodevice.h |  3 +++
>  src/libcamera/v4l2_videodevice.cpp            | 19 +++++++++++--------
>  2 files changed, 14 insertions(+), 8 deletions(-)
> 
> diff --git a/include/libcamera/internal/v4l2_videodevice.h b/include/libcamera/internal/v4l2_videodevice.h
> index ed98a284..d157a447 100644
> --- a/include/libcamera/internal/v4l2_videodevice.h
> +++ b/include/libcamera/internal/v4l2_videodevice.h
> @@ -268,6 +268,9 @@ private:
>  
>  	void watchdogExpired();
>  
> +	template<typename T>
> +	static std::optional<ColorSpace> toColorSpace(const T &v4l2Format);
> +
>  	V4L2Capability caps_;
>  	V4L2DeviceFormat format_;
>  	const PixelFormatInfo *formatInfo_;
> diff --git a/src/libcamera/v4l2_videodevice.cpp b/src/libcamera/v4l2_videodevice.cpp
> index 0e3f5436..955e1508 100644
> --- a/src/libcamera/v4l2_videodevice.cpp
> +++ b/src/libcamera/v4l2_videodevice.cpp
> @@ -914,6 +914,13 @@ int V4L2VideoDevice::trySetFormatMeta(V4L2DeviceFormat *format, bool set)
>  	return 0;
>  }
>  
> +template<typename T>
> +std::optional<ColorSpace> V4L2VideoDevice::toColorSpace(const T &v4l2Format)
> +{
> +	V4L2PixelFormat fourcc{ v4l2Format.pixelformat };
> +	return V4L2Device::toColorSpace(v4l2Format, PixelFormatInfo::info(fourcc).colourEncoding);
> +}
> +
>  int V4L2VideoDevice::getFormatMultiplane(V4L2DeviceFormat *format)
>  {
>  	struct v4l2_format v4l2Format = {};
> @@ -931,8 +938,7 @@ int V4L2VideoDevice::getFormatMultiplane(V4L2DeviceFormat *format)
>  	format->size.height = pix->height;
>  	format->fourcc = V4L2PixelFormat(pix->pixelformat);
>  	format->planesCount = pix->num_planes;
> -	format->colorSpace =
> -		toColorSpace(*pix, PixelFormatInfo::info(format->fourcc).colourEncoding);
> +	format->colorSpace = toColorSpace(*pix);
>  
>  	for (unsigned int i = 0; i < format->planesCount; ++i) {
>  		format->planes[i].bpl = pix->plane_fmt[i].bytesperline;
> @@ -988,8 +994,7 @@ int V4L2VideoDevice::trySetFormatMultiplane(V4L2DeviceFormat *format, bool set)
>  		format->planes[i].bpl = pix->plane_fmt[i].bytesperline;
>  		format->planes[i].size = pix->plane_fmt[i].sizeimage;
>  	}
> -	format->colorSpace =
> -		toColorSpace(*pix, PixelFormatInfo::info(format->fourcc).colourEncoding);
> +	format->colorSpace = toColorSpace(*pix);
>  
>  	return 0;
>  }
> @@ -1013,8 +1018,7 @@ int V4L2VideoDevice::getFormatSingleplane(V4L2DeviceFormat *format)
>  	format->planesCount = 1;
>  	format->planes[0].bpl = pix->bytesperline;
>  	format->planes[0].size = pix->sizeimage;
> -	format->colorSpace =
> -		toColorSpace(*pix, PixelFormatInfo::info(format->fourcc).colourEncoding);
> +	format->colorSpace = toColorSpace(*pix);
>  
>  	return 0;
>  }
> @@ -1056,8 +1060,7 @@ int V4L2VideoDevice::trySetFormatSingleplane(V4L2DeviceFormat *format, bool set)
>  	format->planesCount = 1;
>  	format->planes[0].bpl = pix->bytesperline;
>  	format->planes[0].size = pix->sizeimage;
> -	format->colorSpace =
> -		toColorSpace(*pix, PixelFormatInfo::info(format->fourcc).colourEncoding);
> +	format->colorSpace = toColorSpace(*pix);
>  
>  	return 0;
>  }
> -- 
> 2.37.2
>

Patch
diff mbox series

diff --git a/include/libcamera/internal/v4l2_videodevice.h b/include/libcamera/internal/v4l2_videodevice.h
index ed98a284..d157a447 100644
--- a/include/libcamera/internal/v4l2_videodevice.h
+++ b/include/libcamera/internal/v4l2_videodevice.h
@@ -268,6 +268,9 @@  private:
 
 	void watchdogExpired();
 
+	template<typename T>
+	static std::optional<ColorSpace> toColorSpace(const T &v4l2Format);
+
 	V4L2Capability caps_;
 	V4L2DeviceFormat format_;
 	const PixelFormatInfo *formatInfo_;
diff --git a/src/libcamera/v4l2_videodevice.cpp b/src/libcamera/v4l2_videodevice.cpp
index 0e3f5436..955e1508 100644
--- a/src/libcamera/v4l2_videodevice.cpp
+++ b/src/libcamera/v4l2_videodevice.cpp
@@ -914,6 +914,13 @@  int V4L2VideoDevice::trySetFormatMeta(V4L2DeviceFormat *format, bool set)
 	return 0;
 }
 
+template<typename T>
+std::optional<ColorSpace> V4L2VideoDevice::toColorSpace(const T &v4l2Format)
+{
+	V4L2PixelFormat fourcc{ v4l2Format.pixelformat };
+	return V4L2Device::toColorSpace(v4l2Format, PixelFormatInfo::info(fourcc).colourEncoding);
+}
+
 int V4L2VideoDevice::getFormatMultiplane(V4L2DeviceFormat *format)
 {
 	struct v4l2_format v4l2Format = {};
@@ -931,8 +938,7 @@  int V4L2VideoDevice::getFormatMultiplane(V4L2DeviceFormat *format)
 	format->size.height = pix->height;
 	format->fourcc = V4L2PixelFormat(pix->pixelformat);
 	format->planesCount = pix->num_planes;
-	format->colorSpace =
-		toColorSpace(*pix, PixelFormatInfo::info(format->fourcc).colourEncoding);
+	format->colorSpace = toColorSpace(*pix);
 
 	for (unsigned int i = 0; i < format->planesCount; ++i) {
 		format->planes[i].bpl = pix->plane_fmt[i].bytesperline;
@@ -988,8 +994,7 @@  int V4L2VideoDevice::trySetFormatMultiplane(V4L2DeviceFormat *format, bool set)
 		format->planes[i].bpl = pix->plane_fmt[i].bytesperline;
 		format->planes[i].size = pix->plane_fmt[i].sizeimage;
 	}
-	format->colorSpace =
-		toColorSpace(*pix, PixelFormatInfo::info(format->fourcc).colourEncoding);
+	format->colorSpace = toColorSpace(*pix);
 
 	return 0;
 }
@@ -1013,8 +1018,7 @@  int V4L2VideoDevice::getFormatSingleplane(V4L2DeviceFormat *format)
 	format->planesCount = 1;
 	format->planes[0].bpl = pix->bytesperline;
 	format->planes[0].size = pix->sizeimage;
-	format->colorSpace =
-		toColorSpace(*pix, PixelFormatInfo::info(format->fourcc).colourEncoding);
+	format->colorSpace = toColorSpace(*pix);
 
 	return 0;
 }
@@ -1056,8 +1060,7 @@  int V4L2VideoDevice::trySetFormatSingleplane(V4L2DeviceFormat *format, bool set)
 	format->planesCount = 1;
 	format->planes[0].bpl = pix->bytesperline;
 	format->planes[0].size = pix->sizeimage;
-	format->colorSpace =
-		toColorSpace(*pix, PixelFormatInfo::info(format->fourcc).colourEncoding);
+	format->colorSpace = toColorSpace(*pix);
 
 	return 0;
 }