From: Maksim Shabunin Date: Thu, 1 Dec 2022 12:13:52 +0000 (+0300) Subject: videoio: fixed FFmpeg plugin build X-Git-Tag: accepted/tizen/unified/20230127.161057~1^2~66^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5862b5021747e90fcbef31546582297573afaccf;p=platform%2Fupstream%2Fopencv.git videoio: fixed FFmpeg plugin build --- diff --git a/modules/videoio/src/cap.cpp b/modules/videoio/src/cap.cpp index 691fb9ab38..fa958e2c8f 100644 --- a/modules/videoio/src/cap.cpp +++ b/modules/videoio/src/cap.cpp @@ -698,29 +698,4 @@ int VideoWriter::fourcc(char c1, char c2, char c3, char c4) return (c1 & 255) + ((c2 & 255) << 8) + ((c3 & 255) << 16) + ((c4 & 255) << 24); } - -void applyMetadataRotation(const IVideoCapture& cap, OutputArray mat) -{ - bool rotation_auto = 0 != cap.getProperty(CAP_PROP_ORIENTATION_AUTO); - int rotation_angle = static_cast(cap.getProperty(CAP_PROP_ORIENTATION_META)); - - if(!rotation_auto || rotation_angle%360 == 0) - { - return; - } - - cv::RotateFlags flag; - if(rotation_angle == 90 || rotation_angle == -270) { // Rotate clockwise 90 degrees - flag = cv::ROTATE_90_CLOCKWISE; - } else if(rotation_angle == 270 || rotation_angle == -90) { // Rotate clockwise 270 degrees - flag = cv::ROTATE_90_COUNTERCLOCKWISE; - } else if(rotation_angle == 180 || rotation_angle == -180) { // Rotate clockwise 180 degrees - flag = cv::ROTATE_180; - } else { // Unsupported rotation - return; - } - - cv::rotate(mat, mat, flag); -} - } // namespace cv diff --git a/modules/videoio/src/cap_interface.hpp b/modules/videoio/src/cap_interface.hpp index 52639f3605..d9a1148e90 100644 --- a/modules/videoio/src/cap_interface.hpp +++ b/modules/videoio/src/cap_interface.hpp @@ -221,8 +221,6 @@ public: virtual int getCaptureDomain() { return CAP_ANY; } // Return the type of the capture object: CAP_DSHOW, etc... }; -void applyMetadataRotation(const IVideoCapture& cap, OutputArray mat); - class IVideoWriter { public: @@ -245,6 +243,34 @@ public: //=================================================== +// Utility + +static inline void applyMetadataRotation(const IVideoCapture& cap, OutputArray mat) +{ + bool rotation_auto = 0 != cap.getProperty(CAP_PROP_ORIENTATION_AUTO); + int rotation_angle = static_cast(cap.getProperty(CAP_PROP_ORIENTATION_META)); + + if(!rotation_auto || rotation_angle%360 == 0) + { + return; + } + + cv::RotateFlags flag; + if(rotation_angle == 90 || rotation_angle == -270) { // Rotate clockwise 90 degrees + flag = cv::ROTATE_90_CLOCKWISE; + } else if(rotation_angle == 270 || rotation_angle == -90) { // Rotate clockwise 270 degrees + flag = cv::ROTATE_90_COUNTERCLOCKWISE; + } else if(rotation_angle == 180 || rotation_angle == -180) { // Rotate clockwise 180 degrees + flag = cv::ROTATE_180; + } else { // Unsupported rotation + return; + } + + cv::rotate(mat, mat, flag); +} + +//=================================================== + // Wrapper class LegacyCapture : public IVideoCapture