From 5b8573ad8dbfa0d50e58f2a722f30dfbfd7f1a41 Mon Sep 17 00:00:00 2001 From: Christian Rauch Date: Sat, 11 May 2024 17:12:38 +0200 Subject: [PATCH 1/4] mark encodings YUV422 and YUV422_YUY2 as deprecated Signed-off-by: Christian Rauch --- sensor_msgs/include/sensor_msgs/image_encodings.hpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sensor_msgs/include/sensor_msgs/image_encodings.hpp b/sensor_msgs/include/sensor_msgs/image_encodings.hpp index ec0708bf..4129cbbe 100644 --- a/sensor_msgs/include/sensor_msgs/image_encodings.hpp +++ b/sensor_msgs/include/sensor_msgs/image_encodings.hpp @@ -97,9 +97,11 @@ const char BAYER_GRBG16[] = "bayer_grbg16"; // https://www.kernel.org/doc/html/latest/userspace-api/media/v4l/pixfmt-packed-yuv.html#id1 // fourcc: UYVY const char UYVY[] = "uyvy"; +[[deprecated("use sensor_msgs::image_encodings::UYVY")]] const char YUV422[] = "yuv422"; // deprecated // fourcc: YUYV const char YUYV[] = "yuyv"; +[[deprecated("use sensor_msgs::image_encodings::YUYV")]] const char YUV422_YUY2[] = "yuv422_yuy2"; // deprecated // YUV 4:2:0 encodings with an 8-bit depth From f57760b72dafafd38548e59a4757862aaa79f1fd Mon Sep 17 00:00:00 2001 From: Christian Rauch Date: Sat, 11 May 2024 18:57:38 +0200 Subject: [PATCH 2/4] replace deprecated encodings in encoding test Signed-off-by: Christian Rauch --- sensor_msgs/test/test_image_encodings.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sensor_msgs/test/test_image_encodings.cpp b/sensor_msgs/test/test_image_encodings.cpp index 9cfef93e..c2aefd5f 100644 --- a/sensor_msgs/test/test_image_encodings.cpp +++ b/sensor_msgs/test/test_image_encodings.cpp @@ -48,8 +48,8 @@ TEST(sensor_msgs, NumChannels) ASSERT_EQ(sensor_msgs::image_encodings::numChannels("64FC"), 1); ASSERT_EQ(sensor_msgs::image_encodings::numChannels("64FC3"), 3); ASSERT_EQ(sensor_msgs::image_encodings::numChannels("64FC10"), 10); - ASSERT_EQ(sensor_msgs::image_encodings::numChannels("yuv422"), 2); - ASSERT_EQ(sensor_msgs::image_encodings::numChannels("yuv422_yuy2"), 2); + ASSERT_EQ(sensor_msgs::image_encodings::numChannels("uyvy"), 2); + ASSERT_EQ(sensor_msgs::image_encodings::numChannels("yuyv"), 2); } TEST(sensor_msgs, bitDepth) @@ -68,6 +68,6 @@ TEST(sensor_msgs, bitDepth) ASSERT_EQ(sensor_msgs::image_encodings::bitDepth("64FC"), 64); ASSERT_EQ(sensor_msgs::image_encodings::bitDepth("64FC3"), 64); ASSERT_EQ(sensor_msgs::image_encodings::bitDepth("64FC10"), 64); - ASSERT_EQ(sensor_msgs::image_encodings::bitDepth("yuv422"), 8); - ASSERT_EQ(sensor_msgs::image_encodings::bitDepth("yuv422_yuy2"), 8); + ASSERT_EQ(sensor_msgs::image_encodings::bitDepth("uyvy"), 8); + ASSERT_EQ(sensor_msgs::image_encodings::bitDepth("yuyv"), 8); } From 843d0110f11d76c52d44275d503d744a34e0ea2c Mon Sep 17 00:00:00 2001 From: Christian Rauch Date: Sat, 25 May 2024 12:10:37 +0200 Subject: [PATCH 3/4] ignore deprecation warning inside the encoding header Signed-off-by: Christian Rauch --- sensor_msgs/include/sensor_msgs/image_encodings.hpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sensor_msgs/include/sensor_msgs/image_encodings.hpp b/sensor_msgs/include/sensor_msgs/image_encodings.hpp index 4129cbbe..0dc1b3aa 100644 --- a/sensor_msgs/include/sensor_msgs/image_encodings.hpp +++ b/sensor_msgs/include/sensor_msgs/image_encodings.hpp @@ -123,6 +123,8 @@ const std::regex cv_type_regex("(8|16|32|64)(U|S|F)C([0-9]*)"); // Utility functions for inspecting an encoding string static inline bool isColor(const std::string & encoding) { +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" return encoding == RGB8 || encoding == BGR8 || encoding == RGBA8 || encoding == BGRA8 || encoding == RGB16 || encoding == BGR16 || @@ -131,6 +133,7 @@ static inline bool isColor(const std::string & encoding) encoding == UYVY || encoding == YUYV || encoding == NV12 || encoding == NV21 || encoding == NV24; +#pragma GCC diagnostic pop } static inline bool isMono(const std::string & encoding) @@ -193,6 +196,8 @@ static inline int numChannels(const std::string & encoding) return (m[3] == "") ? 1 : std::atoi(m[3].str().c_str()); } +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" if (encoding == YUV422 || encoding == YUV422_YUY2 || encoding == UYVY || @@ -203,6 +208,7 @@ static inline int numChannels(const std::string & encoding) { return 2; } +#pragma GCC diagnostic pop throw std::runtime_error("Unknown encoding " + encoding); return -1; @@ -246,6 +252,8 @@ static inline int bitDepth(const std::string & encoding) return std::atoi(m[0].str().c_str()); } +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" if (encoding == YUV422 || encoding == YUV422_YUY2 || encoding == UYVY || @@ -256,6 +264,7 @@ static inline int bitDepth(const std::string & encoding) { return 8; } +#pragma GCC diagnostic pop throw std::runtime_error("Unknown encoding " + encoding); return -1; From 9e5616184287f0350eed06918a54425c77ac7063 Mon Sep 17 00:00:00 2001 From: Christian Rauch Date: Thu, 5 Sep 2024 23:08:26 +0200 Subject: [PATCH 4/4] ignore deprecation warning inside the encoding header on Windows Signed-off-by: Christian Rauch --- .../include/sensor_msgs/image_encodings.hpp | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/sensor_msgs/include/sensor_msgs/image_encodings.hpp b/sensor_msgs/include/sensor_msgs/image_encodings.hpp index 0dc1b3aa..4eb801a0 100644 --- a/sensor_msgs/include/sensor_msgs/image_encodings.hpp +++ b/sensor_msgs/include/sensor_msgs/image_encodings.hpp @@ -123,8 +123,13 @@ const std::regex cv_type_regex("(8|16|32|64)(U|S|F)C([0-9]*)"); // Utility functions for inspecting an encoding string static inline bool isColor(const std::string & encoding) { +#ifdef _MSC_VER +#pragma warning(push) +#pragma warning(disable : 4996) +#else #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#endif return encoding == RGB8 || encoding == BGR8 || encoding == RGBA8 || encoding == BGRA8 || encoding == RGB16 || encoding == BGR16 || @@ -133,7 +138,11 @@ static inline bool isColor(const std::string & encoding) encoding == UYVY || encoding == YUYV || encoding == NV12 || encoding == NV21 || encoding == NV24; +#ifdef _MSC_VER +#pragma warning(pop) +#else #pragma GCC diagnostic pop +#endif } static inline bool isMono(const std::string & encoding) @@ -196,8 +205,13 @@ static inline int numChannels(const std::string & encoding) return (m[3] == "") ? 1 : std::atoi(m[3].str().c_str()); } +#ifdef _MSC_VER +#pragma warning(push) +#pragma warning(disable : 4996) +#else #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#endif if (encoding == YUV422 || encoding == YUV422_YUY2 || encoding == UYVY || @@ -208,7 +222,11 @@ static inline int numChannels(const std::string & encoding) { return 2; } +#ifdef _MSC_VER +#pragma warning(pop) +#else #pragma GCC diagnostic pop +#endif throw std::runtime_error("Unknown encoding " + encoding); return -1; @@ -252,8 +270,13 @@ static inline int bitDepth(const std::string & encoding) return std::atoi(m[0].str().c_str()); } +#ifdef _MSC_VER +#pragma warning(push) +#pragma warning(disable : 4996) +#else #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdeprecated-declarations" +#endif if (encoding == YUV422 || encoding == YUV422_YUY2 || encoding == UYVY || @@ -264,7 +287,11 @@ static inline int bitDepth(const std::string & encoding) { return 8; } +#ifdef _MSC_VER +#pragma warning(pop) +#else #pragma GCC diagnostic pop +#endif throw std::runtime_error("Unknown encoding " + encoding); return -1;