remove old media-libs/opencv-3.4.1-r7

This commit is contained in:
Andreas Billmeier 2022-08-06 09:56:59 +02:00 committed by Andreas Billmeier
parent b93386cd5a
commit 64ffbc91c5
Signed by: onkelbeh
GPG Key ID: E6DB12C8C550F3C0
22 changed files with 4 additions and 1570 deletions

View File

@ -523,14 +523,14 @@ A daily compile test is run at Github with Python 3.9 to catch general faults. E
## Licenses
This repository itself is released under GPL-3 (like most Gentoo repositories), all work on the depending components under the licenses they came from. Perhaps you came here because I filed an issue at your component about a bad or missing license. It is easy to [assign a license](https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions/adding-a-license-to-a-repository). During cleanups and license investigations I have been asked often which license to choose. I am not a lawyer, but I can offer the following table, counted over this repository, perhaps this helps your decision. If a package has more than one license listed, all of them are counted.
There are 1819 Ebuilds in total, 1812 of them have in total 1822 (35 different) licenses assigned.
There are 1818 Ebuilds in total, 1811 of them have in total 1821 (35 different) licenses assigned.
|License| Ebuilds using it|
|-------|-----|
|MIT|1100|
|Apache-2.0|334|
|GPL-3|109|
|BSD|103|
|BSD|102|
|LGPL-3|30|
|GPL-2|24|
|LGPL-3+|18|
@ -563,9 +563,9 @@ There are 1819 Ebuilds in total, 1812 of them have in total 1822 (35 different)
|CC-BY-NC-SA-4.0|1|
|CC0-1.0|1|
(Last counted: 28/07/2022)
(Last counted: 06/08/2022)
I did my best to keep these clean. If a valid license was published on PyPI, it has been automatically merged. Otherwise I took it from GitHub or alternatively from comments/files in the source. Sometimes these differed and have been not unique. All license strings are adjusted to the list in `/usr/portage/gentoo/licenses/`. Some packages do not have any license published. In this case, Authors have been asked for clarification, some did not respond. Following the [official Gentoo Guide](https://devmanual.gentoo.org/general-concepts/licenses/index.html), these then were added with an `all-rights-reserved` license and `RESTRICT="mirror"` was set. Find the appropriate licenses referenced in the Ebuild files and in the corresponding homepages or sources.
A big thanks goes to Iris for reviewing this README.
Last updated: 28/07/2022
Last updated: 06/08/2022

View File

@ -1,26 +0,0 @@
AUX opencv-2.3.1a-libav-0.7.patch 415 BLAKE2B f3aecdeae8c558edbca610d380a2c0862f2c69f8104b63564d3a07f9494dd474cfeee15438086c6e2abb74821ac482ebdeb896e2aac96d69088f089273cdd7f2 SHA512 b17466470a47876e1a8434367f47ce13ec989bdc35ec707d87188187e08b8ccca6af4c5563f20b3170758582b500323030cff22961a7fbbc6b4843d8bb808f1e
AUX opencv-2.4.13-gcc-6.0.patch 1068 BLAKE2B cfbb70e2e3e9909fe8b37705faf51f88e754751e66073a767aa943144827817c2cfe1b84778ed6d3f7774de066a7aba76f070d621806d0f00065d7f6c1768a2e SHA512 b5dced5d0816d7560c827db06000e770de22b0b3a703ab078bf1cdde4202a5bbe223e5021c9d0e99eeb93c7622a89b9fa03e5ae8bd4a8d3b2df12f014b7e5ca9
AUX opencv-2.4.13-imgcodecs-refactoring.patch 19899 BLAKE2B 106e5426091f3072b108d9750a6273f5201f77e190cbfba6e3a77da0b3cdfc2f83e276e1ff0506374ea1c4914314e036e921cf9324eb47eebff9f6a474c5f6c9 SHA512 2fae29c7190930f1a2657641d42e0484d4ce6a4562d52cd1522b3b4e9d56468ef7b3d313088270fbb778e5f412f02e149164c38174d95e397e9f2b7d5a1b404b
AUX opencv-2.4.2-cflags.patch 742 BLAKE2B 15e523b500028cd5483a9eae16f3a200937876214b0f99d6ce08345f94050e7cc4c76b7c79b4e3ecee64e9a3a6ef7510c2b86ce7eef3608b24e61d3501ccbc16 SHA512 b92c07d8c9c40ad7721e0cca2d79b001f825478a336ad40cb43d02218fcd9e8b94b871575028ca8eaf6616cfce8138c796f32d4cf55d83d5cbe819ec50cf7c82
AUX opencv-2.4.3-gcc47.patch 835 BLAKE2B 2e0f71fff77a23c2db9747d8bb7f9301de18acd4821b8223edd1979f2a1c62c86e71c4d4a5b0e3bf0057df81127d207230eb7b3f08507b17397b8370d454b570 SHA512 cc5e3e4c0def0745867403e990abf4b88d7d3edc72867a283403a991fd96f59c4cca6524ca184a52a40c913cd5d9cdfb52e98be71d5060fc4c7aa6b613a2a220
AUX opencv-2.4.8-javamagic.patch 1165 BLAKE2B 0f12fd471145e1e303a517e5bc704fb5abc5ac5731fb1eadf08ef61e618bd70f9348c9c7a23296eefeb37826fd6701baaab0fc475ad0c441302b20516cf9bb9a SHA512 fd8a0d33997889c9316c0a4474c836b2528b676cd26bbb0e6ee2262377e45c5a0c465534831bd7fec3c0aa9cb198bc792a53f958b05a5217009314b678076d64
AUX opencv-2.4.9-cuda-pkg-config.patch 373 BLAKE2B 389a27607926170c38c69cba955e91e0dfde65a51ee88dd0aec315056ba0f36a303ef2d4b95e226f323e92c59a251b93e9deae5cb3822ad69d257e1cb3cb1f34 SHA512 5b8f931758c6c8edfc3cae35a16d1c8674f17716f13b424ee0510eb313f06ed334b80205262e6bfcce22db235467cad81fddfa96e0cf669972794cc8524f6937
AUX opencv-3.0.0-gles.patch 481 BLAKE2B 3eecd8c754abd9fdbfc2878b8b5a8b5ac3c6410342eb0756162ac901fe0903f7e1236bf2cc6e2ec5c7eeb638037f0dfad2b5aa9ebc905c485c4084936daed24e SHA512 37cac226bc39b91a87e4891e1d58169a0c2723240215670ebaecbfaf9b066b571296041fc5140aff7274cc44ca132b6f1b3bd4cf6d6dd23b950cac6eca548ad9
AUX opencv-3.3.0-remove-tiny-dnn-autodownload.patch 1138 BLAKE2B 0bf85ca7a0e3759a4de14a844f2929120a47f9c0c212992d078b19cc7a602e157d5233ebc30d7eb6dcfa8c5a9606e3acea15e5a96717842fa80d2d8b3fa3189c SHA512 6824c3fc193491d0d776a7a904d71515309a5b67b0dfa1790bbd402c40b68e813c9fdfc3037a60f31893341ea78553d97470d152e90f34485004e0e50e6d66f6
AUX opencv-3.4.0-disable-download.patch 1050 BLAKE2B 6f39f61588d9231cc8d877624538a49654ec8cf63091f8d0251cd01cc14684f2f5264c295a149c4a5754a9336e1ad4d1760cc26471fd85a6f571404f7c8d540d SHA512 95f2043c286a7de33fb4718fc1e2ded1fd943b20a5c4cc0c3d7af84fc317e53e3aa6358a33e4781195f8a80904d6bc615171142cde5d30a83d16045d36f85826
AUX opencv-3.4.1-compilation-C-mode.patch 2077 BLAKE2B 78f55e49bd51ac4377a1db37125da6ca1ddfb9d723243eca7ef3df9d6d7b3922329cdd1c5915d480a9264af623c2953b4edaf81fd53afc950dc19cd49f04ea6f SHA512 203a4376728df6aa3dcaab147654139ebfd296a98d83847ac3ab0184dba828cf2ee298fedf7e7c2c64e1e8965237172fa6f1d5c7a4f6be5165a384d21b6875e7
AUX opencv-3.4.1-cuda-add-relaxed-constexpr.patch 707 BLAKE2B 743a9c259c59fc4e3017539faef0723e0a80fb9c4bbde94811f32b3e6ae271b3db39fd35487d75078cfbe9e596604c4e37fb5c6c18619ed524c52683219dd8af SHA512 b37ce78495a3bbc439f203d9db81d9bff3e7f980c01ef5187dee537dd9c1025c5163ec3760b48d91a099a2fafb60526c9fe83f7183fc605fb3cc0f5c7a65f6bf
AUX opencv-3.4.1-fix-build-with-va.patch 1459 BLAKE2B 20a65a5bef15fab56d277d78f747b883b5a008508c643ae877717dd0c524aa6c2ba398aff7ac8073d3ccfffdcd284223369c15de36214f62730bc62ca582cf71 SHA512 24186689afe73fd3e63d6d43073a88c65bc7cd5c0719701c8a014e5e85e179765e1b2d2adac5fcc3c8490e92aeaf65642f6d0276581d8311470328b55b74d441
AUX opencv-3.4.1-fix-on-x86.patch 1256 BLAKE2B 785e718d7cea4bf72b03de5083d065449bad294c6bf5b6e7eb837e4c5f4ead34c1034988303410dba49e8376ca63caaaa209a4bd175d786c75ebfc548b71e271 SHA512 8ebf573e3f02b78b5769eaf828215698073096a1dade9214af0382cfbbe2353307df836a6af8c4e86246ad33fefe1f64a1087d0ff7a6dc7c5f3e231592c20b4c
AUX opencv-3.4.1-popcnt.patch 890 BLAKE2B 553352472eaf2a2c97f148f97856a103e8a190970ef8a675d7a9b6fbf1ead0686279a4a5d961e8802164c73177da3f25cef016d40b59044f5c74b63613251512 SHA512 44f35d21c55e68b2125c5eba83c875c02c3822998d973257ab8a7d7e0baaeb5de70386b9294ff62a327732743253c588946eb8c59f87f1629b26e0f594c7b65f
AUX opencv-3.4.1-python-lib-suffix-hack.patch 723 BLAKE2B bc4b1c68f2c73b40d20372ce4e3232b2db3b414ce2da16a8d84710fc53902211f17585c7ce6daf2d54025b53c04aa74f0c3eb3a30f26bfbc9af24e246f56b71a SHA512 54d2c8189fc1ff06ee1cacf5f375ea976faf339563ee804085feb0ec1f55cdbe10eea7335a786706b6a6152b6f9145156b3e74ce802c3d15b5a23014b25044b8
AUX opencv-3.4.1-python37.patch 452 BLAKE2B c4a2850c17a0f9e01f537df6123e7c4262862ec0cd1dd43f8cebd21d4d6e8903205813b2a200eb6b60efdc43e74b0c9222d0b6bba504bacb84f87cfcf7d80d1a SHA512 c7fac2a6425c4afbef3b3cae5307e6035e3f4ef77ba0006c4dfd3a1cfc15c4648e978cc305ce598ec70c049e2cdc36f5f85cf24a75a4d3f3dc025091993e66e2
AUX opencv-3.4.1-remove-git-autodetect.patch 1549 BLAKE2B 0ed44deddea20d5a57dded6a51d40645e5376411d9c055995fdbdbfbf4252817eaa9158925276661e4958f894898122ec273a352491be53511207345a481db52 SHA512 8496677542981c64ba9763f0d494885f71747884ae3e02de0bc8f96c1802356d917dcc7aed84ddfc2af093456c250bf2fafbdd06f7789aae8c720f5a412c07a0
DIST opencv-3.4.0-face_landmark_model.tar.gz 63299830 BLAKE2B 58f08cd8c030ee1c8b66e76a561fd625e112face427d001185f8d7c0eaace55adbd8474663021841a1382bfe393a210e64c51223441713cdb9156fac866a845c SHA512 2cd29ce42c08b2966db3ef4a2bc217ab3d07051819757ec6de8f3deea29e28f60abab39f101dba03f766f17018598e411bd687a7eaab0c681c113e10a2de2b23
DIST opencv-3.4.0-res10_300x300-caffeemodel.tar.gz 10036604 BLAKE2B 2a2de48fc420f13e7be146ac88f311901c5b4e409c30e466152e33cae1f8afd87dcb6d758af447c268d90bd67989c8798cd80cab172b10499a6ad5224509dbdf SHA512 96fee9f447d5739bc01a5cab37c453cf7237457dfb5d2bf93ac37f8e5aa557ac222316f449cd58e37e856abe4d8e9d4a7820daaba32f0b22cbcde8e340287d4b
DIST opencv-3.4.1.tar.gz 87051748 BLAKE2B 87c83ab9b3d7fb048263f047aa5d6e95b153e1a28f3e34cc885eff7eb080a2258cfa1aa494cd56b32f1098ab158c17c23fc8464fcbe70642a3a1842f2fd1b4ac SHA512 e1fc14285090c6fe9e26e721f2d67d7096650c523147e925567426ef76aa7f4c6f12035d6f6ce3ec7991a75a6828a810fd4f9b75f78ed5fcccecefbadd79944b
DIST opencv-3.4.1_contrib.tar.gz 57126844 BLAKE2B 63d9d5cb088371754eb132607789c8f1d4820f3e0e486593d6f64ee8f918ea4362152f050baec16f17904c03a6cdc0abc6e5fb2510308dcbabebe97b29285fbc SHA512 431dfba0f413071d7faa18bc6e6f5e4f015285e2cc730c5dd69b2a4d6aa4250b7e0bcb1814ac6f06f5c76f103aea1f93f72f32aee6bc0cd7ddacdaf1f40075c1
DIST tiny-dnn-1.0.0a3.tar.gz 12885646 BLAKE2B 85c0715ab6c692b77522487775e70b0db645528baed1830c83c9f44d2b67a5207e4f7ea1709b35c6a4217d287199549304e9be19f4a5cec9a1183b0b5dccc562 SHA512 5f2c1a161771efa67e85b1fea395953b7744e29f61187ac5a6c54c912fb195b3aef9a5827135c3668bd0eeea5ae04a33cc433e1f6683e2b7955010a2632d168b
DIST vgg_boostdesc-3.2.0.tar.gz 1867770 BLAKE2B 1fa5b58e73b6fa56ecf8d19af22298f729942ee1369082e173445d09d3de767bf844bad3d2b462efc1199c392f37c88ba49a9996ba8bfd84b4abeba7de94db63 SHA512 4a046aedd639c8eb4b295b0f499e756deb66210ca083f0124c75531e540663367cb58f6d175f66c4713324177036cd89a8869bdab2de8d1736dafc7f00ef9f44
EBUILD opencv-3.4.1-r7.ebuild 18984 BLAKE2B 482afca2eef6317954f089e3b755327ba1b46b8c70ddd0393e0b5c3072fc0d3db35cb520ff4d71f8178caff50f4c27ca0af48e57c9bb8736f5cef6731e2bc8b0 SHA512 9386c416a00b001bf7d4cc75a2bacad0b6774650d741620ca838131a2532f2a5fbbd9329e2d62ebbabd1bfea24bfda73ff2969e6857b5dfeb7acd73521cfe786
MISC metadata.xml 2508 BLAKE2B 6471369994d231d26d53754aaef07f861626ce8cdbc8a9180dfb0f6fc6049178b200971b405fd8b32427dc01570ae17ab113caf509d83de44004d21191977cab SHA512 4bf0e973acd24053fd88e1ecb89530939cf0f314291601780c0da5a2d0af7bc096b97af216a60f392f08095c02404d8f533b195a04c8e2b592cfea22d8d46ff6

View File

@ -1,10 +0,0 @@
--- OpenCV-2.3.1.orig/modules/highgui/src/cap_ffmpeg_impl.hpp 2011-11-14 05:33:37.000000000 +0100
+++ OpenCV-2.3.1/modules/highgui/src/cap_ffmpeg_impl.hpp 2011-11-14 05:33:18.000000000 +0100
@@ -104,6 +104,7 @@
#endif
#if defined(HAVE_LIBAVCODEC_AVCODEC_H)
#include <libavcodec/avcodec.h>
+ #include <libavutil/mathematics.h>
#endif
#if defined(HAVE_LIBSWSCALE_SWSCALE_H)
#include <libswscale/swscale.h>

View File

@ -1,23 +0,0 @@
From fb598bb76a0431aa3a880ecfa45054c996a070fb Mon Sep 17 00:00:00 2001
From: Maksim Shabunin <maksim.shabunin@itseez.com>
Date: Fri, 13 May 2016 13:28:09 +0300
Subject: [PATCH] Disabled PCH support for gcc >= 6.0.0
Command line generation routine uses "-isystem" to include headers outside of "<opencv>/modules" folder, but GCC 6 does not work when passed "-isystem /usr/include" option.
---
cmake/OpenCVPCHSupport.cmake | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/cmake/OpenCVPCHSupport.cmake b/cmake/OpenCVPCHSupport.cmake
index 13619daf27e..e6585cae020 100644
--- a/cmake/OpenCVPCHSupport.cmake
+++ b/cmake/OpenCVPCHSupport.cmake
@@ -19,7 +19,7 @@ IF(CMAKE_COMPILER_IS_GNUCXX)
ARGS ${CMAKE_CXX_COMPILER_ARG1} -dumpversion
OUTPUT_VARIABLE gcc_compiler_version)
#MESSAGE("GCC Version: ${gcc_compiler_version}")
- IF(gcc_compiler_version VERSION_GREATER "4.2.-1")
+ IF(gcc_compiler_version VERSION_GREATER "4.2.-1" AND gcc_compiler_version VERSION_LESS "6.0.0")
SET(PCHSupport_FOUND TRUE)
ENDIF()

View File

@ -1,580 +0,0 @@
From 72d29259ca741950527c8cca7fb649030c01f658 Mon Sep 17 00:00:00 2001
From: Alexander Alekhin <alexander.a.alekhin@gmail.com>
Date: Tue, 15 Aug 2017 22:04:55 +0000
Subject: [PATCH] imgcodecs: refactoring, improve code quality
---
modules/core/include/opencv2/core/core.hpp | 3 +
modules/core/include/opencv2/core/operations.hpp | 3 +
modules/highgui/src/bitstrm.cpp | 2 +
modules/highgui/src/bitstrm.hpp | 19 ++--
modules/highgui/src/grfmt_bmp.cpp | 13 ++-
modules/highgui/src/grfmt_pxm.cpp | 119 +++++++++++++---------
modules/highgui/src/loadsave.cpp | 120 +++++++++++++++++++----
7 files changed, 207 insertions(+), 72 deletions(-)
diff --git a/modules/core/include/opencv2/core/core.hpp b/modules/core/include/opencv2/core/core.hpp
index 6bb295f5c73..86f4eb182b2 100644
--- a/modules/core/include/opencv2/core/core.hpp
+++ b/modules/core/include/opencv2/core/core.hpp
@@ -3248,6 +3248,9 @@ template<typename _Tp, size_t fixed_size=4096/sizeof(_Tp)+8> class AutoBuffer
//! returns read-only pointer to the real buffer, stack-allocated or head-allocated
operator const _Tp* () const;
+ //! returns number of allocated elements
+ size_t getSize() const;
+
protected:
//! pointer to the real buffer, can point to buf if the buffer is small enough
_Tp* ptr;
diff --git a/modules/core/include/opencv2/core/operations.hpp b/modules/core/include/opencv2/core/operations.hpp
index 1b7484aded2..37fd3d97c7a 100644
--- a/modules/core/include/opencv2/core/operations.hpp
+++ b/modules/core/include/opencv2/core/operations.hpp
@@ -2581,6 +2581,9 @@ template<typename _Tp, size_t fixed_size> inline AutoBuffer<_Tp, fixed_size>::op
template<typename _Tp, size_t fixed_size> inline AutoBuffer<_Tp, fixed_size>::operator const _Tp* () const
{ return ptr; }
+template<typename _Tp, size_t fixed_size> inline size_t AutoBuffer<_Tp, fixed_size>::getSize() const
+{ return size; }
+
/////////////////////////////////// Ptr ////////////////////////////////////////
diff --git a/modules/highgui/src/bitstrm.cpp b/modules/highgui/src/bitstrm.cpp
index dd8bec87cca..67792a27f28 100644
--- a/modules/highgui/src/bitstrm.cpp
+++ b/modules/highgui/src/bitstrm.cpp
@@ -208,6 +208,8 @@ int RLByteStream::getByte()
current = m_current;
}
+ CV_Assert(current < m_end);
+
val = *((uchar*)current);
m_current = current + 1;
return val;
diff --git a/modules/highgui/src/bitstrm.hpp b/modules/highgui/src/bitstrm.hpp
index 57956beb539..b22987bc911 100644
--- a/modules/highgui/src/bitstrm.hpp
+++ b/modules/highgui/src/bitstrm.hpp
@@ -48,13 +48,20 @@
namespace cv
{
-enum
-{
- RBS_THROW_EOS=-123, // <end of stream> exception code
- RBS_THROW_FORB=-124, // <forrbidden huffman code> exception code
- RBS_HUFF_FORB=2047, // forrbidden huffman code "value"
- RBS_BAD_HEADER=-125 // invalid header
+#define DECLARE_RBS_EXCEPTION(name) \
+class RBS_ ## name ## _Exception : public cv::Exception \
+{ \
+public: \
+ RBS_ ## name ## _Exception(int code_, const String& err_, const String& func_, const String& file_, int line_) : \
+ cv::Exception(code_, err_, func_, file_, line_) \
+ {} \
};
+DECLARE_RBS_EXCEPTION(THROW_EOS)
+#define RBS_THROW_EOS RBS_THROW_EOS_Exception(CV_StsError, "Unexpected end of input stream", CV_Func, __FILE__, __LINE__)
+DECLARE_RBS_EXCEPTION(THROW_FORB)
+#define RBS_THROW_FORB RBS_THROW_FORB_Exception(CV_StsError, "Forrbidden huffman code", CV_Func, __FILE__, __LINE__)
+DECLARE_RBS_EXCEPTION(BAD_HEADER)
+#define RBS_BAD_HEADER RBS_BAD_HEADER_Exception(CV_StsError, "Invalid header", CV_Func, __FILE__, __LINE__)
typedef unsigned long ulong;
diff --git a/modules/highgui/src/grfmt_bmp.cpp b/modules/highgui/src/grfmt_bmp.cpp
index c8f8218cd3b..026b317467d 100644
--- a/modules/highgui/src/grfmt_bmp.cpp
+++ b/modules/highgui/src/grfmt_bmp.cpp
@@ -115,8 +115,9 @@ bool BmpDecoder::readHeader()
if( m_bpp <= 8 )
{
- memset( m_palette, 0, sizeof(m_palette));
- m_strm.getBytes( m_palette, (clrused == 0? 1<<m_bpp : clrused)*4 );
+ CV_Assert(clrused < 256);
+ memset(m_palette, 0, sizeof(m_palette));
+ m_strm.getBytes(m_palette, (clrused == 0? 1<<m_bpp : clrused)*4 );
iscolor = IsColorPalette( m_palette, m_bpp );
}
else if( m_bpp == 16 && m_rle_code == BMP_BITFIELDS )
@@ -282,7 +283,9 @@ bool BmpDecoder::readData( Mat& img )
else if( code > 2 ) // absolute mode
{
if( data + code*nch > line_end ) goto decode_rle4_bad;
- m_strm.getBytes( src, (((code + 1)>>1) + 1) & -2 );
+ int sz = (((code + 1)>>1) + 1) & (~1);
+ CV_Assert((size_t)sz < _src.getSize());
+ m_strm.getBytes(src, sz);
if( color )
data = FillColorRow4( data, src, code, m_palette );
else
@@ -371,7 +374,9 @@ decode_rle4_bad: ;
if( data + code3 > line_end )
goto decode_rle8_bad;
- m_strm.getBytes( src, (code + 1) & -2 );
+ int sz = (code + 1) & (~1);
+ CV_Assert((size_t)sz < _src.getSize());
+ m_strm.getBytes(src, sz);
if( color )
data = FillColorRow8( data, src, code, m_palette );
else
diff --git a/modules/highgui/src/grfmt_pxm.cpp b/modules/highgui/src/grfmt_pxm.cpp
index f73bbb1bf6b..e609d165966 100644
--- a/modules/highgui/src/grfmt_pxm.cpp
+++ b/modules/highgui/src/grfmt_pxm.cpp
@@ -43,50 +43,58 @@
#include "precomp.hpp"
#include "utils.hpp"
#include "grfmt_pxm.hpp"
+#include <iostream>
namespace cv
{
///////////////////////// P?M reader //////////////////////////////
-static int ReadNumber( RLByteStream& strm, int maxdigits )
+static int ReadNumber(RLByteStream& strm, int maxdigits = 0)
{
int code;
- int val = 0;
+ int64 val = 0;
int digits = 0;
code = strm.getByte();
- if( !isdigit(code))
+ while (!isdigit(code))
{
- do
+ if (code == '#' )
{
- if( code == '#' )
+ do
{
- do
- {
- code = strm.getByte();
- }
- while( code != '\n' && code != '\r' );
+ code = strm.getByte();
}
-
+ while (code != '\n' && code != '\r');
code = strm.getByte();
-
- while( isspace(code))
+ }
+ else if (isspace(code))
+ {
+ while (isspace(code))
code = strm.getByte();
}
- while( !isdigit( code ));
+ else
+ {
+#if 1
+ CV_Error_(CV_StsError, ("PXM: Unexpected code in ReadNumber(): 0x%x (%d)", code, code));
+#else
+ code = strm.getByte();
+#endif
+ }
}
do
{
- val = val*10 + code - '0';
- if( ++digits >= maxdigits ) break;
+ val = val*10 + (code - '0');
+ CV_Assert(val <= INT_MAX && "PXM: ReadNumber(): result is too large");
+ digits++;
+ if (maxdigits != 0 && digits >= maxdigits) break;
code = strm.getByte();
}
- while( isdigit(code));
+ while (isdigit(code));
- return val;
+ return (int)val;
}
@@ -119,13 +127,13 @@ ImageDecoder PxMDecoder::newDecoder() const
return new PxMDecoder;
}
-void PxMDecoder::close()
+void PxMDecoder::close()
{
m_strm.close();
}
-bool PxMDecoder::readHeader()
+bool PxMDecoder::readHeader()
{
bool result = false;
@@ -155,10 +163,10 @@ bool PxMDecoder::readHeader()
m_binary = code >= '4';
m_type = m_bpp > 8 ? CV_8UC3 : CV_8UC1;
- m_width = ReadNumber( m_strm, INT_MAX );
- m_height = ReadNumber( m_strm, INT_MAX );
+ m_width = ReadNumber(m_strm);
+ m_height = ReadNumber(m_strm);
- m_maxval = m_bpp == 1 ? 1 : ReadNumber( m_strm, INT_MAX );
+ m_maxval = m_bpp == 1 ? 1 : ReadNumber(m_strm);
if( m_maxval > 65535 )
throw RBS_BAD_HEADER;
@@ -172,8 +180,14 @@ bool PxMDecoder::readHeader()
result = true;
}
}
- catch(...)
+ catch (const cv::Exception&)
{
+ throw;
+ }
+ catch (...)
+ {
+ std::cerr << "PXM::readHeader(): unknown C++ exception" << std::endl << std::flush;
+ throw;
}
if( !result )
@@ -193,27 +207,23 @@ bool PxMDecoder::readData( Mat& img )
int step = (int)img.step;
PaletteEntry palette[256];
bool result = false;
- int bit_depth = CV_ELEM_SIZE1(m_type)*8;
- int src_pitch = (m_width*m_bpp*bit_depth/8 + 7)/8;
+ const int bit_depth = CV_ELEM_SIZE1(m_type)*8;
+ const int src_pitch = (m_width*m_bpp*(bit_depth/8) + 7) / 8;
+
int nch = CV_MAT_CN(m_type);
int width3 = m_width*nch;
- int i, x, y;
if( m_offset < 0 || !m_strm.isOpened())
return false;
- AutoBuffer<uchar,1024> _src(src_pitch + 32);
- uchar* src = _src;
- AutoBuffer<uchar,1024> _gray_palette;
- uchar* gray_palette = _gray_palette;
+ uchar gray_palette[256] = {0};
// create LUT for converting colors
if( bit_depth == 8 )
{
- _gray_palette.allocate(m_maxval + 1);
- gray_palette = _gray_palette;
+ CV_Assert(m_maxval < 256);
- for( i = 0; i <= m_maxval; i++ )
+ for (int i = 0; i <= m_maxval; i++)
gray_palette[i] = (uchar)((i*255/m_maxval)^(m_bpp == 1 ? 255 : 0));
FillGrayPalette( palette, m_bpp==1 ? 1 : 8 , m_bpp == 1 );
@@ -227,12 +237,16 @@ bool PxMDecoder::readData( Mat& img )
{
////////////////////////// 1 BPP /////////////////////////
case 1:
+ CV_Assert(CV_MAT_DEPTH(m_type) == CV_8U);
if( !m_binary )
{
- for( y = 0; y < m_height; y++, data += step )
+ AutoBuffer<uchar> _src(m_width);
+ uchar* src = _src;
+
+ for (int y = 0; y < m_height; y++, data += step)
{
- for( x = 0; x < m_width; x++ )
- src[x] = ReadNumber( m_strm, 1 ) != 0;
+ for (int x = 0; x < m_width; x++)
+ src[x] = ReadNumber(m_strm, 1) != 0;
if( color )
FillColorRow8( data, src, m_width, palette );
@@ -242,7 +256,10 @@ bool PxMDecoder::readData( Mat& img )
}
else
{
- for( y = 0; y < m_height; y++, data += step )
+ AutoBuffer<uchar> _src(src_pitch);
+ uchar* src = _src;
+
+ for (int y = 0; y < m_height; y++, data += step)
{
m_strm.getBytes( src, src_pitch );
@@ -258,11 +275,15 @@ bool PxMDecoder::readData( Mat& img )
////////////////////////// 8 BPP /////////////////////////
case 8:
case 24:
- for( y = 0; y < m_height; y++, data += step )
+ {
+ AutoBuffer<uchar> _src(std::max<size_t>(width3*2, src_pitch));
+ uchar* src = _src;
+
+ for (int y = 0; y < m_height; y++, data += step)
{
if( !m_binary )
{
- for( x = 0; x < width3; x++ )
+ for (int x = 0; x < width3; x++)
{
int code = ReadNumber( m_strm, INT_MAX );
if( (unsigned)code > (unsigned)m_maxval ) code = m_maxval;
@@ -277,7 +298,7 @@ bool PxMDecoder::readData( Mat& img )
m_strm.getBytes( src, src_pitch );
if( bit_depth == 16 && !isBigEndian() )
{
- for( x = 0; x < width3; x++ )
+ for (int x = 0; x < width3; x++)
{
uchar v = src[x * 2];
src[x * 2] = src[x * 2 + 1];
@@ -288,7 +309,7 @@ bool PxMDecoder::readData( Mat& img )
if( img.depth() == CV_8U && bit_depth == 16 )
{
- for( x = 0; x < width3; x++ )
+ for (int x = 0; x < width3; x++)
{
int v = ((ushort *)src)[x];
src[x] = (uchar)(v >> 8);
@@ -329,12 +350,19 @@ bool PxMDecoder::readData( Mat& img )
}
result = true;
break;
+ }
default:
- assert(0);
+ CV_Error(CV_StsError, "m_bpp is not supported");
}
}
- catch(...)
+ catch (const cv::Exception&)
+ {
+ throw;
+ }
+ catch (...)
{
+ std::cerr << "PXM::readData(): unknown exception" << std::endl << std::flush;
+ throw;
}
return result;
@@ -410,8 +438,9 @@ bool PxMEncoder::write( const Mat& img, const vector<int>& params )
char* buffer = _buffer;
// write header;
- sprintf( buffer, "P%c\n%d %d\n%d\n",
+ sprintf( buffer, "P%c\n# Generated by OpenCV %s\n%d %d\n%d\n",
'2' + (channels > 1 ? 1 : 0) + (isBinary ? 3 : 0),
+ CV_VERSION,
width, height, (1 << depth) - 1 );
strm.putBytes( buffer, (int)strlen(buffer) );
diff --git a/modules/highgui/src/loadsave.cpp b/modules/highgui/src/loadsave.cpp
index 81c708acdd4..9b270c900f7 100644
--- a/modules/highgui/src/loadsave.cpp
+++ b/modules/highgui/src/loadsave.cpp
@@ -48,12 +48,32 @@
#undef min
#undef max
+#include <iostream>
+
/****************************************************************************************\
* Image Codecs *
\****************************************************************************************/
namespace cv
{
+// TODO Add runtime configuration
+#define CV_IO_MAX_IMAGE_PARAMS (50)
+#define CV_IO_MAX_IMAGE_WIDTH (1<<20)
+#define CV_IO_MAX_IMAGE_HEIGHT (1<<20)
+#define CV_IO_MAX_IMAGE_PIXELS (1<<30) // 1 Gigapixel
+
+static Size validateInputImageSize(const Size& size)
+{
+ CV_Assert(size.width > 0);
+ CV_Assert(size.width <= CV_IO_MAX_IMAGE_WIDTH);
+ CV_Assert(size.height > 0);
+ CV_Assert(size.height <= CV_IO_MAX_IMAGE_HEIGHT);
+ uint64 pixels = (uint64)size.width * (uint64)size.height;
+ CV_Assert(pixels <= CV_IO_MAX_IMAGE_PIXELS);
+ return size;
+}
+
+
struct ImageCodecInitializer
{
ImageCodecInitializer()
@@ -203,12 +223,26 @@ imread_( const string& filename, int flags, int hdrtype, Mat* mat=0 )
if( decoder.empty() )
return 0;
decoder->setSource(filename);
- if( !decoder->readHeader() )
+
+ try
+ {
+ // read the header to make sure it succeeds
+ if (!decoder->readHeader())
+ return 0;
+ }
+ catch (const cv::Exception& e)
+ {
+ std::cerr << "imread_('" << filename << "'): can't read header: " << e.what() << std::endl << std::flush;
return 0;
+ }
+ catch (...)
+ {
+ std::cerr << "imread_('" << filename << "'): can't read header: unknown exception" << std::endl << std::flush;
+ return 0;
+ }
- CvSize size;
- size.width = decoder->width();
- size.height = decoder->height();
+
+ Size size = validateInputImageSize(Size(decoder->width(), decoder->height()));
int type = decoder->type();
if( flags != -1 )
@@ -242,7 +276,21 @@ imread_( const string& filename, int flags, int hdrtype, Mat* mat=0 )
temp = cvarrToMat(image);
}
- if( !decoder->readData( *data ))
+ bool success = false;
+ try
+ {
+ if (decoder->readData(*data))
+ success = true;
+ }
+ catch (const cv::Exception& e)
+ {
+ std::cerr << "imread_('" << filename << "'): can't read data: " << e.what() << std::endl << std::flush;
+ }
+ catch (...)
+ {
+ std::cerr << "imread_('" << filename << "'): can't read data: unknown exception" << std::endl << std::flush;
+ }
+ if (!success)
{
cvReleaseImage( &image );
cvReleaseMat( &matrix );
@@ -288,6 +336,7 @@ static bool imwrite_( const string& filename, const Mat& image,
}
encoder->setDestination( filename );
+ CV_Assert(params.size() <= CV_IO_MAX_IMAGE_PARAMS*2);
bool code = encoder->write( *pimage, params );
// CV_Assert( code );
@@ -326,16 +375,34 @@ imdecode_( const Mat& buf, int flags, int hdrtype, Mat* mat=0 )
decoder->setSource(filename);
}
- if( !decoder->readHeader() )
+ bool success = false;
+ try
{
- if( !filename.empty() )
- remove(filename.c_str());
+ if (decoder->readHeader())
+ success = true;
+ }
+ catch (const cv::Exception& e)
+ {
+ std::cerr << "imdecode_('" << filename << "'): can't read header: " << e.what() << std::endl << std::flush;
+ }
+ catch (...)
+ {
+ std::cerr << "imdecode_('" << filename << "'): can't read header: unknown exception" << std::endl << std::flush;
+ }
+ if (!success)
+ {
+ if (!filename.empty())
+ {
+ if (0 != remove(filename.c_str()))
+ {
+ std::cerr << "unable to remove temporary file:" << filename << std::endl << std::flush;
+ }
+ }
return 0;
}
- CvSize size;
- size.width = decoder->width();
- size.height = decoder->height();
+ // established the required input image size
+ Size size = validateInputImageSize(Size(decoder->width(), decoder->height()));
int type = decoder->type();
if( flags != -1 )
@@ -369,11 +436,30 @@ imdecode_( const Mat& buf, int flags, int hdrtype, Mat* mat=0 )
temp = cvarrToMat(image);
}
- bool code = decoder->readData( *data );
- if( !filename.empty() )
- remove(filename.c_str());
+ success = false;
+ try
+ {
+ if (decoder->readData(*data))
+ success = true;
+ }
+ catch (const cv::Exception& e)
+ {
+ std::cerr << "imdecode_('" << filename << "'): can't read data: " << e.what() << std::endl << std::flush;
+ }
+ catch (...)
+ {
+ std::cerr << "imdecode_('" << filename << "'): can't read data: unknown exception" << std::endl << std::flush;
+ }
- if( !code )
+ if (!filename.empty())
+ {
+ if (0 != remove(filename.c_str()))
+ {
+ std::cerr << "unable to remove temporary file:" << filename << std::endl << std::flush;
+ }
+ }
+
+ if (!success)
{
cvReleaseImage( &image );
cvReleaseMat( &matrix );
@@ -490,7 +576,7 @@ cvSaveImage( const char* filename, const CvArr* arr, const int* _params )
if( _params )
{
for( ; _params[i] > 0; i += 2 )
- ;
+ CV_Assert(i < CV_IO_MAX_IMAGE_PARAMS*2); // Limit number of params for security reasons
}
return cv::imwrite_(filename, cv::cvarrToMat(arr),
i > 0 ? cv::vector<int>(_params, _params+i) : cv::vector<int>(),
@@ -521,7 +607,7 @@ cvEncodeImage( const char* ext, const CvArr* arr, const int* _params )
if( _params )
{
for( ; _params[i] > 0; i += 2 )
- ;
+ CV_Assert(i < CV_IO_MAX_IMAGE_PARAMS*2); // Limit number of params for security reasons
}
cv::Mat img = cv::cvarrToMat(arr);
if( CV_IS_IMAGE(arr) && ((const IplImage*)arr)->origin == IPL_ORIGIN_BL )

View File

@ -1,21 +0,0 @@
diff -ruN OpenCV-2.4.2.orig/cmake/OpenCVCompilerOptions.cmake OpenCV-2.4.2/cmake/OpenCVCompilerOptions.cmake
--- OpenCV-2.4.2.orig/cmake/OpenCVCompilerOptions.cmake 2012-06-29 00:55:15.000000000 +0200
+++ OpenCV-2.4.2/cmake/OpenCVCompilerOptions.cmake 2012-07-16 23:51:24.244907235 +0200
@@ -110,17 +110,6 @@
endif()
# Other optimizations
- if(ENABLE_OMIT_FRAME_POINTER)
- add_extra_compiler_option(-fomit-frame-pointer)
- else()
- add_extra_compiler_option(-fno-omit-frame-pointer)
- endif()
- if(ENABLE_FAST_MATH)
- add_extra_compiler_option(-ffast-math)
- endif()
- if(ENABLE_POWERPC)
- add_extra_compiler_option("-mcpu=G3 -mtune=G5")
- endif()
if(ENABLE_SSE)
add_extra_compiler_option(-msse)
endif()

View File

@ -1,22 +0,0 @@
diff -ruN OpenCV-2.4.3.orig/modules/highgui/src/grfmt_tiff.cpp OpenCV-2.4.3/modules/highgui/src/grfmt_tiff.cpp
--- OpenCV-2.4.3.orig/modules/highgui/src/grfmt_tiff.cpp 2012-10-12 00:55:12.000000000 +0200
+++ OpenCV-2.4.3/modules/highgui/src/grfmt_tiff.cpp 2012-11-05 21:37:40.000000000 +0100
@@ -47,6 +47,7 @@
#include "precomp.hpp"
#include "grfmt_tiff.hpp"
+#include "unistd.h"
namespace cv
{
diff -ruN OpenCV-2.4.3.orig/modules/highgui/src/window_QT.h OpenCV-2.4.3/modules/highgui/src/window_QT.h
--- OpenCV-2.4.3.orig/modules/highgui/src/window_QT.h 2012-10-18 00:55:38.000000000 +0200
+++ OpenCV-2.4.3/modules/highgui/src/window_QT.h 2012-11-05 21:38:41.000000000 +0100
@@ -41,6 +41,7 @@
#define __OPENCV_HIGHGUI_QT_H__
#include "precomp.hpp"
+#include "unistd.h"
#if defined( HAVE_QT_OPENGL )
#include <QtOpenGL>

View File

@ -1,32 +0,0 @@
diff -ruN opencv-2.4.8.orig/CMakeLists.txt opencv-2.4.8/CMakeLists.txt
--- opencv-2.4.8.orig/CMakeLists.txt 2013-12-27 18:09:18.000000000 +0100
+++ opencv-2.4.8/CMakeLists.txt 2014-01-24 22:06:12.000000000 +0100
@@ -164,6 +164,7 @@
OCV_OPTION(WITH_OPENCLAMDFFT "Include AMD OpenCL FFT library support" ON IF (NOT ANDROID AND NOT IOS) )
OCV_OPTION(WITH_OPENCLAMDBLAS "Include AMD OpenCL BLAS library support" ON IF (NOT ANDROID AND NOT IOS) )
OCV_OPTION(WITH_INTELPERC "Include Intel Perceptual Computing support" OFF IF WIN32 )
+OCV_OPTION(WITH_JAVA "Include Java support" ON)
# OpenCV build components
# ===================================================
@@ -449,6 +450,8 @@
include(cmake/OpenCVDetectPython.cmake)
# --- Java Support ---
+if(WITH_JAVA)
+
include(cmake/OpenCVDetectApacheAnt.cmake)
if(ANDROID)
include(cmake/OpenCVDetectAndroidSDK.cmake)
@@ -466,6 +469,11 @@
SET(CAN_BUILD_ANDROID_PROJECTS FALSE)
endif()
+else()
+ SET(ANT_EXECUTABLE "")
+ SET(CAN_BUILD_ANDROID_PROJECTS FALSE)
+endif()
+
# --- OpenCL ---
if(WITH_OPENCL)
include(cmake/OpenCVDetectOpenCL.cmake)

View File

@ -1,12 +0,0 @@
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -528,6 +528,9 @@
if(HAVE_CUFFT)
set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${CUDA_cufft_LIBRARY})
endif()
+ foreach(p ${CUDA_LIBS_PATH})
+ set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} -L${p})
+ endforeach()
endif()
# ----------------------------------------------------------------------------

View File

@ -1,14 +0,0 @@
Index: opencv-2.4.11/modules/highgui/src/window_QT.cpp
===================================================================
--- opencv-2.4.11.orig/modules/highgui/src/window_QT.cpp
+++ opencv-2.4.11/modules/highgui/src/window_QT.cpp
@@ -3118,7 +3118,9 @@ void OpenGlViewPort::updateGl()
void OpenGlViewPort::initializeGL()
{
+#ifdef GL_PERSPECTIVE_CORRECTION_HINT
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);
+#endif
}
void OpenGlViewPort::resizeGL(int w, int h)

View File

@ -1,27 +0,0 @@
diff -purN a/modules/dnn_modern/CMakeLists.txt b/modules/dnn_modern/CMakeLists.txt
--- a/modules/dnn_modern/CMakeLists.txt 2017-07-31 15:58:38.000000000 +0100
+++ b/modules/dnn_modern/CMakeLists.txt 2018-01-15 17:15:15.202454388 +0000
@@ -15,23 +15,6 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_CU
# MODULE REQUIREMENTS
# ----------------------------------------------------------------------------
-set(TINY_DNN_CPP_PATH "${OpenCV_BINARY_DIR}/3rdparty/tinydnn")
-set(TINY_DNN_CPP_ROOT "${TINY_DNN_CPP_PATH}/tiny-dnn-1.0.0a3")
-ocv_download(FILENAME "v1.0.0a3.tar.gz"
- HASH "adb1c512e09ca2c7a6faef36f9c53e59"
- URL
- "${OPENCV_TINY_DNN_URL}"
- "$ENV{OPENCV_TINY_DNN_URL}"
- "https://github.com/tiny-dnn/tiny-dnn/archive/"
- DESTINATION_DIR "${TINY_DNN_CPP_PATH}"
- STATUS TINY_DNN_DOWNLOAD_SUCCESS
- ID "tiny-dnn"
- UNPACK RELATIVE_URL)
-
-if(NOT TINY_DNN_DOWNLOAD_SUCCESS)
- message(STATUS "Failed to download tiny-dnn sources")
-endif()
-
find_package(TinyDNN QUIET)
include(CheckCXXCompilerFlag)

View File

@ -1,29 +0,0 @@
--- a/CMakeLists.txt 2018-05-13 20:47:11.635871328 +0200
+++ b/CMakeLists.txt 2018-05-13 20:47:49.289872617 +0200
@@ -187,6 +187,7 @@
# ----------------------------------------------------------------------------
OCV_OPTION(OPENCV_ENABLE_NONFREE "Enable non-free algorithms" OFF)
+OCV_OPTION(ENABLE_DOWNLOAD "Enable download during configure" ON)
# 3rd party libs
OCV_OPTION(BUILD_ZLIB "Build zlib from source" WIN32 OR APPLE)
--- a/cmake/OpenCVDownload.cmake 2018-05-13 21:22:14.966943336 +0200
+++ b/cmake/OpenCVDownload.cmake 2018-05-13 21:23:15.959945424 +0200
@@ -32,6 +32,7 @@
function(ocv_download)
+ if(ENABLE_DOWNLOAD)
cmake_parse_arguments(DL "UNPACK;RELATIVE_URL" "FILENAME;HASH;DESTINATION_DIR;ID;STATUS" "URL" ${ARGN})
macro(ocv_download_log)
@@ -236,4 +237,7 @@
if(OCV_DOWNLOAD_HASH_NAME)
set(${OCV_DOWNLOAD_HASH_NAME} "${DL_HASH}" CACHE INTERNAL "")
endif()
+ else()
+ message( "Download was disabled during configure phase by ENABLE_DOWNLOAD=OFF" )
+ endif()
endfunction()

View File

@ -1,56 +0,0 @@
From 549b5df22520b60b91dd77096434d79425b31ac2 Mon Sep 17 00:00:00 2001
From: Alexander Alekhin <alexander.alekhin@intel.com>
Date: Mon, 28 May 2018 18:07:23 +0300
Subject: [PATCH] build: workaround issues with C compilation mode
- cvdef.h + cvRound (double only)
- highgui_c.h
---
modules/core/include/opencv2/core/cvdef.h | 8 +++++++-
modules/highgui/include/opencv2/highgui/highgui_c.h | 2 ++
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/modules/core/include/opencv2/core/cvdef.h b/modules/core/include/opencv2/core/cvdef.h
index a87ced09d78..4ab72b34cc1 100644
--- a/modules/core/include/opencv2/core/cvdef.h
+++ b/modules/core/include/opencv2/core/cvdef.h
@@ -480,7 +480,7 @@ Cv64suf;
// Integer types portatibility
#ifdef OPENCV_STDINT_HEADER
#include OPENCV_STDINT_HEADER
-#else
+#elif defined(__cplusplus)
#if defined(_MSC_VER) && _MSC_VER < 1600 /* MSVS 2010 */
namespace cv {
typedef signed char int8_t;
@@ -517,9 +517,15 @@ typedef ::int64_t int64_t;
typedef ::uint64_t uint64_t;
}
#endif
+#else // pure C
+#include <stdint.h>
#endif
//! @}
+#ifndef __cplusplus
+#include "opencv2/core/fast_math.hpp" // define cvRound(double)
+#endif
+
#endif // OPENCV_CORE_CVDEF_H
diff --git a/modules/highgui/include/opencv2/highgui/highgui_c.h b/modules/highgui/include/opencv2/highgui/highgui_c.h
index 1eb414a76ca..35413139c79 100644
--- a/modules/highgui/include/opencv2/highgui/highgui_c.h
+++ b/modules/highgui/include/opencv2/highgui/highgui_c.h
@@ -135,8 +135,10 @@ CVAPI(int) cvNamedWindow( const char* name, int flags CV_DEFAULT(CV_WINDOW_AUTOS
CVAPI(void) cvSetWindowProperty(const char* name, int prop_id, double prop_value);
CVAPI(double) cvGetWindowProperty(const char* name, int prop_id);
+#ifdef __cplusplus // FIXIT remove in OpenCV 4.0
/* Get window image rectangle coordinates, width and height */
CVAPI(cv::Rect)cvGetWindowImageRect(const char* name);
+#endif
/* display image within window (highgui windows remember their content) */
CVAPI(void) cvShowImage( const char* name, const CvArr* image );

View File

@ -1,14 +0,0 @@
diff -Naur a/cmake/FindCUDA.cmake b/cmake/FindCUDA.cmake
--- a/cmake/FindCUDA.cmake 2018-05-26 12:57:45.698858052 +0100
+++ b/cmake/FindCUDA.cmake 2018-05-26 16:49:01.196390803 +0100
@@ -447,8 +447,8 @@
# Parse HOST_COMPILATION mode.
option(CUDA_HOST_COMPILATION_CPP "Generated file extension" ON)
-# Extra user settable flags
-set(CUDA_NVCC_FLAGS "" CACHE STRING "Semi-colon delimit multiple arguments.")
+ #Extra user settable flags
+set(CUDA_NVCC_FLAGS "--expt-relaxed-constexpr;" CACHE STRING "Semi-colon delimit multiple arguments.")
if(CMAKE_GENERATOR MATCHES "Visual Studio")
set(_CUDA_MSVC_HOST_COMPILER "$(VCInstallDir)Tools/MSVC/$(VCToolsVersion)/bin/Host$(Platform)/$(PlatformTarget)")

View File

@ -1,26 +0,0 @@
From 20f5fa8e3e880bc8b2e5156e9f25f7fb756ed8e4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= <sergio@serjux.com>
Date: Wed, 28 Feb 2018 19:21:31 +0000
Subject: [PATCH] Fix build with VA
This commit readd ${VA_LIBRARIES} ${VA_INTEL_LIBRARIES}
that was missed in commit 2200e13c7193e0fe9db4b9f7c4bee3a7ef043909
diff --git a/samples/va_intel/CMakeLists.txt b/samples/va_intel/CMakeLists.txt
- ocv_target_link_libraries(${the_target} ${OPENCV_LINKER_LIBS} ${OPENCV_VA_INTEL_SAMPLES_REQUIRED_DEPS} ${VA_LIBRARIES} ${VA_INTEL_LIBRARIES})
+ ocv_target_link_libraries(${tgt} ${OPENCV_LINKER_LIBS} ${OPENCV_VA_INTEL_SAMPLES_REQUIRED_DEPS})
---
samples/va_intel/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/samples/va_intel/CMakeLists.txt b/samples/va_intel/CMakeLists.txt
index af51dd32061..04f2ea5fd40 100644
--- a/samples/va_intel/CMakeLists.txt
+++ b/samples/va_intel/CMakeLists.txt
@@ -17,5 +17,5 @@ ocv_include_modules_recurse(${OPENCV_VA_INTEL_SAMPLES_REQUIRED_DEPS})
file(GLOB all_samples RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cpp)
foreach(sample_filename ${all_samples})
ocv_define_sample(tgt ${sample_filename} va_intel)
- ocv_target_link_libraries(${tgt} ${OPENCV_LINKER_LIBS} ${OPENCV_VA_INTEL_SAMPLES_REQUIRED_DEPS})
+ ocv_target_link_libraries(${tgt} ${OPENCV_LINKER_LIBS} ${OPENCV_VA_INTEL_SAMPLES_REQUIRED_DEPS} ${VA_LIBRARIES} ${VA_INTEL_LIBRARIES})
endforeach()

View File

@ -1,27 +0,0 @@
From 7dc162cb4252ccf461f1c63650abde3c8807b79c Mon Sep 17 00:00:00 2001
From: Alexander Alekhin <alexander.alekhin@intel.com>
Date: Mon, 9 Apr 2018 18:25:51 +0300
Subject: [PATCH] core: fix mm_pause() for non-SSE i386 builds
replaced to safe binary compatible 'rep; nop' asm instruction
---
modules/core/src/parallel_impl.cpp | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/modules/core/src/parallel_impl.cpp b/modules/core/src/parallel_impl.cpp
index 78d9eb63694..bc64fce7a81 100644
--- a/modules/core/src/parallel_impl.cpp
+++ b/modules/core/src/parallel_impl.cpp
@@ -49,7 +49,11 @@ DECLARE_CV_YIELD
DECLARE_CV_PAUSE
#endif
#ifndef CV_PAUSE
-#if defined __GNUC__ && (defined __i386__ || defined __x86_64__)
+# if defined __GNUC__ && (defined __i386__ || defined __x86_64__)
+# if !defined(__SSE__)
+ static inline void cv_non_sse_mm_pause() { __asm__ __volatile__ ("rep; nop"); }
+# define _mm_pause cv_non_sse_mm_pause
+# endif
# define CV_PAUSE(v) do { for (int __delay = (v); __delay > 0; --__delay) { _mm_pause(); } } while (0)
# elif defined __GNUC__ && defined __aarch64__
# define CV_PAUSE(v) do { for (int __delay = (v); __delay > 0; --__delay) { asm volatile("yield" ::: "memory"); } } while (0)

View File

@ -1,30 +0,0 @@
From a2d6fc7ac040c6ef94a36515f9ea24428f8f1ecc Mon Sep 17 00:00:00 2001
From: Alexander Alekhin <alexander.alekhin@intel.com>
Date: Tue, 24 Apr 2018 12:40:25 +0300
Subject: [PATCH] cmake: fix popcnt detection
via GCC/Clang __POPCNT__ define
---
cmake/checks/cpu_popcnt.cpp | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/cmake/checks/cpu_popcnt.cpp b/cmake/checks/cpu_popcnt.cpp
index 16e5575108b..44c7deda053 100644
--- a/cmake/checks/cpu_popcnt.cpp
+++ b/cmake/checks/cpu_popcnt.cpp
@@ -4,12 +4,14 @@
# define CV_POPCNT_U64 _mm_popcnt_u64
# endif
# define CV_POPCNT_U32 _mm_popcnt_u32
-#else
+#elif defined(__POPCNT__)
# include <popcntintrin.h>
# if defined(__x86_64__)
# define CV_POPCNT_U64 __builtin_popcountll
# endif
# define CV_POPCNT_U32 __builtin_popcount
+#else
+# error "__POPCNT__ is not defined by compiler"
#endif
int main()

View File

@ -1,13 +0,0 @@
--- a/cmake/OpenCVDetectPython.cmake 2018-05-31 09:14:42.998873104 +0200
+++ b/cmake/OpenCVDetectPython.cmake 2018-05-31 09:26:08.444914001 +0200
@@ -140,8 +140,8 @@
else() #debian based assumed, install to the dist-packages.
set(_packages_path "python${_version_major_minor}/dist-packages")
endif()
- if(EXISTS "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/${${packages_path}}")
- set(_packages_path "lib${LIB_SUFFIX}/${_packages_path}")
+ if(EXISTS "${CMAKE_INSTALL_PREFIX}/lib${LIBPY_SUFFIX}/${${packages_path}}")
+ set(_packages_path "lib${LIBPY_SUFFIX}/${_packages_path}")
else()
set(_packages_path "lib/${_packages_path}")
endif()

View File

@ -1,12 +0,0 @@
diff -urN a/modules/python/src2/cv2.cpp b/modules/python/src2/cv2.cpp
--- a/modules/python/src2/cv2.cpp 2018-02-23 11:38:33.000000000 +0300
+++ b/modules/python/src2/cv2.cpp 2019-08-10 22:28:03.337071791 +0300
@@ -886,7 +886,7 @@
(void)name;
if(!obj || obj == Py_None)
return true;
- char* str = PyString_AsString(obj);
+ const char* str = PyString_AsString(obj);
if(!str)
return false;
value = String(str);

View File

@ -1,42 +0,0 @@
--- a/CMakeLists.txt 2019-01-10 19:29:06.831367707 +0100
+++ b/CMakeLists.txt 2019-01-10 19:30:11.125364384 +0100
@@ -522,23 +522,23 @@
# ----------------------------------------------------------------------------
# Autodetect if we are in a GIT repository
# ----------------------------------------------------------------------------
-find_host_package(Git QUIET)
+# find_host_package(Git QUIET)
-if(NOT DEFINED OPENCV_VCSVERSION AND GIT_FOUND)
- execute_process(COMMAND "${GIT_EXECUTABLE}" describe --tags --always --dirty --match "[0-9].[0-9].[0-9]*"
- WORKING_DIRECTORY "${OpenCV_SOURCE_DIR}"
- OUTPUT_VARIABLE OPENCV_VCSVERSION
- RESULT_VARIABLE GIT_RESULT
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE
- )
- if(NOT GIT_RESULT EQUAL 0)
- set(OPENCV_VCSVERSION "unknown")
- endif()
-elseif(NOT DEFINED OPENCV_VCSVERSION)
- # We don't have git:
- set(OPENCV_VCSVERSION "unknown")
-endif()
+# if(NOT DEFINED OPENCV_VCSVERSION AND GIT_FOUND)
+# execute_process(COMMAND "${GIT_EXECUTABLE}" describe --tags --always --dirty --match "[0-9].[0-9].[0-9]*"
+# WORKING_DIRECTORY "${OpenCV_SOURCE_DIR}"
+# OUTPUT_VARIABLE OPENCV_VCSVERSION
+# RESULT_VARIABLE GIT_RESULT
+# ERROR_QUIET
+# OUTPUT_STRIP_TRAILING_WHITESPACE
+# )
+# if(NOT GIT_RESULT EQUAL 0)
+# set(OPENCV_VCSVERSION "unknown")
+# endif()
+# elseif(NOT DEFINED OPENCV_VCSVERSION)
+# # We don't have git:
+# set(OPENCV_VCSVERSION "unknown")
+#endif()
# ----------------------------------------------------------------------------

View File

@ -1,37 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>amynka@gentoo.org</email>
<name>Amy Liffey</name>
</maintainer>
<longdescription>
OpenCV (Open Source Computer Vision) is a library of programming functions mainly aimed at real time computer vision.
Example applications of the OpenCV library are Human-Computer Interaction (HCI); Object Identification, Segmentation and Recognition;
Face Recognition; Gesture Recognition; Motion Tracking, Ego Motion, Motion Understanding; Structure From Motion (SFM); and Mobile Robotics.
</longdescription>
<use>
<flag name="contrib">Install user contributed scripts from opencv_contrib (Experimental!)</flag>
<flag name="cuda">Enable NVIDIA Cuda computations support (Experimental!)</flag>
<flag name="eigen">Enable usage of <pkg>dev-cpp/eigen</pkg> for computations</flag>
<flag name="gdal">Enable support for sci-libs/gdal library</flag>
<flag restrict="&gt;=media-libs/opencv-3.1.0" name="gflags">Use Google's C++ argument parsing library</flag>
<flag restrict="&gt;=media-libs/opencv-3.1.0" name="glog">Use Google's C++ loggin library</flag>
<flag restrict="&gt;=media-libs/opencv-3.1.0" name="contrib_xfeatures2d">Enables xfeatures2d and autodownload of samples in contrib</flag>
<flag restrict="&gt;=media-libs/opencv-3.1.0" name="contrib_cvv">CVV module requires Qt5</flag>
<flag restrict="&gt;=media-libs/opencv-3.3.0" name="contrib_dnn">DNN module contrib requires tiny dnn</flag>
<flag restrict="&gt;=media-libs/opencv-3.1.0" name="contrib_hdf">HDF module requires <pkg>sci-libs/hdf5</pkg></flag>
<flag restrict="&gt;=media-libs/opencv-3.1.0" name="contrib_sfm">SFM module requires eigen, gflags, and glog</flag>
<flag restrict="&gt;=media-libs/opencv-3.4.0" name="dnn_samples">Download dnn caffeemodel samples</flag>
<flag name="opencl">Add support for OpenCL</flag>
<flag name="libav">Add support for libav</flag>
<flag restrict="&gt;=media-libs/opencv-3.1.0" name="tesseract">Use Google's OCR Engine</flag>
<flag name="testprograms">Build and install programs for testing OpenCV (performance)</flag>
<flag name="vtk">Build new 3D visualization module viz based on sci-libs/vtk</flag>
</use>
<upstream>
<remote-id type="cpe">cpe:/a:opencv:opencv</remote-id>
<remote-id type="sourceforge">opencvlibrary</remote-id>
<remote-id type="github">Itseez/opencv_contrib</remote-id>
</upstream>
</pkgmetadata>

View File

@ -1,513 +0,0 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# ###########################################################
# This is a temporary hack for https://bugs.gentoo.org/699730
# Ebuild will be removed as sonn as it is fixed.
# ###########################################################
EAPI=7
PYTHON_COMPAT=( python3_{8..10} )
: ${CMAKE_MAKEFILE_GENERATOR:=ninja}
inherit java-pkg-opt-2 java-ant-2 python-r1 toolchain-funcs cmake-multilib
DESCRIPTION="A collection of algorithms and sample code for various computer vision problems"
HOMEPAGE="https://opencv.org"
TINY_DNN_PV="1.0.0a3"
SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz
dnn_samples? ( https://dev.gentoo.org/~amynka/snap/${PN}-3.4.0-res10_300x300-caffeemodel.tar.gz )
contrib? (
https://github.com/${PN}/${PN}_contrib/archive/${PV}.tar.gz -> ${P}_contrib.tar.gz
contrib_dnn? (
https://github.com/tiny-dnn/tiny-dnn/archive/v${TINY_DNN_PV}.tar.gz -> tiny-dnn-${TINY_DNN_PV}.tar.gz
https://dev.gentoo.org/~amynka/snap/${PN}-3.4.0-face_landmark_model.tar.gz
)
contrib_xfeatures2d? ( https://dev.gentoo.org/~amynka/snap/vgg_boostdesc-3.2.0.tar.gz )
)"
LICENSE="BSD"
SLOT="0/3.4.1" # subslot = libopencv* soname version
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux"
IUSE="contrib contrib_cvv contrib_dnn contrib_hdf contrib_sfm contrib_xfeatures2d cpu_flags_x86_sse cpu_flags_x86_sse2 cpu_flags_x86_sse3 cpu_flags_x86_ssse3 cpu_flags_x86_sse4_1 cpu_flags_x86_sse4_2 cpu_flags_x86_popcnt cpu_flags_x86_avx cpu_flags_x86_avx2 cpu_flags_x86_fma3 cuda debug dnn_samples +eigen examples ffmpeg gdal gflags glog gphoto2 gstreamer gtk ieee1394 jpeg lapack libav opencl openexr opengl openmp pch png +python qt5 tesseract testprograms threads tiff vaapi v4l vtk webp xine"
# OpenGL needs gtk or Qt installed to activate, otherwise build system
# will silently disable it Wwithout the user knowing, which defeats the
# purpose of the opengl use flag.
REQUIRED_USE="
cuda? ( tesseract? ( opencl ) )
dnn_samples? ( examples )
gflags? ( contrib )
glog? ( contrib )
contrib_cvv? ( contrib qt5 )
contrib_dnn? ( contrib )
contrib_hdf? ( contrib )
contrib_sfm? ( contrib eigen gflags glog )
contrib_xfeatures2d? ( contrib cuda )
java? ( python )
opengl? ( || ( gtk qt5 ) )
python? ( ${PYTHON_REQUIRED_USE} )
tesseract? ( contrib )"
# The following logic is intrinsic in the build system, but we do not enforce
# it on the useflags since this just blocks emerging pointlessly:
# gtk? ( !qt5 )
# openmp? ( !threads )
RDEPEND="
app-arch/bzip2[${MULTILIB_USEDEP}]
dev-libs/protobuf:=[${MULTILIB_USEDEP}]
sys-libs/zlib[${MULTILIB_USEDEP}]
cuda? ( dev-util/nvidia-cuda-toolkit:0= )
contrib_hdf? ( sci-libs/hdf5 )
ffmpeg? (
libav? ( media-video/libav:0=[${MULTILIB_USEDEP}] )
!libav? ( media-video/ffmpeg:0=[${MULTILIB_USEDEP}] )
)
gdal? ( sci-libs/gdal:= )
gflags? ( dev-cpp/gflags[${MULTILIB_USEDEP}] )
glog? ( dev-cpp/glog[${MULTILIB_USEDEP}] )
gphoto2? ( media-libs/libgphoto2[${MULTILIB_USEDEP}] )
gstreamer? (
media-libs/gstreamer:1.0[${MULTILIB_USEDEP}]
media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}]
)
gtk? (
dev-libs/glib:2[${MULTILIB_USEDEP}]
x11-libs/gtk+:2[${MULTILIB_USEDEP}]
opengl? ( x11-libs/gtkglext[${MULTILIB_USEDEP}] )
)
ieee1394? (
media-libs/libdc1394[${MULTILIB_USEDEP}]
sys-libs/libraw1394[${MULTILIB_USEDEP}]
)
java? ( >=virtual/jre-1.6:* )
jpeg? ( virtual/jpeg:0[${MULTILIB_USEDEP}] )
lapack? ( virtual/lapack )
opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
openexr? ( media-libs/openexr[${MULTILIB_USEDEP}] )
opengl? (
virtual/opengl[${MULTILIB_USEDEP}]
virtual/glu[${MULTILIB_USEDEP}]
)
png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
python? ( ${PYTHON_DEPS} dev-python/numpy[${PYTHON_USEDEP}] )
qt5? (
dev-qt/qtgui:5
dev-qt/qtwidgets:5
dev-qt/qttest:5
dev-qt/qtconcurrent:5
opengl? ( dev-qt/qtopengl:5 )
)
tesseract? ( app-text/tesseract[opencl=] )
threads? ( dev-cpp/tbb[${MULTILIB_USEDEP}] )
tiff? ( media-libs/tiff:0[${MULTILIB_USEDEP}] )
v4l? ( >=media-libs/libv4l-0.8.3[${MULTILIB_USEDEP}] )
vtk? ( sci-libs/vtk[rendering] )
webp? ( media-libs/libwebp[${MULTILIB_USEDEP}] )
xine? ( media-libs/xine-lib )"
DEPEND="${RDEPEND}
virtual/pkgconfig[${MULTILIB_USEDEP}]
contrib_dnn? ( dev-libs/cereal )
eigen? ( dev-cpp/eigen:3 )
java? ( >=virtual/jdk-1.6 )
vaapi? ( x11-libs/libva )"
MULTILIB_WRAPPED_HEADERS=(
/usr/include/opencv2/cvconfig.h
/usr/include/opencv2/opencv_modules.hpp
# [contrib_cvv]
/usr/include/opencv2/cvv.hpp
/usr/include/opencv2/cvv/call_meta_data.hpp
/usr/include/opencv2/cvv/cvv.hpp
/usr/include/opencv2/cvv/debug_mode.hpp
/usr/include/opencv2/cvv/dmatch.hpp
/usr/include/opencv2/cvv/filter.hpp
/usr/include/opencv2/cvv/final_show.hpp
/usr/include/opencv2/cvv/show_image.hpp
# [contrib_hdf]
/usr/include/opencv2/hdf.hpp
/usr/include/opencv2/hdf/hdf5.hpp
# [vtk]
/usr/include/opencv2/viz.hpp
/usr/include/opencv2/viz/types.hpp
/usr/include/opencv2/viz/viz3d.hpp
/usr/include/opencv2/viz/vizcore.hpp
/usr/include/opencv2/viz/widget_accessor.hpp
/usr/include/opencv2/viz/widgets.hpp
# [cudev]
/usr/include/opencv2/cudaarithm.hpp
/usr/include/opencv2/cudabgsegm.hpp
/usr/include/opencv2/cudacodec.hpp
/usr/include/opencv2/cudafeatures2d.hpp
/usr/include/opencv2/cudafilters.hpp
/usr/include/opencv2/cudaimgproc.hpp
/usr/include/opencv2/cudalegacy.hpp
/usr/include/opencv2/cudalegacy/NCVBroxOpticalFlow.hpp
/usr/include/opencv2/cudalegacy/NCVHaarObjectDetection.hpp
/usr/include/opencv2/cudalegacy/NCV.hpp
/usr/include/opencv2/cudalegacy/NCVPyramid.hpp
/usr/include/opencv2/cudalegacy/NPP_staging.hpp
/usr/include/opencv2/cudaobjdetect.hpp
/usr/include/opencv2/cudaoptflow.hpp
/usr/include/opencv2/cudastereo.hpp
/usr/include/opencv2/cudawarping.hpp
/usr/include/opencv2/cudev/block/block.hpp
/usr/include/opencv2/cudev/block/detail/reduce.hpp
/usr/include/opencv2/cudev/block/detail/reduce_key_val.hpp
/usr/include/opencv2/cudev/block/dynamic_smem.hpp
/usr/include/opencv2/cudev/block/reduce.hpp
/usr/include/opencv2/cudev/block/scan.hpp
/usr/include/opencv2/cudev/block/vec_distance.hpp
/usr/include/opencv2/cudev/common.hpp
/usr/include/opencv2/cudev/expr/binary_func.hpp
/usr/include/opencv2/cudev/expr/binary_op.hpp
/usr/include/opencv2/cudev/expr/color.hpp
/usr/include/opencv2/cudev/expr/deriv.hpp
/usr/include/opencv2/cudev/expr/expr.hpp
/usr/include/opencv2/cudev/expr/per_element_func.hpp
/usr/include/opencv2/cudev/expr/reduction.hpp
/usr/include/opencv2/cudev/expr/unary_func.hpp
/usr/include/opencv2/cudev/expr/unary_op.hpp
/usr/include/opencv2/cudev/expr/warping.hpp
/usr/include/opencv2/cudev/functional/color_cvt.hpp
/usr/include/opencv2/cudev/functional/detail/color_cvt.hpp
/usr/include/opencv2/cudev/functional/functional.hpp
/usr/include/opencv2/cudev/functional/tuple_adapter.hpp
/usr/include/opencv2/cudev/grid/copy.hpp
/usr/include/opencv2/cudev/grid/detail/copy.hpp
/usr/include/opencv2/cudev/grid/detail/histogram.hpp
/usr/include/opencv2/cudev/grid/detail/integral.hpp
/usr/include/opencv2/cudev/grid/detail/minmaxloc.hpp
/usr/include/opencv2/cudev/grid/detail/pyr_down.hpp
/usr/include/opencv2/cudev/grid/detail/pyr_up.hpp
/usr/include/opencv2/cudev/grid/detail/reduce.hpp
/usr/include/opencv2/cudev/grid/detail/reduce_to_column.hpp
/usr/include/opencv2/cudev/grid/detail/reduce_to_row.hpp
/usr/include/opencv2/cudev/grid/detail/split_merge.hpp
/usr/include/opencv2/cudev/grid/detail/transform.hpp
/usr/include/opencv2/cudev/grid/detail/transpose.hpp
/usr/include/opencv2/cudev/grid/histogram.hpp
/usr/include/opencv2/cudev/grid/integral.hpp
/usr/include/opencv2/cudev/grid/pyramids.hpp
/usr/include/opencv2/cudev/grid/reduce.hpp
/usr/include/opencv2/cudev/grid/reduce_to_vec.hpp
/usr/include/opencv2/cudev/grid/split_merge.hpp
/usr/include/opencv2/cudev/grid/transform.hpp
/usr/include/opencv2/cudev/grid/transpose.hpp
/usr/include/opencv2/cudev.hpp
/usr/include/opencv2/cudev/ptr2d/constant.hpp
/usr/include/opencv2/cudev/ptr2d/deriv.hpp
/usr/include/opencv2/cudev/ptr2d/detail/gpumat.hpp
/usr/include/opencv2/cudev/ptr2d/extrapolation.hpp
/usr/include/opencv2/cudev/ptr2d/glob.hpp
/usr/include/opencv2/cudev/ptr2d/gpumat.hpp
/usr/include/opencv2/cudev/ptr2d/interpolation.hpp
/usr/include/opencv2/cudev/ptr2d/lut.hpp
/usr/include/opencv2/cudev/ptr2d/mask.hpp
/usr/include/opencv2/cudev/ptr2d/remap.hpp
/usr/include/opencv2/cudev/ptr2d/resize.hpp
/usr/include/opencv2/cudev/ptr2d/texture.hpp
/usr/include/opencv2/cudev/ptr2d/traits.hpp
/usr/include/opencv2/cudev/ptr2d/transform.hpp
/usr/include/opencv2/cudev/ptr2d/warping.hpp
/usr/include/opencv2/cudev/ptr2d/zip.hpp
/usr/include/opencv2/cudev/util/atomic.hpp
/usr/include/opencv2/cudev/util/detail/tuple.hpp
/usr/include/opencv2/cudev/util/detail/type_traits.hpp
/usr/include/opencv2/cudev/util/limits.hpp
/usr/include/opencv2/cudev/util/saturate_cast.hpp
/usr/include/opencv2/cudev/util/simd_functions.hpp
/usr/include/opencv2/cudev/util/tuple.hpp
/usr/include/opencv2/cudev/util/type_traits.hpp
/usr/include/opencv2/cudev/util/vec_math.hpp
/usr/include/opencv2/cudev/util/vec_traits.hpp
/usr/include/opencv2/cudev/warp/detail/reduce.hpp
/usr/include/opencv2/cudev/warp/detail/reduce_key_val.hpp
/usr/include/opencv2/cudev/warp/reduce.hpp
/usr/include/opencv2/cudev/warp/scan.hpp
/usr/include/opencv2/cudev/warp/shuffle.hpp
/usr/include/opencv2/cudev/warp/warp.hpp
)
PATCHES=(
"${FILESDIR}/${PN}-3.0.0-gles.patch"
"${FILESDIR}/${PN}-3.4.0-disable-download.patch"
"${FILESDIR}/${P}-compilation-C-mode.patch" # https://bugs.gentoo.org/656530
"${FILESDIR}/${P}-python-lib-suffix-hack.patch"
"${FILESDIR}/${P}-cuda-add-relaxed-constexpr.patch"
"${FILESDIR}/${P}-remove-git-autodetect.patch"
"${FILESDIR}/${P}-fix-build-with-va.patch" # bug https://bugs.gentoo.org/656576
"${FILESDIR}/${P}-popcnt.patch" # https://bugs.gentoo.org/633900
"${FILESDIR}/${P}-fix-on-x86.patch" # https://bugs.gentoo.org/682104
"${FILESDIR}/${P}-python37.patch" # https://bugs.gentoo.org/691480
)
pkg_pretend() {
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
}
pkg_setup() {
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
java-pkg-opt-2_pkg_setup
}
src_prepare() {
cmake-utils_src_prepare
# remove bundled stuff
rm -rf 3rdparty || die "Removing 3rd party components failed"
sed -e '/add_subdirectory(.*3rdparty.*)/ d' \
-i CMakeLists.txt cmake/*cmake || die
if use dnn_samples; then
mv "${WORKDIR}/res10_300x300_ssd_iter_140000.caffemodel" "${WORKDIR}/${P}/samples/dnn/" || die
fi
if use contrib; then
cd "${WORKDIR}/${PN}_contrib-${PV}" || die
eapply "${FILESDIR}/${PN}-3.3.0-remove-tiny-dnn-autodownload.patch"
if use contrib_xfeatures2d; then
mv "${WORKDIR}"/*.i "${WORKDIR}/${PN}_contrib-${PV}"/modules/xfeatures2d/src/ || die
fi
fi
java-pkg-opt-2_src_prepare
# this really belongs in src_prepare() too
JAVA_ANT_ENCODING="iso-8859-1"
# set encoding so even this cmake build will pick it up.
export ANT_OPTS+=" -Dfile.encoding=iso-8859-1"
java-ant-2_src_configure
}
multilib_src_configure() {
# please dont sort here, order is the same as in CMakeLists.txt
GLOBALCMAKEARGS=(
# Optional 3rd party components
# ===================================================
-DENABLE_DOWNLOAD=OFF
-DWITH_1394=$(usex ieee1394)
# -DWITH_AVFOUNDATION=OFF # IOS
-DWITH_VTK=$(multilib_native_usex vtk)
-DWITH_EIGEN=$(usex eigen)
-DWITH_VFW=OFF # Video windows support
-DWITH_FFMPEG=$(usex ffmpeg)
-DWITH_GSTREAMER=$(usex gstreamer)
-DWITH_GSTREAMER_0_10=OFF # Don't want this
-DWITH_GTK=$(usex gtk)
-DWITH_GTK_2_X=$(usex gtk)
-DWITH_IPP=OFF
-DWITH_JASPER=OFF
-DWITH_JPEG=$(usex jpeg)
-DWITH_WEBP=$(usex webp)
-DWITH_OPENEXR=$(usex openexr)
-DWITH_OPENGL=$(usex opengl)
-DWITH_OPENVX=OFF
-DWITH_OPENNI=OFF # Not packaged
-DWITH_OPENNI2=OFF # Not packaged
-DWITH_PNG=$(usex png)
-DWITH_GDCM=OFF
-DWITH_PVAPI=OFF
-DWITH_GIGEAPI=OFF
-DWITH_ARAVIS=OFF
-DWITH_QT=$(multilib_native_usex qt5 5 OFF)
-DWITH_WIN32UI=OFF # Windows only
# -DWITH_QUICKTIME=OFF
# -DWITH_QTKIT=OFF
-DWITH_TBB=$(usex threads)
-DWITH_OPENMP=$(usex openmp)
-DWITH_CSTRIPES=OFF
-DWITH_PTHREADS_PF=ON
-DWITH_TIFF=$(usex tiff)
-DWITH_UNICAP=OFF # Not packaged
-DWITH_V4L=$(usex v4l)
-DWITH_LIBV4L=$(usex v4l)
-DWITH_DSHOW=ON # direct show supp
-DWITH_MSMF=OFF
-DWITH_XIMEA=OFF # Windows only
-DWITH_XINE=$(multilib_native_usex xine)
-DWITH_CLP=OFF
-DWITH_OPENCL=$(usex opencl)
-DWITH_OPENCL_SVM=OFF
-DWITH_OPENCLAMDFFT=$(usex opencl)
-DWITH_OPENCLAMDBLAS=$(usex opencl)
-DWITH_DIRECTX=OFF
-DWITH_INTELPERC=OFF
-DWITH_IPP_A=OFF
-DWITH_MATLAB=OFF
-DWITH_VA=$(usex vaapi)
-DWITH_VA_INTEL=$(usex vaapi)
-DWITH_GDAL=$(multilib_native_usex gdal)
-DWITH_GPHOTO2=$(usex gphoto2)
-DWITH_LAPACK=$(multilib_native_usex lapack)
-DWITH_ITT=OFF # 3dparty libs itt_notify
# ===================================================
# CUDA build components: nvidia-cuda-toolkit takes care of GCC version
# ===================================================
-DWITH_CUDA=$(multilib_native_usex cuda)
-DWITH_CUBLAS=$(multilib_native_usex cuda)
-DWITH_CUFFT=$(multilib_native_usex cuda)
-DWITH_NVCUVID=OFF
# -DWITH_NVCUVID=$(usex cuda)
-DCUDA_NPP_LIBRARY_ROOT_DIR=$(usex cuda "${EPREFIX}/opt/cuda" "")
# ===================================================
# OpenCV build components
# ===================================================
-DBUILD_SHARED_LIBS=ON
-DBUILD_JAVA=$(multilib_native_usex java) # Ant needed, no compile flag
-DBUILD_ANDROID_EXAMPLES=OFF
-DBUILD_opencv_apps=
-DBUILD_DOCS=OFF # Doesn't install anyways.
-DBUILD_EXAMPLES=$(multilib_native_usex examples)
-DBUILD_PERF_TESTS=OFF
-DBUILD_TESTS=$(multilib_native_usex testprograms)
-DBUILD_WITH_DEBUG_INFO=$(usex debug)
# -DBUILD_WITH_STATIC_CRT=OFF
-DBUILD_WITH_DYNAMIC_IPP=OFF
-DBUILD_FAT_JAVA_LIB=$(multilib_native_usex java)
# -DBUILD_ANDROID_SERVICE=OFF
-DBUILD_CUDA_STUBS=$(multilib_native_usex cuda)
-DOPENCV_EXTRA_MODULES_PATH=$(usex contrib "${WORKDIR}/opencv_contrib-${PV}/modules" "")
# ===================================================
# OpenCV installation options
# ===================================================
-DINSTALL_CREATE_DISTRIB=OFF
-DINSTALL_C_EXAMPLES=$(multilib_native_usex examples)
-DINSTALL_TESTS=$(multilib_native_usex testprograms)
-DINSTALL_PYTHON_EXAMPLES=$(multilib_native_usex examples)
# -DINSTALL_ANDROID_EXAMPLES=OFF
-DINSTALL_TO_MANGLED_PATHS=OFF
# opencv uses both ${CMAKE_INSTALL_LIBDIR} and ${LIB_SUFFIX}
# to set its destination libdir
-DLIB_SUFFIX=
# ===================================================
# OpenCV build options
# ===================================================
-DENABLE_CCACHE=OFF
-DENABLE_PRECOMPILED_HEADERS=$(usex pch)
-DENABLE_SOLUTION_FOLDERS=OFF
-DENABLE_PROFILING=OFF
-DENABLE_COVERAGE=OFF
-DHAVE_opencv_java=$(multilib_native_usex java YES NO)
-DENABLE_NOISY_WARNINGS=OFF
-DOPENCV_WARNINGS_ARE_ERRORS=OFF
-DENABLE_IMPL_COLLECTION=OFF
-DENABLE_INSTRUMENTATION=OFF
-DGENERATE_ABI_DESCRIPTOR=OFF
-DDOWNLOAD_EXTERNAL_TEST_DATA=OFF
# ===================================================
# things we want to be hard off or not yet figured out
# ===================================================
-DBUILD_PACKAGE=OFF
# ===================================================
# Not building protobuf but update files bug #631418
# ===================================================
-DBUILD_PROTOBUF=OFF
-DPROTOBUF_UPDATE_FILES=ON
# ===================================================
# things we want to be hard enabled not worth useflag
# ===================================================
-DCMAKE_SKIP_RPATH=ON
-DOPENCV_DOC_INSTALL_PATH=
# ==================================================
# cpu flags, should solve 633900
#===================================================
-DOPENCV_CPU_OPT_IMPLIES_IGNORE=ON
-DCPU_DISPATCH=
-DENABLE_SSE=$(usex cpu_flags_x86_sse)
-DENABLE_SSE2=$(usex cpu_flags_x86_sse2)
-DENABLE_SSE3=$(usex cpu_flags_x86_sse3)
-DENABLE_SSSE3=$(usex cpu_flags_x86_ssse3)
-DENABLE_SSE41=$(usex cpu_flags_x86_sse4_1)
-DENABLE_SSE42=$(usex cpu_flags_x86_sse4_2)
-DENABLE_POPCNT=$(usex cpu_flags_x86_popcnt)
-DENABLE_AVX=$(usex cpu_flags_x86_avx)
-DENABLE_AVX2=$(usex cpu_flags_x86_avx2)
-DENABLE_FMA3=$(usex cpu_flags_x86_fma3)
)
# ===================================================
# OpenCV Contrib Modules
# ===================================================
if use contrib; then
GLOBALCMAKEARGS+=(
-DBUILD_opencv_dnn=$(usex contrib_dnn ON OFF)
-DTINYDNN_ROOT="${WORKDIR}/tiny-dnn-${TINY_DNN_PV}"
-DBUILD_opencv_dnns_easily_fooled=OFF
-DBUILD_opencv_xfeatures2d=$(usex contrib_xfeatures2d ON OFF)
-DBUILD_opencv_cvv=$(usex contrib_cvv ON OFF)
-DBUILD_opencv_hdf=$(multilib_native_usex contrib_hdf ON OFF)
-DBUILD_opencv_sfm=$(usex contrib_sfm ON OFF)
)
if multilib_is_native_abi; then
GLOBALCMAKEARGS+=(
-DCMAKE_DISABLE_FIND_PACKAGE_Tesseract=$(usex !tesseract)
)
else
GLOBALCMAKEARGS+=(
-DCMAKE_DISABLE_FIND_PACKAGE_Tesseract=ON
)
fi
fi
# workaround for bug 413429
tc-export CC CXX
local mycmakeargs=( ${GLOBALCMAKEARGS[@]}
-DPYTHON_EXECUTABLE=OFF
-DINSTALL_PYTHON_EXAMPLES=OFF
)
cmake-utils_src_configure
# Copy face_land_model to ${CMAKE_BINARY_DIR}/${OPENCV_TEST_DATA_INSTALL_PATH}
# TODO patch ocv_download to copy files into destination dirs
if use contrib_dnn; then
mkdir -p "${BUILD_DIR}"/share/OpenCV/testdata/cv/face/ || die
cp "${WORKDIR}"/face_landmark_model.dat "${BUILD_DIR}"/share/OpenCV/testdata/cv/face/ || die
fi
}
python_module_compile() {
local BUILD_DIR=${orig_BUILD_DIR}
local mycmakeargs=( ${GLOBALCMAKEARGS[@]} )
# Set all python variables to load the correct Gentoo paths
mycmakeargs+=(
# python_setup alters PATH and sets this as wrapper
# to the correct interpreter we are building for
-DPYTHON_DEFAULT_EXECUTABLE=python
-DINSTALL_PYTHON_EXAMPLES=$(usex examples)
# Here's the hack for profile 17.1
# -DLIBPY_SUFFIX=64
)
# Regenerate cache file. Can't use rebuild_cache as it won't
# have the Gentoo specific options.
rm -rf CMakeCache.txt || die "rm failed"
cmake-utils_src_configure
cmake-utils_src_compile
cmake-utils_src_install
# Remove compiled binary so new version compiles
# Avoid conflicts with new module builds as build system doesn't
# really support it.
rm -rf modules/python2 || die "rm failed"
}
multilib_src_install() {
cmake-utils_src_install
# Build and install the python modules for all targets
if multilib_is_native_abi && use python; then
local orig_BUILD_DIR=${BUILD_DIR}
python_foreach_impl python_module_compile
fi
}