[libcamera-devel] [PATCH] gstreamer: Check gstreamer version before using newer macros

Vedant Paranjape vedantparanjape160201 at gmail.com
Fri Sep 9 23:39:51 CEST 2022


GST_VIDEO_TRANSFER_BT601 and GST_VIDEO_TRANSFER_BT2020_10 macros are
defined in GST Version 1.18.0.

Use of these macros breaks libcamera if GST_VERSION < 1.18.0, these
macros are used only if GST_VERSION >= 1.18.0. Fixes the following
compilation error:

../src/gstreamer/gstlibcamera-utils.cpp:157:7: error: ‘GST_VIDEO_TRANSFER_BT601’ was not declared in this scope; did you mean ‘GST_VIDEO_TRANSFER_BT709’?
  157 |  case GST_VIDEO_TRANSFER_BT601:
      |       ^~~~~~~~~~~~~~~~~~~~~~~~
      |       GST_VIDEO_TRANSFER_BT709
../src/gstreamer/gstlibcamera-utils.cpp:159:7: error: ‘GST_VIDEO_TRANSFER_BT2020_10’ was not declared in this scope; did you mean ‘GST_VIDEO_TRANSFER_BT2020_12’?
  159 |  case GST_VIDEO_TRANSFER_BT2020_10:
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |       GST_VIDEO_TRANSFER_BT2020_12

Signed-off-by: Vedant Paranjape <vedantparanjape160201 at gmail.com>
---
 src/gstreamer/gstlibcamera-utils.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/gstreamer/gstlibcamera-utils.cpp b/src/gstreamer/gstlibcamera-utils.cpp
index 4df5dd6c14fd..244a4a79845d 100644
--- a/src/gstreamer/gstlibcamera-utils.cpp
+++ b/src/gstreamer/gstlibcamera-utils.cpp
@@ -154,9 +154,11 @@ colorspace_from_colorimetry(const GstVideoColorimetry &colorimetry)
 	case GST_VIDEO_TRANSFER_SRGB:
 		colorspace->transferFunction = ColorSpace::TransferFunction::Srgb;
 		break;
+#if GST_CHECK_VERSION(1, 18, 0)
 	case GST_VIDEO_TRANSFER_BT601:
-	case GST_VIDEO_TRANSFER_BT2020_12:
 	case GST_VIDEO_TRANSFER_BT2020_10:
+#endif
+	case GST_VIDEO_TRANSFER_BT2020_12:
 	case GST_VIDEO_TRANSFER_BT709:
 		colorspace->transferFunction = ColorSpace::TransferFunction::Rec709;
 		break;
-- 
2.25.1



More information about the libcamera-devel mailing list