summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoradam <adam@pkgsrc.org>2019-04-24 19:34:44 +0000
committeradam <adam@pkgsrc.org>2019-04-24 19:34:44 +0000
commit19b25eb6c4e9ad2ada5cce51fccf2765f318627f (patch)
tree479ef846f2cabc2e1c45ec615b4e0faf26c3b732
parent59199ec93a9490218a97d7fdc059294d3a8ed7ec (diff)
downloadpkgsrc-19b25eb6c4e9ad2ada5cce51fccf2765f318627f.tar.gz
opencv: updated to 3.4.6
version:3.4.6 OpenCV 3.4.6 has been released. Bug fixes, optimizations and other enhancements are propagated into OpenCV 4.1.0. version:3.4.5 OpenCV 3.4.5 has been released. Bug fixes, optimizations and other enhancements are propagated into OpenCV 4.0.1. version:3.4.4 OpenCV 3.4.4 has been released. This is a mantenance release. New features are landed in OpenCV 4.0. version:3.4.3 OpenCV 3.4.3 has been released, with further extended dnn module, documentation improvements, some other new functionality and bug fixes. version:3.4.2 OpenCV 3.4.2 has been released, with further extended dnn module, documentation improvements, some other new functionality and bug fixes. OpenCV 3.4.x development is switched from "master" to "3.4" branch. "master" branch is used for development of upcoming OpenCV 4.x releases. Bugfixes / optimizations / small improvemets should go into "3.4" branch. We will merge changes from "3.4" into "master" regularly (weekly/bi-weekly).
-rw-r--r--graphics/opencv-contrib-face/Makefile67
-rw-r--r--graphics/opencv-contrib-face/PLIST10
-rw-r--r--graphics/opencv-contrib-face/distinfo23
-rw-r--r--graphics/opencv/Makefile40
-rw-r--r--graphics/opencv/Makefile.common41
-rw-r--r--graphics/opencv/PLIST50
-rw-r--r--graphics/opencv/buildlink3.mk10
-rw-r--r--graphics/opencv/distinfo15
-rw-r--r--graphics/opencv/options.mk12
-rw-r--r--graphics/opencv/patches/patch-CMakeLists.txt27
-rw-r--r--graphics/opencv/patches/patch-modules_highgui_src_window__cocoa.mm15
-rw-r--r--graphics/opencv/patches/patch-modules_python_src2_cv2.cpp15
-rw-r--r--graphics/opencv/patches/patch-modules_videoio_src_cap__v4l.cpp246
13 files changed, 333 insertions, 238 deletions
diff --git a/graphics/opencv-contrib-face/Makefile b/graphics/opencv-contrib-face/Makefile
index e482ab5b8f7..837b7f60e9b 100644
--- a/graphics/opencv-contrib-face/Makefile
+++ b/graphics/opencv-contrib-face/Makefile
@@ -1,24 +1,15 @@
-# $NetBSD: Makefile,v 1.13 2018/03/02 16:26:21 fhajny Exp $
+# $NetBSD: Makefile,v 1.14 2019/04/24 19:34:45 adam Exp $
-DISTNAME= opencv_contrib-3.4.1
+.include "../../graphics/opencv/Makefile.common"
+
+DISTNAME= opencv_contrib-${OPENCV_VERSION}
PKGNAME= ${DISTNAME:S/_contrib/-contrib-face/}
-CATEGORIES= graphics devel
-MASTER_SITES= ${MASTER_SITE_GITHUB:=Itseez/}
-EXTRACT_SUFX= .zip
GITHUB_PROJECT= opencv_contrib
MAINTAINER= markd@NetBSD.org
-HOMEPAGE= https://github.com/opencv/opencv/wiki
COMMENT= OpenCV face recognition contributed module
-LICENSE= modified-bsd
-
-DISTFILES= ${DEFAULT_DISTFILES} opencv-${PKGVERSION_NOREV}.zip
-USE_CMAKE= yes
-USE_LANGUAGES= c c++11
-USE_LIBTOOL= yes
-USE_PKGLOCALEDIR= yes
-USE_TOOLS+= gmake pkg-config
+DISTFILES= ${DEFAULT_DISTFILES} opencv-${PKGVERSION_NOREV}${EXTRACT_SUFX}
# This is ugly, but we shouldn't let optional code download
# at configure time. Especially when it needs to be patched
@@ -31,19 +22,10 @@ SUBST_SED.tnn= -e 's,3.2,999,'
INSTALL_DIRS= build/modules/face build/modules/plot build/modules/tracking
-WRKSRC= ${WRKDIR}/opencv-${PKGVERSION_NOREV}/
-
-PATCHDIR= ${.CURDIR}/../../graphics/opencv/patches
-
-CMAKE_ARGS+= -D WITH_FFMPEG=OFF
-CMAKE_ARGS+= -D BUILD_DOCS=OFF
+WRKSRC= ${WRKDIR}/opencv-${PKGVERSION_NOREV}
-# jasper uses SIZE_MAX and friends in its headers.
-CXXFLAGS+= -D__STDC_LIMIT_MACROS
-
-CMAKE_ARGS+= -DZLIB_ROOT=${BUILDLINK_PREFIX.zlib}
-CMAKE_ARGS.SunOS+= -DENABLE_PRECOMPILED_HEADERS=NO
-CMAKE_ARGS+= -DWITH_EIGEN=NO
+CMAKE_ARGS+= -DBUILD_DOCS=OFF
+CMAKE_ARGS+= -DWITH_FFMPEG=OFF
CMAKE_ARGS+= -DOPENCV_EXTRA_MODULES_PATH=${WRKDIR}/${DISTNAME}/modules
CMAKE_ARGS+= -DBUILD_opencv_adas=OFF
@@ -53,7 +35,10 @@ CMAKE_ARGS+= -DBUILD_opencv_ccalib=OFF
CMAKE_ARGS+= -DBUILD_opencv_contrib_world=OFF
CMAKE_ARGS+= -DBUILD_opencv_cvv=OFF
CMAKE_ARGS+= -DBUILD_opencv_datasets=OFF
+CMAKE_ARGS+= -DBUILD_opencv_dnn_objdetect=OFF
CMAKE_ARGS+= -DBUILD_opencv_hdf=OFF
+CMAKE_ARGS+= -DBUILD_opencv_hfs=OFF
+CMAKE_ARGS+= -DBUILD_opencv_img_hash=OFF
CMAKE_ARGS+= -DBUILD_opencv_latentsvm=OFF
CMAKE_ARGS+= -DBUILD_opencv_line_descriptor=OFF
CMAKE_ARGS+= -DBUILD_opencv_matlab=OFF
@@ -68,40 +53,28 @@ CMAKE_ARGS+= -DBUILD_opencv_ximgproc=OFF
CMAKE_ARGS+= -DBUILD_opencv_xobjdetect=OFF
CMAKE_ARGS+= -DBUILD_opencv_xphoto=OFF
+CMAKE_ARGS+= -DBUILD_opencv_dnn=OFF
CMAKE_ARGS+= -DBUILD_opencv_flann=OFF
-CMAKE_ARGS+= -DBUILD_opencv_videoio=OFF
CMAKE_ARGS+= -DBUILD_opencv_highgui=OFF
+CMAKE_ARGS+= -DBUILD_opencv_ml=OFF
+CMAKE_ARGS+= -DBUILD_opencv_python2=OFF
+CMAKE_ARGS+= -DBUILD_opencv_python3=OFF
+CMAKE_ARGS+= -DBUILD_opencv_stitching=OFF
CMAKE_ARGS+= -DBUILD_opencv_superres=OFF
CMAKE_ARGS+= -DBUILD_opencv_ts=OFF
-CMAKE_ARGS+= -DBUILD_opencv_features2d=OFF
-CMAKE_ARGS+= -DBUILD_opencv_calib3d=OFF
-CMAKE_ARGS+= -DBUILD_opencv_stitching=OFF
+CMAKE_ARGS+= -DBUILD_opencv_videoio=OFF
CMAKE_ARGS+= -DBUILD_opencv_videostab=OFF
-CMAKE_ARGS+= -DBUILD_opencv_python2=OFF
-# At least as of 3.4.1, these are dependencies of the 'face' module
+# At least as of 3.4.6, these are dependencies of the 'face' module
# and need to be built and installed ('photo' and 'video' are
# part of the main opencv package already
+#CMAKE_ARGS+= -DBUILD_opencv_calib3d=OFF
+#CMAKE_ARGS+= -DBUILD_opencv_features2d=OFF
#CMAKE_ARGS+= -DBUILD_opencv_photo=OFF
#CMAKE_ARGS+= -DBUILD_opencv_plot=OFF
#CMAKE_ARGS+= -DBUILD_opencv_tracking=OFF
#CMAKE_ARGS+= -DBUILD_opencv_video=OFF
-CONFIGURE_ENV+= MACHINE_ARCH=${MACHINE_ARCH}
-
-CONFIGURE_DIRS+= build
-CMAKE_ARG_PATH= ${WRKSRC}
-
-pre-configure:
- ${MKDIR} -p ${WRKSRC}/build
-
-.include "../../devel/zlib/buildlink3.mk"
-.include "../../graphics/jasper/buildlink3.mk"
-.include "../../graphics/libwebp/buildlink3.mk"
BUILDLINK_API_DEPENDS.opencv+= opencv>=${PKGVERSION_NOREV}
.include "../../graphics/opencv/buildlink3.mk"
-.include "../../graphics/openexr/buildlink3.mk"
-.include "../../graphics/png/buildlink3.mk"
-.include "../../graphics/tiff/buildlink3.mk"
-.include "../../mk/jpeg.buildlink3.mk"
.include "../../mk/bsd.pkg.mk"
diff --git a/graphics/opencv-contrib-face/PLIST b/graphics/opencv-contrib-face/PLIST
index 233acd8e146..25db5972b5c 100644
--- a/graphics/opencv-contrib-face/PLIST
+++ b/graphics/opencv-contrib-face/PLIST
@@ -1,11 +1,13 @@
-@comment $NetBSD: PLIST,v 1.5 2018/03/02 16:26:21 fhajny Exp $
+@comment $NetBSD: PLIST,v 1.6 2019/04/24 19:34:45 adam Exp $
include/opencv2/face.hpp
include/opencv2/face/bif.hpp
include/opencv2/face/face_alignment.hpp
include/opencv2/face/facemark.hpp
include/opencv2/face/facemarkAAM.hpp
include/opencv2/face/facemarkLBF.hpp
+include/opencv2/face/facemark_train.hpp
include/opencv2/face/facerec.hpp
+include/opencv2/face/mace.hpp
include/opencv2/face/predict_collector.hpp
include/opencv2/plot.hpp
include/opencv2/tracking.hpp
@@ -17,11 +19,11 @@ include/opencv2/tracking/tldDataset.hpp
include/opencv2/tracking/tracker.hpp
include/opencv2/tracking/tracking.hpp
lib/libopencv_face.so
-lib/libopencv_face.so.3.4
lib/libopencv_face.so.${PKGVERSION}
+lib/libopencv_face.so.3.4
lib/libopencv_plot.so
-lib/libopencv_plot.so.3.4
lib/libopencv_plot.so.${PKGVERSION}
+lib/libopencv_plot.so.3.4
lib/libopencv_tracking.so
-lib/libopencv_tracking.so.3.4
lib/libopencv_tracking.so.${PKGVERSION}
+lib/libopencv_tracking.so.3.4
diff --git a/graphics/opencv-contrib-face/distinfo b/graphics/opencv-contrib-face/distinfo
index d7934a03d04..a4e361dae44 100644
--- a/graphics/opencv-contrib-face/distinfo
+++ b/graphics/opencv-contrib-face/distinfo
@@ -1,20 +1,21 @@
-$NetBSD: distinfo,v 1.9 2018/10/25 07:08:33 leot Exp $
+$NetBSD: distinfo,v 1.10 2019/04/24 19:34:45 adam Exp $
-SHA1 (opencv-3.4.1.zip) = 1e2a04746eaeee520e58f81002c556c435ef0dce
-RMD160 (opencv-3.4.1.zip) = d9f6de36b3d43e0ec5ce7dcfe752a7529f1c4daa
-SHA512 (opencv-3.4.1.zip) = 23610b7f909963ed3d7df233932e8ca0ef0604683affcbdec099b9b991bd4c0af275ec808c874ea29a5e8fbd5f02ad284aa0749c99748e01a73845aa25ebc3b9
-Size (opencv-3.4.1.zip) = 90982898 bytes
-SHA1 (opencv_contrib-3.4.1.zip) = 4190f17296b92d39235274c4305106387236d2cd
-RMD160 (opencv_contrib-3.4.1.zip) = 6581d0d190bdcf43de542e8f4c2a263ec1e741c3
-SHA512 (opencv_contrib-3.4.1.zip) = 2448cf22208a890d2ab48f75b05b2bed07efadca2ce4df24eacdefcd5b00fe80a0519edeaead017c340050e4563e9c6659666e16af8b6c19eafba04bd8a4360b
-Size (opencv_contrib-3.4.1.zip) = 58319978 bytes
+SHA1 (opencv-3.4.6.tar.gz) = c445fe9f0a07a95837d2f39c0637da71158129c5
+RMD160 (opencv-3.4.6.tar.gz) = 9fba797c535a7c4366cbf8018ee61ccd396b6c51
+SHA512 (opencv-3.4.6.tar.gz) = 86870788cbe36062b8fdb359d516714df887b0bb894d82bc65d33f7c5e8435371908cf21cee57137a60334187c74f4dabd358a20e9f13bbb36308acec51260cc
+Size (opencv-3.4.6.tar.gz) = 88174475 bytes
+SHA1 (opencv_contrib-3.4.6.tar.gz) = f87e11ac00550529853f19871429d062ef446c35
+RMD160 (opencv_contrib-3.4.6.tar.gz) = 2702fa3c9b17316441bc2a7b45d14641de680013
+SHA512 (opencv_contrib-3.4.6.tar.gz) = 27e9edeed2c995fcf2bd4a1f9226911f6bca2761d0ca615723eb851bb3fd5b46b7b55531db65d12593886e2484beb4ec7c8b2efaae2638c8427913cb9f3e0cb9
+Size (opencv_contrib-3.4.6.tar.gz) = 57262438 bytes
SHA1 (patch-3rdparty_ippicv_ippicv.cmake) = 14ce5de382084793ace32f43c6dfaf01f7ffb390
SHA1 (patch-3rdparty_protobuf_src_google_protobuf_message__lite.cc) = f1b77384ea8110d2bf3a30ff3fe9f2fa39608caf
+SHA1 (patch-CMakeLists.txt) = d7b434783aca4d0999c6d888eb8e160142a3aa1b
SHA1 (patch-cmake_OpenCVDetectCXXCompiler.cmake) = 221b0551d0f29d7e79afe3da8a33b1b3a4f7bf20
SHA1 (patch-modules_core_include_opencv2_core_types_c.h) = 75444e65677be99af8167f9060419d7970a7adaa
SHA1 (patch-modules_core_src_downhill__simplex.cpp) = 1ad7c2fa126d15050b87785e8eec20dbe796b471
SHA1 (patch-modules_core_src_system.cpp) = 3b7ac545585a430d28c7077f360357079f127580
SHA1 (patch-modules_flann_include_opencv2_flann_defines.h) = ab848e67c4e03219670598ac2d21071a617a5c33
-SHA1 (patch-modules_python_src2_cv2.cpp) = f9280bfe8e5b7154ce1ef75bf9da8020a5c7c666
+SHA1 (patch-modules_highgui_src_window__cocoa.mm) = 03a35cdbb32f40f7a234c406ddf0e4991873ae37
SHA1 (patch-modules_ts_src_ts.cpp) = b9a3992014b02dbd89d46375a2476385e91dc24c
-SHA1 (patch-modules_videoio_src_cap__v4l.cpp) = 985d91d9a4c63f081c3fff495cc86d8d0a1c6aa4
+SHA1 (patch-modules_videoio_src_cap__v4l.cpp) = 20e572d04a15b08180ad7d6671ab3d124b73b748
diff --git a/graphics/opencv/Makefile b/graphics/opencv/Makefile
index d6f182e91fa..c5617dce342 100644
--- a/graphics/opencv/Makefile
+++ b/graphics/opencv/Makefile
@@ -1,20 +1,11 @@
-# $NetBSD: Makefile,v 1.81 2018/11/14 22:21:43 kleink Exp $
+# $NetBSD: Makefile,v 1.82 2019/04/24 19:34:44 adam Exp $
-DISTNAME= opencv-3.4.1
-PKGREVISION= 4
-CATEGORIES= graphics devel
-MASTER_SITES= ${MASTER_SITE_GITHUB:=opencv/}
-EXTRACT_SUFX= .zip
+.include "Makefile.common"
+
+DISTNAME= opencv-${OPENCV_VERSION}
MAINTAINER= anthony.mallet@laas.fr
-HOMEPAGE= https://opencv.org/
COMMENT= Library for computer vision problems
-LICENSE= modified-bsd
-
-USE_CMAKE= yes
-USE_LANGUAGES= c c++11
-USE_PKGLOCALEDIR= yes
-USE_TOOLS+= gmake pkg-config
INSTALLATION_DIRS+= share/doc/opencv/papers
INSTALLATION_DIRS+= share/doc/opencv/ref/pics
@@ -31,23 +22,14 @@ CHECK_WRKREF_SKIP= ${PREFIX}/lib/libopencv_core.*
.include "options.mk"
-CMAKE_ARGS+= -DPYTHON_EXECUTABLE:FILEPATH=${PYTHONBIN}
-CMAKE_ARGS+= -DZLIB_ROOT=${BUILDLINK_PREFIX.zlib}
-CMAKE_ARGS.SunOS+= -DENABLE_PRECOMPILED_HEADERS=NO
-CMAKE_ARGS.SunOS+= -DOPENCV_PYTHON_SKIP_LINKER_EXCLUDE_LIBS=YES
-CMAKE_ARGS+= -DWITH_EIGEN=NO
-
-CONFIGURE_ENV+= MACHINE_ARCH=${MACHINE_ARCH}
-
-# jasper uses SIZE_MAX and friends in its headers.
-CXXFLAGS+= -D__STDC_LIMIT_MACROS
+TEST_TARGET= test
-CONFIGURE_DIRS+= build
-CMAKE_ARG_PATH= ${WRKSRC}
+post-install:
+ ${RM} -r ${DESTDIR}${PREFIX}/share/licenses
-pre-configure:
- ${MKDIR} -p ${WRKSRC}/build
+.include "../../mk/bsd.prefs.mk"
+.include "../../devel/protobuf/buildlink3.mk"
.include "../../devel/zlib/buildlink3.mk"
.include "../../graphics/jasper/buildlink3.mk"
.include "../../graphics/libwebp/buildlink3.mk"
@@ -56,6 +38,8 @@ pre-configure:
.include "../../graphics/tiff/buildlink3.mk"
.include "../../lang/python/extension.mk"
.include "../../math/py-numpy/buildlink3.mk"
+.if ${OPSYS} != "Darwin"
+.include "../../x11/gtk3/buildlink3.mk"
+.endif
.include "../../mk/jpeg.buildlink3.mk"
-.include "../../x11/gtk2/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"
diff --git a/graphics/opencv/Makefile.common b/graphics/opencv/Makefile.common
new file mode 100644
index 00000000000..e3de18eda10
--- /dev/null
+++ b/graphics/opencv/Makefile.common
@@ -0,0 +1,41 @@
+# $NetBSD: Makefile.common,v 1.1 2019/04/24 19:34:44 adam Exp $
+# used by graphics/opencv/Makefile
+# used by graphics/opencv-contrib-face/Makefile
+
+OPENCV_VERSION= 3.4.6
+
+CATEGORIES= graphics devel
+MASTER_SITES= ${MASTER_SITE_GITHUB:=opencv/}
+
+HOMEPAGE= https://opencv.org/
+LICENSE= modified-bsd
+
+PATCHDIR= ${.CURDIR}/../../graphics/opencv/patches
+
+USE_CMAKE= yes
+USE_LANGUAGES= c c++11
+USE_PKGLOCALEDIR= yes
+USE_TOOLS+= gmake pkg-config
+
+CONFIGURE_DIRS+= build
+CMAKE_ARG_PATH= ${WRKSRC}
+
+CMAKE_ARGS+= -DBUILD_PROTOBUF=OFF
+CMAKE_ARGS+= -DCV_ENABLE_INTRINSICS=OFF # XXX: problematic
+CMAKE_ARGS+= -DOPENCV_GENERATE_SETUPVARS=OFF
+CMAKE_ARGS+= -DPROTOBUF_UPDATE_FILES=ON
+CMAKE_ARGS+= -DPYTHON_EXECUTABLE:FILEPATH=${PYTHONBIN}
+CMAKE_ARGS+= -DWITH_EIGEN=OFF
+CMAKE_ARGS+= -DZLIB_ROOT=${BUILDLINK_PREFIX.zlib}
+CMAKE_ARGS.SunOS+= -DENABLE_PRECOMPILED_HEADERS=OFF
+CMAKE_ARGS.SunOS+= -DOPENCV_PYTHON_SKIP_LINKER_EXCLUDE_LIBS=ON
+
+CONFIGURE_ENV+= MACHINE_ARCH=${MACHINE_ARCH}
+
+# jasper uses SIZE_MAX and friends in its headers.
+CXXFLAGS+= -D__STDC_LIMIT_MACROS
+
+pre-configure:
+ ${MKDIR} ${WRKSRC}/build
+
+.include "../../lang/python/pyversion.mk"
diff --git a/graphics/opencv/PLIST b/graphics/opencv/PLIST
index e06f80e5ff9..26998597216 100644
--- a/graphics/opencv/PLIST
+++ b/graphics/opencv/PLIST
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.19 2018/03/02 16:24:21 fhajny Exp $
+@comment $NetBSD: PLIST,v 1.20 2019/04/24 19:34:44 adam Exp $
bin/opencv_annotation
bin/opencv_createsamples
bin/opencv_interactive-calibration
@@ -22,7 +22,9 @@ include/opencv2/calib3d/calib3d_c.h
include/opencv2/core.hpp
include/opencv2/core/affine.hpp
include/opencv2/core/base.hpp
+include/opencv2/core/bindings_utils.hpp
include/opencv2/core/bufferpool.hpp
+include/opencv2/core/check.hpp
include/opencv2/core/core.hpp
include/opencv2/core/core_c.h
include/opencv2/core/cuda.hpp
@@ -70,9 +72,12 @@ include/opencv2/core/fast_math.hpp
include/opencv2/core/hal/hal.hpp
include/opencv2/core/hal/interface.h
include/opencv2/core/hal/intrin.hpp
+include/opencv2/core/hal/intrin_avx.hpp
include/opencv2/core/hal/intrin_cpp.hpp
+include/opencv2/core/hal/intrin_forward.hpp
include/opencv2/core/hal/intrin_neon.hpp
include/opencv2/core/hal/intrin_sse.hpp
+include/opencv2/core/hal/intrin_sse_em.hpp
include/opencv2/core/hal/intrin_vsx.hpp
include/opencv2/core/ippasync.hpp
include/opencv2/core/mat.hpp
@@ -129,6 +134,7 @@ include/opencv2/dnn/dnn.inl.hpp
include/opencv2/dnn/layer.details.hpp
include/opencv2/dnn/layer.hpp
include/opencv2/dnn/shape_utils.hpp
+include/opencv2/dnn/utils/inference_engine.hpp
include/opencv2/features2d.hpp
include/opencv2/features2d/features2d.hpp
include/opencv2/features2d/hal/interface.h
@@ -225,6 +231,7 @@ include/opencv2/video/tracking_c.h
include/opencv2/video/video.hpp
include/opencv2/videoio.hpp
include/opencv2/videoio/cap_ios.h
+include/opencv2/videoio/registry.hpp
include/opencv2/videoio/videoio.hpp
include/opencv2/videoio/videoio_c.h
include/opencv2/videostab.hpp
@@ -243,58 +250,63 @@ include/opencv2/videostab/ring_buffer.hpp
include/opencv2/videostab/stabilizer.hpp
include/opencv2/videostab/wobble_suppression.hpp
lib/libopencv_calib3d.so
-lib/libopencv_calib3d.so.3.4
lib/libopencv_calib3d.so.${PKGVERSION}
+lib/libopencv_calib3d.so.3.4
lib/libopencv_core.so
-lib/libopencv_core.so.3.4
lib/libopencv_core.so.${PKGVERSION}
+lib/libopencv_core.so.3.4
lib/libopencv_dnn.so
-lib/libopencv_dnn.so.3.4
lib/libopencv_dnn.so.${PKGVERSION}
+lib/libopencv_dnn.so.3.4
lib/libopencv_features2d.so
-lib/libopencv_features2d.so.3.4
lib/libopencv_features2d.so.${PKGVERSION}
+lib/libopencv_features2d.so.3.4
lib/libopencv_flann.so
-lib/libopencv_flann.so.3.4
lib/libopencv_flann.so.${PKGVERSION}
+lib/libopencv_flann.so.3.4
lib/libopencv_highgui.so
-lib/libopencv_highgui.so.3.4
lib/libopencv_highgui.so.${PKGVERSION}
+lib/libopencv_highgui.so.3.4
lib/libopencv_imgcodecs.so
-lib/libopencv_imgcodecs.so.3.4
lib/libopencv_imgcodecs.so.${PKGVERSION}
+lib/libopencv_imgcodecs.so.3.4
lib/libopencv_imgproc.so
-lib/libopencv_imgproc.so.3.4
lib/libopencv_imgproc.so.${PKGVERSION}
+lib/libopencv_imgproc.so.3.4
lib/libopencv_ml.so
-lib/libopencv_ml.so.3.4
lib/libopencv_ml.so.${PKGVERSION}
+lib/libopencv_ml.so.3.4
lib/libopencv_objdetect.so
-lib/libopencv_objdetect.so.3.4
lib/libopencv_objdetect.so.${PKGVERSION}
+lib/libopencv_objdetect.so.3.4
lib/libopencv_photo.so
-lib/libopencv_photo.so.3.4
lib/libopencv_photo.so.${PKGVERSION}
+lib/libopencv_photo.so.3.4
lib/libopencv_shape.so
-lib/libopencv_shape.so.3.4
lib/libopencv_shape.so.${PKGVERSION}
+lib/libopencv_shape.so.3.4
lib/libopencv_stitching.so
-lib/libopencv_stitching.so.3.4
lib/libopencv_stitching.so.${PKGVERSION}
+lib/libopencv_stitching.so.3.4
lib/libopencv_superres.so
-lib/libopencv_superres.so.3.4
lib/libopencv_superres.so.${PKGVERSION}
+lib/libopencv_superres.so.3.4
lib/libopencv_video.so
-lib/libopencv_video.so.3.4
lib/libopencv_video.so.${PKGVERSION}
+lib/libopencv_video.so.3.4
lib/libopencv_videoio.so
-lib/libopencv_videoio.so.3.4
lib/libopencv_videoio.so.${PKGVERSION}
+lib/libopencv_videoio.so.3.4
lib/libopencv_videostab.so
-lib/libopencv_videostab.so.3.4
lib/libopencv_videostab.so.${PKGVERSION}
+lib/libopencv_videostab.so.3.4
lib/pkgconfig/opencv.pc
-${PYSITELIB}/cv2.so
+${PYSITELIB}/cv2/__init__.py
+${PYSITELIB}/cv2/config-3.7.py
+${PYSITELIB}/cv2/config.py
+${PYSITELIB}/cv2/load_config_py2.py
+${PYSITELIB}/cv2/load_config_py3.py
+${PYSITELIB}/cv2/python-3.7/cv2.so
share/OpenCV/OpenCVConfig-version.cmake
share/OpenCV/OpenCVConfig.cmake
share/OpenCV/OpenCVModules-release.cmake
diff --git a/graphics/opencv/buildlink3.mk b/graphics/opencv/buildlink3.mk
index 5dbaeb466de..9cd36d7b1cf 100644
--- a/graphics/opencv/buildlink3.mk
+++ b/graphics/opencv/buildlink3.mk
@@ -1,4 +1,4 @@
-# $NetBSD: buildlink3.mk,v 1.2 2015/10/08 17:45:59 fhajny Exp $
+# $NetBSD: buildlink3.mk,v 1.3 2019/04/24 19:34:44 adam Exp $
BUILDLINK_TREE+= opencv
@@ -8,6 +8,14 @@ OPENCV_BUILDLINK3_MK:=
BUILDLINK_API_DEPENDS.opencv+= opencv>=3.0.0
BUILDLINK_PKGSRCDIR.opencv?= ../../graphics/opencv
+.include "../../devel/protobuf/buildlink3.mk"
+.include "../../devel/zlib/buildlink3.mk"
+.include "../../graphics/jasper/buildlink3.mk"
+.include "../../graphics/libwebp/buildlink3.mk"
+.include "../../graphics/openexr/buildlink3.mk"
+.include "../../graphics/png/buildlink3.mk"
+.include "../../graphics/tiff/buildlink3.mk"
+.include "../../mk/jpeg.buildlink3.mk"
.endif # OPENCV_BUILDLINK3_MK
BUILDLINK_TREE+= -opencv
diff --git a/graphics/opencv/distinfo b/graphics/opencv/distinfo
index 72c98b5cb7d..fbf4045f03b 100644
--- a/graphics/opencv/distinfo
+++ b/graphics/opencv/distinfo
@@ -1,16 +1,17 @@
-$NetBSD: distinfo,v 1.40 2018/09/26 19:33:50 prlw1 Exp $
+$NetBSD: distinfo,v 1.41 2019/04/24 19:34:44 adam Exp $
-SHA1 (opencv-3.4.1.zip) = 1e2a04746eaeee520e58f81002c556c435ef0dce
-RMD160 (opencv-3.4.1.zip) = d9f6de36b3d43e0ec5ce7dcfe752a7529f1c4daa
-SHA512 (opencv-3.4.1.zip) = 23610b7f909963ed3d7df233932e8ca0ef0604683affcbdec099b9b991bd4c0af275ec808c874ea29a5e8fbd5f02ad284aa0749c99748e01a73845aa25ebc3b9
-Size (opencv-3.4.1.zip) = 90982898 bytes
+SHA1 (opencv-3.4.6.tar.gz) = c445fe9f0a07a95837d2f39c0637da71158129c5
+RMD160 (opencv-3.4.6.tar.gz) = 9fba797c535a7c4366cbf8018ee61ccd396b6c51
+SHA512 (opencv-3.4.6.tar.gz) = 86870788cbe36062b8fdb359d516714df887b0bb894d82bc65d33f7c5e8435371908cf21cee57137a60334187c74f4dabd358a20e9f13bbb36308acec51260cc
+Size (opencv-3.4.6.tar.gz) = 88174475 bytes
SHA1 (patch-3rdparty_ippicv_ippicv.cmake) = 14ce5de382084793ace32f43c6dfaf01f7ffb390
SHA1 (patch-3rdparty_protobuf_src_google_protobuf_message__lite.cc) = f1b77384ea8110d2bf3a30ff3fe9f2fa39608caf
+SHA1 (patch-CMakeLists.txt) = d7b434783aca4d0999c6d888eb8e160142a3aa1b
SHA1 (patch-cmake_OpenCVDetectCXXCompiler.cmake) = 221b0551d0f29d7e79afe3da8a33b1b3a4f7bf20
SHA1 (patch-modules_core_include_opencv2_core_types_c.h) = 75444e65677be99af8167f9060419d7970a7adaa
SHA1 (patch-modules_core_src_downhill__simplex.cpp) = 1ad7c2fa126d15050b87785e8eec20dbe796b471
SHA1 (patch-modules_core_src_system.cpp) = 3b7ac545585a430d28c7077f360357079f127580
SHA1 (patch-modules_flann_include_opencv2_flann_defines.h) = ab848e67c4e03219670598ac2d21071a617a5c33
-SHA1 (patch-modules_python_src2_cv2.cpp) = f9280bfe8e5b7154ce1ef75bf9da8020a5c7c666
+SHA1 (patch-modules_highgui_src_window__cocoa.mm) = 03a35cdbb32f40f7a234c406ddf0e4991873ae37
SHA1 (patch-modules_ts_src_ts.cpp) = b9a3992014b02dbd89d46375a2476385e91dc24c
-SHA1 (patch-modules_videoio_src_cap__v4l.cpp) = 985d91d9a4c63f081c3fff495cc86d8d0a1c6aa4
+SHA1 (patch-modules_videoio_src_cap__v4l.cpp) = 20e572d04a15b08180ad7d6671ab3d124b73b748
diff --git a/graphics/opencv/options.mk b/graphics/opencv/options.mk
index 3ebd4092c26..33fccd27ff2 100644
--- a/graphics/opencv/options.mk
+++ b/graphics/opencv/options.mk
@@ -1,4 +1,4 @@
-# $NetBSD: options.mk,v 1.6 2015/10/08 17:45:59 fhajny Exp $
+# $NetBSD: options.mk,v 1.7 2019/04/24 19:34:44 adam Exp $
PKG_OPTIONS_VAR= PKG_OPTIONS.opencv
PKG_SUPPORTED_OPTIONS= ffmpeg
@@ -6,13 +6,13 @@ PKG_SUPPORTED_OPTIONS= ffmpeg
.include "../../mk/bsd.options.mk"
.if !empty(PKG_OPTIONS:Mffmpeg)
-CMAKE_ARGS+= -D WITH_FFMPEG=ON
-CMAKE_ARGS+= -D FFMPEG_INCLUDE_DIR=${PREFIX}/include/ffmpeg2
-CMAKE_ARGS+= -D FFMPEG_LIB_DIR=${PREFIX}/lib/ffmpeg2
+CMAKE_ARGS+= -DWITH_FFMPEG=ON
+CMAKE_ARGS+= -DFFMPEG_INCLUDE_DIR=${PREFIX}/include/ffmpeg2
+CMAKE_ARGS+= -DFFMPEG_LIB_DIR=${PREFIX}/lib/ffmpeg2
.include "../../multimedia/ffmpeg2/buildlink3.mk"
.else
-CMAKE_ARGS+= -D WITH_FFMPEG=OFF
+CMAKE_ARGS+= -DWITH_FFMPEG=OFF
.endif
# FIXME: should be option.mk'ed instead
-CMAKE_ARGS+= -D BUILD_DOCS=OFF
+CMAKE_ARGS+= -DBUILD_DOCS=OFF
diff --git a/graphics/opencv/patches/patch-CMakeLists.txt b/graphics/opencv/patches/patch-CMakeLists.txt
new file mode 100644
index 00000000000..b6c7af528c3
--- /dev/null
+++ b/graphics/opencv/patches/patch-CMakeLists.txt
@@ -0,0 +1,27 @@
+$NetBSD: patch-CMakeLists.txt,v 1.7 2019/04/24 19:34:45 adam Exp $
+
+Do not build third party libraries on Darwin.
+
+--- CMakeLists.txt.orig 2019-04-24 11:18:07.000000000 +0000
++++ CMakeLists.txt
+@@ -211,13 +211,13 @@ OCV_OPTION(OPENCV_ENABLE_NONFREE "Enable
+
+ # 3rd party libs
+ OCV_OPTION(OPENCV_FORCE_3RDPARTY_BUILD "Force using 3rdparty code from source" OFF)
+-OCV_OPTION(BUILD_ZLIB "Build zlib from source" (WIN32 OR APPLE OR OPENCV_FORCE_3RDPARTY_BUILD) )
+-OCV_OPTION(BUILD_TIFF "Build libtiff from source" (WIN32 OR ANDROID OR APPLE OR OPENCV_FORCE_3RDPARTY_BUILD) )
+-OCV_OPTION(BUILD_JASPER "Build libjasper from source" (WIN32 OR ANDROID OR APPLE OR OPENCV_FORCE_3RDPARTY_BUILD) )
+-OCV_OPTION(BUILD_JPEG "Build libjpeg from source" (WIN32 OR ANDROID OR APPLE OR OPENCV_FORCE_3RDPARTY_BUILD) )
+-OCV_OPTION(BUILD_PNG "Build libpng from source" (WIN32 OR ANDROID OR APPLE OR OPENCV_FORCE_3RDPARTY_BUILD) )
+-OCV_OPTION(BUILD_OPENEXR "Build openexr from source" (((WIN32 OR ANDROID OR APPLE) AND NOT WINRT) OR OPENCV_FORCE_3RDPARTY_BUILD) )
+-OCV_OPTION(BUILD_WEBP "Build WebP from source" (((WIN32 OR ANDROID OR APPLE) AND NOT WINRT) OR OPENCV_FORCE_3RDPARTY_BUILD) )
++OCV_OPTION(BUILD_ZLIB "Build zlib from source" (WIN32 OR OPENCV_FORCE_3RDPARTY_BUILD) )
++OCV_OPTION(BUILD_TIFF "Build libtiff from source" (WIN32 OR ANDROID OR OPENCV_FORCE_3RDPARTY_BUILD) )
++OCV_OPTION(BUILD_JASPER "Build libjasper from source" (WIN32 OR ANDROID OR OPENCV_FORCE_3RDPARTY_BUILD) )
++OCV_OPTION(BUILD_JPEG "Build libjpeg from source" (WIN32 OR ANDROID OR OPENCV_FORCE_3RDPARTY_BUILD) )
++OCV_OPTION(BUILD_PNG "Build libpng from source" (WIN32 OR ANDROID OR OPENCV_FORCE_3RDPARTY_BUILD) )
++OCV_OPTION(BUILD_OPENEXR "Build openexr from source" (((WIN32 OR ANDROID) AND NOT WINRT) OR OPENCV_FORCE_3RDPARTY_BUILD) )
++OCV_OPTION(BUILD_WEBP "Build WebP from source" (((WIN32 OR ANDROID) AND NOT WINRT) OR OPENCV_FORCE_3RDPARTY_BUILD) )
+ OCV_OPTION(BUILD_TBB "Download and build TBB from source" (ANDROID OR OPENCV_FORCE_3RDPARTY_BUILD) )
+ OCV_OPTION(BUILD_IPP_IW "Build IPP IW from source" (NOT MINGW OR OPENCV_FORCE_3RDPARTY_BUILD) IF (X86_64 OR X86) AND NOT WINRT )
+ OCV_OPTION(BUILD_ITT "Build Intel ITT from source" (NOT MINGW OR OPENCV_FORCE_3RDPARTY_BUILD) IF (X86_64 OR X86) AND NOT WINRT AND NOT APPLE_FRAMEWORK )
diff --git a/graphics/opencv/patches/patch-modules_highgui_src_window__cocoa.mm b/graphics/opencv/patches/patch-modules_highgui_src_window__cocoa.mm
new file mode 100644
index 00000000000..5605452d4a7
--- /dev/null
+++ b/graphics/opencv/patches/patch-modules_highgui_src_window__cocoa.mm
@@ -0,0 +1,15 @@
+$NetBSD: patch-modules_highgui_src_window__cocoa.mm,v 1.1 2019/04/24 19:34:45 adam Exp $
+
+Explicitly cast int to double.
+
+--- modules/highgui/src/window_cocoa.mm.orig 2019-04-24 11:04:32.000000000 +0000
++++ modules/highgui/src/window_cocoa.mm
+@@ -266,7 +266,7 @@ CV_IMPL void cvResizeWindow( const char*
+ CVWindow *window = cvGetWindow(name);
+ if(window && ![window autosize]) {
+ height += [window contentView].sliderHeight;
+- NSSize size = { width, height };
++ NSSize size = { double(width), double(height) };
+ [window setContentSize:size];
+ }
+ [localpool drain];
diff --git a/graphics/opencv/patches/patch-modules_python_src2_cv2.cpp b/graphics/opencv/patches/patch-modules_python_src2_cv2.cpp
deleted file mode 100644
index 0367baa98c3..00000000000
--- a/graphics/opencv/patches/patch-modules_python_src2_cv2.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD: patch-modules_python_src2_cv2.cpp,v 1.1 2018/09/26 19:33:50 prlw1 Exp $
-
-Sprinkle const for python 3.7 compatibility
-
---- modules/python/src2/cv2.cpp.orig 2018-02-23 08:38:33.000000000 +0000
-+++ modules/python/src2/cv2.cpp
-@@ -886,7 +886,7 @@ bool pyopencv_to(PyObject* obj, String&
- (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);
diff --git a/graphics/opencv/patches/patch-modules_videoio_src_cap__v4l.cpp b/graphics/opencv/patches/patch-modules_videoio_src_cap__v4l.cpp
index 8bcadcf581c..c5d73ae28a5 100644
--- a/graphics/opencv/patches/patch-modules_videoio_src_cap__v4l.cpp
+++ b/graphics/opencv/patches/patch-modules_videoio_src_cap__v4l.cpp
@@ -1,10 +1,10 @@
-$NetBSD: patch-modules_videoio_src_cap__v4l.cpp,v 1.4 2018/03/02 16:24:21 fhajny Exp $
+$NetBSD: patch-modules_videoio_src_cap__v4l.cpp,v 1.5 2019/04/24 19:34:45 adam Exp $
Conditionalize settings not available in NetBSD's v4l2 emulation.
---- modules/videoio/src/cap_v4l.cpp.orig 2018-02-23 08:38:33.000000000 +0000
+--- modules/videoio/src/cap_v4l.cpp.orig 2019-04-06 21:43:23.000000000 +0000
+++ modules/videoio/src/cap_v4l.cpp
-@@ -216,6 +216,7 @@ make & enjoy!
+@@ -218,6 +218,7 @@ make & enjoy!
#include <fcntl.h>
#include <errno.h>
#include <sys/ioctl.h>
@@ -12,9 +12,31 @@ Conditionalize settings not available in NetBSD's v4l2 emulation.
#include <sys/types.h>
#include <sys/mman.h>
-@@ -466,13 +467,17 @@ static int autosetup_capture_mode_v4l2(C
- V4L2_PIX_FMT_YUYV,
- V4L2_PIX_FMT_UYVY,
+@@ -239,17 +240,21 @@ make & enjoy!
+ #endif
+
+ // https://github.com/opencv/opencv/issues/13335
++#ifdef V4L2_CID_CAMERA_CLASS_BASE
+ #ifndef V4L2_CID_ISO_SENSITIVITY
+ #define V4L2_CID_ISO_SENSITIVITY (V4L2_CID_CAMERA_CLASS_BASE+23)
+ #endif
++#endif
+
+ // https://github.com/opencv/opencv/issues/13929
++#ifdef V4L2_CID_MPEG_BASE
+ #ifndef V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT
+ #define V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT (V4L2_CID_MPEG_BASE+364)
+ #endif
+ #ifndef V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH
+ #define V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH (V4L2_CID_MPEG_BASE+365)
+ #endif
++#endif
+
+ /* Defaults - If your board can do better, set it here. Set for the most common type inputs. */
+ #define DEFAULT_V4L_WIDTH 640
+@@ -482,13 +487,17 @@ bool CvCaptureCAM_V4L::autosetup_capture
+ V4L2_PIX_FMT_NV12,
+ V4L2_PIX_FMT_NV21,
V4L2_PIX_FMT_SBGGR8,
+#ifdef V4L2_PIX_FMT_SGBRG8
V4L2_PIX_FMT_SGBRG8,
@@ -25,128 +47,152 @@ Conditionalize settings not available in NetBSD's v4l2 emulation.
V4L2_PIX_FMT_JPEG,
#endif
+#ifdef V4L2_PIX_FMT_Y16
- V4L2_PIX_FMT_Y16
+ V4L2_PIX_FMT_Y16,
+#endif
+ V4L2_PIX_FMT_GREY
};
- for (size_t i = 0; i < sizeof(try_order) / sizeof(__u32); i++) {
-@@ -521,12 +526,16 @@ static void v4l2_control_range(CvCapture
- case V4L2_CID_GAIN:
- cap->gain = range;
- break;
-+#ifdef V4L2_CID_EXPOSURE_ABSOLUTE
- case V4L2_CID_EXPOSURE_ABSOLUTE:
- cap->exposure = range;
- break;
-+#endif
-+#ifdef V4L2_CID_FOCUS_ABSOLUTE
- case V4L2_CID_FOCUS_ABSOLUTE:
- cap->focus = range;
- break;
-+#endif
- }
- }
-
-@@ -548,7 +557,9 @@ static void v4l2_scan_controls(CvCapture
- break;
- }
-
-+#ifdef V4L2_CID_FOCUS_ABSOLUTE
- v4l2_control_range(capture, V4L2_CID_FOCUS_ABSOLUTE);
+@@ -533,9 +542,13 @@ bool CvCaptureCAM_V4L::convertableToRgb(
+ case V4L2_PIX_FMT_UYVY:
+ case V4L2_PIX_FMT_SBGGR8:
+ case V4L2_PIX_FMT_SN9C10X:
++#ifdef V4L2_PIX_FMT_SGBRG8
+ case V4L2_PIX_FMT_SGBRG8:
+#endif
- }
-
- static int v4l2_set_fps(CvCaptureCAM_V4L* capture) {
-@@ -564,8 +575,10 @@ static int v4l2_num_channels(__u32 palet
- case V4L2_PIX_FMT_YVU420:
- case V4L2_PIX_FMT_MJPEG:
- case V4L2_PIX_FMT_JPEG:
+ case V4L2_PIX_FMT_RGB24:
+#ifdef V4L2_PIX_FMT_Y16
case V4L2_PIX_FMT_Y16:
- return 1;
+#endif
- case V4L2_PIX_FMT_YUYV:
- case V4L2_PIX_FMT_UYVY:
- return 2;
-@@ -593,11 +606,13 @@ static void v4l2_create_frame(CvCaptureC
- case V4L2_PIX_FMT_YVU420:
+ case V4L2_PIX_FMT_GREY:
+ case V4L2_PIX_FMT_BGR24:
+ return true;
+@@ -569,9 +582,11 @@ void CvCaptureCAM_V4L::v4l2_create_frame
+ channels = 1;
size.height = size.height * 3 / 2; // "1.5" channels
break;
+#ifdef V4L2_PIX_FMT_Y16
case V4L2_PIX_FMT_Y16:
- if(!capture->convert_rgb){
- depth = IPL_DEPTH_16U;
- }
- break;
+ depth = IPL_DEPTH_16U;
+ /* fallthru */
+#endif
- }
- }
-
-@@ -1558,18 +1573,21 @@ static IplImage* icvRetrieveFrameCAM_V4L
- (unsigned char*)capture->frame.imageData);
- break;
-
+ case V4L2_PIX_FMT_GREY:
+ channels = 1;
+ break;
+@@ -1395,11 +1410,13 @@ void CvCaptureCAM_V4L::convertToRgb(cons
+ (unsigned char*)buffers[MAX_V4L_BUFFERS].start,
+ (unsigned char*)frame.imageData);
+ return;
+#ifdef V4L2_PIX_FMT_SGBRG8
case V4L2_PIX_FMT_SGBRG8:
- sgbrg2rgb24(capture->form.fmt.pix.width,
- capture->form.fmt.pix.height,
- (unsigned char*)capture->buffers[(capture->bufferIndex+1) % capture->req.count].start,
- (unsigned char*)capture->frame.imageData);
- break;
+ sgbrg2rgb24(imageSize.width, imageSize.height,
+ (unsigned char*)currentBuffer.start,
+ (unsigned char*)frame.imageData);
+ return;
+#endif
- case V4L2_PIX_FMT_RGB24:
- rgb24_to_rgb24(capture->form.fmt.pix.width,
- capture->form.fmt.pix.height,
- (unsigned char*)capture->buffers[(capture->bufferIndex+1) % capture->req.count].start,
- (unsigned char*)capture->frame.imageData);
+ default:
break;
+ }
+@@ -1437,6 +1454,7 @@ void CvCaptureCAM_V4L::convertToRgb(cons
+ case V4L2_PIX_FMT_RGB24:
+ cv::cvtColor(cv::Mat(imageSize, CV_8UC3, currentBuffer.start), destination, COLOR_RGB2BGR);
+ return;
+#ifdef V4L2_PIX_FMT_Y16
case V4L2_PIX_FMT_Y16:
- if(capture->convert_rgb){
- y16_to_rgb24(capture->form.fmt.pix.width,
-@@ -1582,6 +1600,7 @@ static IplImage* icvRetrieveFrameCAM_V4L
- capture->frame.imageSize);
- }
+ {
+ cv::Mat temp(imageSize, CV_8UC1, buffers[MAX_V4L_BUFFERS].start);
+@@ -1444,6 +1462,7 @@ void CvCaptureCAM_V4L::convertToRgb(cons
+ cv::cvtColor(temp, destination, COLOR_GRAY2BGR);
+ return;
+ }
++#endif
+ case V4L2_PIX_FMT_GREY:
+ cv::cvtColor(cv::Mat(imageSize, CV_8UC1, currentBuffer.start), destination, COLOR_GRAY2BGR);
break;
+@@ -1556,8 +1575,10 @@ static inline int capPropertyToV4L2(int
+ return -1;
+ case cv::CAP_PROP_FOURCC:
+ return -1;
++#ifdef V4L2_CID_MPEG_VIDEO_B_FRAMES
+ case cv::CAP_PROP_FRAME_COUNT:
+ return V4L2_CID_MPEG_VIDEO_B_FRAMES;
+#endif
- }
-
- if (capture->returnFrame)
-@@ -1602,14 +1621,22 @@ static inline __u32 capPropertyToV4L2(in
+ case cv::CAP_PROP_FORMAT:
+ return -1;
+ case cv::CAP_PROP_MODE:
+@@ -1572,8 +1593,10 @@ static inline int capPropertyToV4L2(int
return V4L2_CID_HUE;
- case CV_CAP_PROP_GAIN:
+ case cv::CAP_PROP_GAIN:
return V4L2_CID_GAIN;
-+#ifdef V4L2_CID_EXPOSURE_AUTO
- case CV_CAP_PROP_AUTO_EXPOSURE:
- return V4L2_CID_EXPOSURE_AUTO;
-+#endif
+#ifdef V4L2_CID_EXPOSURE_ABSOLUTE
- case CV_CAP_PROP_EXPOSURE:
+ case cv::CAP_PROP_EXPOSURE:
return V4L2_CID_EXPOSURE_ABSOLUTE;
+#endif
-+#ifdef V4L2_CID_FOCUS_AUTO
- case CV_CAP_PROP_AUTOFOCUS:
- return V4L2_CID_FOCUS_AUTO;
+ case cv::CAP_PROP_CONVERT_RGB:
+ return -1;
+ case cv::CAP_PROP_WHITE_BALANCE_BLUE_U:
+@@ -1584,8 +1607,10 @@ static inline int capPropertyToV4L2(int
+ return -1;
+ case cv::CAP_PROP_SHARPNESS:
+ return V4L2_CID_SHARPNESS;
++#ifdef V4L2_CID_EXPOSURE_AUTO
+ case cv::CAP_PROP_AUTO_EXPOSURE:
+ return V4L2_CID_EXPOSURE_AUTO;
++#endif
+ case cv::CAP_PROP_GAMMA:
+ return V4L2_CID_GAMMA;
+ case cv::CAP_PROP_TEMPERATURE:
+@@ -1596,34 +1621,54 @@ static inline int capPropertyToV4L2(int
+ return -1;
+ case cv::CAP_PROP_WHITE_BALANCE_RED_V:
+ return V4L2_CID_RED_BALANCE;
++#ifdef V4L2_CID_ZOOM_ABSOLUTE
+ case cv::CAP_PROP_ZOOM:
+ return V4L2_CID_ZOOM_ABSOLUTE;
+#endif
+#ifdef V4L2_CID_FOCUS_ABSOLUTE
- case CV_CAP_PROP_FOCUS:
+ case cv::CAP_PROP_FOCUS:
return V4L2_CID_FOCUS_ABSOLUTE;
+#endif
- default:
+ case cv::CAP_PROP_GUID:
return -1;
- }
-@@ -1755,12 +1782,14 @@ static bool icvSetControl (CvCaptureCAM_
- return false;
- }
-
-+#if defined(V4L2_CID_EXPOSURE_AUTO) && defined(V4L2_EXPOSURE_MANUAL) && defined(V4L2_CID_EXPOSURE_ABSOLUTE)
- if(control.id == V4L2_CID_EXPOSURE_AUTO && control.value == V4L2_EXPOSURE_MANUAL) {
- // update the control range for expose after disabling autoexposure
- // as it is not read correctly at startup
- // TODO check this again as it might be fixed with Linux 4.5
- v4l2_control_range(capture, V4L2_CID_EXPOSURE_ABSOLUTE);
- }
++#ifdef V4L2_CID_ISO_SENSITIVITY
+ case cv::CAP_PROP_ISO_SPEED:
+ return V4L2_CID_ISO_SENSITIVITY;
+#endif
-
- /* all was OK */
- return true;
+ case cv::CAP_PROP_BACKLIGHT:
+ return V4L2_CID_BACKLIGHT_COMPENSATION;
++#ifdef V4L2_CID_PAN_ABSOLUTE
+ case cv::CAP_PROP_PAN:
+ return V4L2_CID_PAN_ABSOLUTE;
++#endif
++#ifdef V4L2_CID_TILT_ABSOLUTE
+ case cv::CAP_PROP_TILT:
+ return V4L2_CID_TILT_ABSOLUTE;
++#endif
++#ifdef V4L2_CID_ROTATE
+ case cv::CAP_PROP_ROLL:
+ return V4L2_CID_ROTATE;
++#endif
++#ifdef V4L2_CID_IRIS_ABSOLUTE
+ case cv::CAP_PROP_IRIS:
+ return V4L2_CID_IRIS_ABSOLUTE;
++#endif
+ case cv::CAP_PROP_SETTINGS:
+ return -1;
+ case cv::CAP_PROP_BUFFERSIZE:
+ return -1;
++#ifdef V4L2_CID_FOCUS_AUTO
+ case cv::CAP_PROP_AUTOFOCUS:
+ return V4L2_CID_FOCUS_AUTO;
++#endif
++#ifdef V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT
+ case cv::CAP_PROP_SAR_NUM:
+ return V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_HEIGHT;
++#endif
++#ifdef V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH
+ case cv::CAP_PROP_SAR_DEN:
+ return V4L2_CID_MPEG_VIDEO_H264_VUI_EXT_SAR_WIDTH;
++#endif
+ case CAP_PROP_AUTO_WB:
+ return V4L2_CID_AUTO_WHITE_BALANCE;
+ case CAP_PROP_WB_TEMPERATURE: