mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2025-02-06 23:47:10 +00:00
extra/opencv to 3.1.0-3
This commit is contained in:
parent
3147b8086a
commit
e434e8f561
3 changed files with 66 additions and 243 deletions
39
extra/opencv/5852.patch
Normal file
39
extra/opencv/5852.patch
Normal file
|
@ -0,0 +1,39 @@
|
|||
From 24dbb43c096691d0333cacf231e22f1369f8c826 Mon Sep 17 00:00:00 2001
|
||||
From: Alexander Alekhin <alexander.alekhin@itseez.com>
|
||||
Date: Tue, 22 Dec 2015 17:10:33 +0300
|
||||
Subject: [PATCH] pkg-config: modules list contains only OpenCV modules (fixes
|
||||
#5852)
|
||||
|
||||
---
|
||||
cmake/OpenCVUtils.cmake | 11 +++++++----
|
||||
1 file changed, 7 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/cmake/OpenCVUtils.cmake b/cmake/OpenCVUtils.cmake
|
||||
index 3a23cd7..75412eb 100644
|
||||
--- a/cmake/OpenCVUtils.cmake
|
||||
+++ b/cmake/OpenCVUtils.cmake
|
||||
@@ -806,7 +806,13 @@ macro(ocv_get_all_libs _modules _extra _3rdparty)
|
||||
else()
|
||||
set(deps "")
|
||||
endif()
|
||||
- list(INSERT ${_modules} 0 ${deps} ${m})
|
||||
+ set(_rev_deps "${deps};${m}")
|
||||
+ ocv_list_reverse(_rev_deps)
|
||||
+ foreach (dep ${_rev_deps})
|
||||
+ if(DEFINED OPENCV_MODULE_${dep}_LOCATION)
|
||||
+ list(INSERT ${_modules} 0 ${dep})
|
||||
+ endif()
|
||||
+ endforeach()
|
||||
foreach (dep ${deps} ${OPENCV_LINKER_LIBS})
|
||||
if (NOT DEFINED OPENCV_MODULE_${dep}_LOCATION)
|
||||
if (TARGET ${dep})
|
||||
@@ -832,9 +838,6 @@ macro(ocv_get_all_libs _modules _extra _3rdparty)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
- # split 3rdparty libs and modules
|
||||
- list(REMOVE_ITEM ${_modules} ${${_3rdparty}} ${${_extra}} non_empty_list)
|
||||
-
|
||||
ocv_list_filterout(${_modules} "^[\$]<")
|
||||
ocv_list_filterout(${_3rdparty} "^[\$]<")
|
||||
ocv_list_filterout(${_extra} "^[\$]<")
|
|
@ -4,32 +4,35 @@
|
|||
|
||||
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
|
||||
# - remove intel-tbb depend for v5 and v6
|
||||
# - remove libcl (opt)depend, disable in cmakeopts
|
||||
#
|
||||
# ALARM: David Beauchamp <alarm@davidbeauchamp.com>
|
||||
# - remove x86 ASM patch
|
||||
# - depend on protobuf to skip building old, broken, bundled version
|
||||
|
||||
pkgbase=opencv
|
||||
pkgname=('opencv' 'opencv-samples')
|
||||
pkgver=2.4.12.3
|
||||
pkgrel=1
|
||||
pkgver=3.1.0
|
||||
pkgrel=3
|
||||
pkgdesc="Open Source Computer Vision Library"
|
||||
arch=('i686' 'x86_64')
|
||||
license=('BSD')
|
||||
url="http://opencv.org/"
|
||||
depends=('openexr' 'xine-lib' 'libdc1394' 'gtkglext')
|
||||
depends=('openexr' 'xine-lib' 'libdc1394' 'gtkglext' 'protobuf')
|
||||
depends_armv7h=('intel-tbb')
|
||||
makedepends=('cmake' 'python2-numpy' 'mesa' 'eigen2')
|
||||
depends_aarch64=('intel-tbb')
|
||||
makedepends=('cmake' 'python-numpy' 'python2-numpy' 'mesa' 'eigen')
|
||||
optdepends=('opencv-samples'
|
||||
'eigen2'
|
||||
'python2-numpy: Python 2.x interface')
|
||||
#source=("http://downloads.sourceforge.net/opencvlibrary/$pkgname-$pkgver.zip")
|
||||
source=("$pkgbase-$pkgver::https://github.com/Itseez/opencv/archive/$pkgver.zip" opencv-ffmpeg3.patch)
|
||||
md5sums=('eaede6500e9c2d56683196b0576db1f7'
|
||||
'c752f3e83ebb021171fdd04aa7fb2e5a')
|
||||
'eigen'
|
||||
'libcl: For coding with OpenCL'
|
||||
'python-numpy: Python 3 interface'
|
||||
'python2-numpy: Python 2 interface')
|
||||
source=("$pkgbase-$pkgver.tar.gz::https://github.com/Itseez/opencv/archive/$pkgver.zip"
|
||||
"opencv_contrib-$pkgver.tar.gz::https://github.com/Itseez/opencv_contrib/archive/$pkgver.tar.gz"
|
||||
'5852.patch')
|
||||
md5sums=('6082ee2124d4066581a7386972bfd52a'
|
||||
'a822839ad3ab79ff837c16785ea9dd10'
|
||||
'5bd9cd736b171c15cedee3a32a0c47ff')
|
||||
|
||||
_cmakeopts=('-D WITH_OPENCL=OFF'
|
||||
_cmakeopts=('-D WITH_OPENCL=ON'
|
||||
'-D WITH_OPENGL=ON'
|
||||
'-D WITH_TBB=ON'
|
||||
'-D WITH_XINE=ON'
|
||||
'-D WITH_GSTREAMER=OFF'
|
||||
'-D BUILD_WITH_DEBUG_INFO=OFF'
|
||||
|
@ -40,7 +43,10 @@ _cmakeopts=('-D WITH_OPENCL=OFF'
|
|||
'-D INSTALL_PYTHON_EXAMPLES=ON'
|
||||
'-D CMAKE_BUILD_TYPE=Release'
|
||||
'-D CMAKE_INSTALL_PREFIX=/usr'
|
||||
'-D CMAKE_SKIP_RPATH=ON')
|
||||
'-D CMAKE_SKIP_RPATH=ON'
|
||||
#'-D WITH_IPP=ON'
|
||||
#'-D INSTALL_CREATE_DISTRIB=ON'
|
||||
)
|
||||
|
||||
# SSE only available from Pentium 3 onwards (i686 is way older)
|
||||
[[ "$CARCH" = 'i686' ]] && \
|
||||
|
@ -48,22 +54,17 @@ _cmakeopts=('-D WITH_OPENCL=OFF'
|
|||
'-D ENABLE_SSE2=OFF'
|
||||
'-D ENABLE_SSE3=OFF')
|
||||
|
||||
# all x64 CPUs support SSE2 but not SSE3
|
||||
[[ "$CARCH" = 'x86_64' ]] && _cmakeopts+=('-D ENABLE_SSE3=OFF')
|
||||
|
||||
# ARMv7 supports Intel TBB
|
||||
[[ "$CARCH" = 'armv7h' ]] && _cmakeopts+=('-D WITH_TBB=ON')
|
||||
|
||||
prepare() {
|
||||
cd $pkgname-$pkgver
|
||||
# Fix build with ffmpeg 3.0 (Debian)
|
||||
patch -p1 -i ../opencv-ffmpeg3.patch
|
||||
cd "$srcdir/$pkgname-$pkgver"
|
||||
patch -p1 -i "$srcdir/5852.patch"
|
||||
}
|
||||
|
||||
build() {
|
||||
cd "$srcdir/$pkgname-$pkgver"
|
||||
|
||||
cmake ${_cmakeopts[@]} .
|
||||
cmake ${_cmakeopts[@]} \
|
||||
-DOPENCV_EXTRA_MODULES_PATH="$srcdir/opencv_contrib-$pkgver/modules" \
|
||||
.
|
||||
|
||||
make
|
||||
}
|
||||
|
|
|
@ -1,217 +0,0 @@
|
|||
--- opencv-2.4.9.1+dfsg.orig/modules/highgui/src/cap_ffmpeg_impl.hpp
|
||||
+++ opencv-2.4.9.1+dfsg/modules/highgui/src/cap_ffmpeg_impl.hpp
|
||||
@@ -136,9 +136,9 @@ extern "C" {
|
||||
#define CV_WARN(message) fprintf(stderr, "warning: %s (%s:%d)\n", message, __FILE__, __LINE__)
|
||||
#endif
|
||||
|
||||
-/* PIX_FMT_RGBA32 macro changed in newer ffmpeg versions */
|
||||
-#ifndef PIX_FMT_RGBA32
|
||||
-#define PIX_FMT_RGBA32 PIX_FMT_RGB32
|
||||
+/* AV_PIX_FMT_RGBA32 macro changed in newer ffmpeg versions */
|
||||
+#ifndef AV_PIX_FMT_RGBA32
|
||||
+#define AV_PIX_FMT_RGBA32 AV_PIX_FMT_RGB32
|
||||
#endif
|
||||
|
||||
#define CALC_FFMPEG_VERSION(a,b,c) ( a<<16 | b<<8 | c )
|
||||
@@ -304,7 +304,7 @@ {
|
||||
// FFmpeg and Libav added avcodec_free_frame in different versions.
|
||||
#if LIBAVCODEC_BUILD >= (LIBAVCODEC_VERSION_MICRO >= 100 \
|
||||
? CALC_FFMPEG_VERSION(54, 59, 100) : CALC_FFMPEG_VERSION(54, 28, 0))
|
||||
- avcodec_free_frame(&picture);
|
||||
+ av_frame_free(&picture);
|
||||
#else
|
||||
av_free(picture);
|
||||
#endif
|
||||
@@ -572,13 +572,13 @@ bool CvCapture_FFMPEG::open( const char*
|
||||
|
||||
video_stream = i;
|
||||
video_st = ic->streams[i];
|
||||
- picture = avcodec_alloc_frame();
|
||||
+ picture = av_frame_alloc();
|
||||
|
||||
rgb_picture.data[0] = (uint8_t*)malloc(
|
||||
- avpicture_get_size( PIX_FMT_BGR24,
|
||||
+ avpicture_get_size( AV_PIX_FMT_BGR24,
|
||||
enc->width, enc->height ));
|
||||
avpicture_fill( (AVPicture*)&rgb_picture, rgb_picture.data[0],
|
||||
- PIX_FMT_BGR24, enc->width, enc->height );
|
||||
+ AV_PIX_FMT_BGR24, enc->width, enc->height );
|
||||
|
||||
frame.width = enc->width;
|
||||
frame.height = enc->height;
|
||||
@@ -670,7 +670,7 @@ bool CvCapture_FFMPEG::retrieveFrame(int
|
||||
if( !video_st || !picture->data[0] )
|
||||
return false;
|
||||
|
||||
- avpicture_fill((AVPicture*)&rgb_picture, rgb_picture.data[0], PIX_FMT_RGB24,
|
||||
+ avpicture_fill((AVPicture*)&rgb_picture, rgb_picture.data[0], AV_PIX_FMT_RGB24,
|
||||
video_st->codec->width, video_st->codec->height);
|
||||
|
||||
if( img_convert_ctx == NULL ||
|
||||
@@ -688,7 +688,7 @@ bool CvCapture_FFMPEG::retrieveFrame(int
|
||||
video_st->codec->width, video_st->codec->height,
|
||||
video_st->codec->pix_fmt,
|
||||
video_st->codec->width, video_st->codec->height,
|
||||
- PIX_FMT_BGR24,
|
||||
+ AV_PIX_FMT_BGR24,
|
||||
SWS_BICUBIC,
|
||||
NULL, NULL, NULL
|
||||
);
|
||||
@@ -1001,10 +1001,10 @@ static AVFrame * icv_alloc_picture_FFMPE
|
||||
uint8_t * picture_buf;
|
||||
int size;
|
||||
|
||||
- picture = avcodec_alloc_frame();
|
||||
+ picture = av_frame_alloc();
|
||||
if (!picture)
|
||||
return NULL;
|
||||
- size = avpicture_get_size( (PixelFormat) pix_fmt, width, height);
|
||||
+ size = avpicture_get_size( (AVPixelFormat) pix_fmt, width, height);
|
||||
if(alloc){
|
||||
picture_buf = (uint8_t *) malloc(size);
|
||||
if (!picture_buf)
|
||||
@@ -1013,7 +1013,7 @@ static AVFrame * icv_alloc_picture_FFMPE
|
||||
return NULL;
|
||||
}
|
||||
avpicture_fill((AVPicture *)picture, picture_buf,
|
||||
- (PixelFormat) pix_fmt, width, height);
|
||||
+ (AVPixelFormat) pix_fmt, width, height);
|
||||
}
|
||||
else {
|
||||
}
|
||||
@@ -1096,7 +1096,7 @@ static AVStream *icv_add_video_stream_FF
|
||||
}
|
||||
|
||||
c->gop_size = 12; /* emit one intra frame every twelve frames at most */
|
||||
- c->pix_fmt = (PixelFormat) pixel_format;
|
||||
+ c->pix_fmt = (AVPixelFormat) pixel_format;
|
||||
|
||||
if (c->codec_id == CV_CODEC(CODEC_ID_MPEG2VIDEO)) {
|
||||
c->max_b_frames = 2;
|
||||
@@ -1220,12 +1220,12 @@ bool CvVideoWriter_FFMPEG::writeFrame( c
|
||||
}
|
||||
|
||||
// check parameters
|
||||
- if (input_pix_fmt == PIX_FMT_BGR24) {
|
||||
+ if (input_pix_fmt == AV_PIX_FMT_BGR24) {
|
||||
if (cn != 3) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
- else if (input_pix_fmt == PIX_FMT_GRAY8) {
|
||||
+ else if (input_pix_fmt == AV_PIX_FMT_GRAY8) {
|
||||
if (cn != 1) {
|
||||
return false;
|
||||
}
|
||||
@@ -1238,13 +1238,13 @@ bool CvVideoWriter_FFMPEG::writeFrame( c
|
||||
assert( input_picture );
|
||||
// let input_picture point to the raw data buffer of 'image'
|
||||
avpicture_fill((AVPicture *)input_picture, (uint8_t *) data,
|
||||
- (PixelFormat)input_pix_fmt, width, height);
|
||||
+ (AVPixelFormat)input_pix_fmt, width, height);
|
||||
|
||||
if( !img_convert_ctx )
|
||||
{
|
||||
img_convert_ctx = sws_getContext(width,
|
||||
height,
|
||||
- (PixelFormat)input_pix_fmt,
|
||||
+ (AVPixelFormat)input_pix_fmt,
|
||||
c->width,
|
||||
c->height,
|
||||
c->pix_fmt,
|
||||
@@ -1262,7 +1262,7 @@ bool CvVideoWriter_FFMPEG::writeFrame( c
|
||||
}
|
||||
else{
|
||||
avpicture_fill((AVPicture *)picture, (uint8_t *) data,
|
||||
- (PixelFormat)input_pix_fmt, width, height);
|
||||
+ (AVPixelFormat)input_pix_fmt, width, height);
|
||||
}
|
||||
|
||||
ret = icv_av_write_frame_FFMPEG( oc, video_st, outbuf, outbuf_size, picture) >= 0;
|
||||
@@ -1373,10 +1373,10 @@ bool CvVideoWriter_FFMPEG::open( const c
|
||||
|
||||
/* determine optimal pixel format */
|
||||
if (is_color) {
|
||||
- input_pix_fmt = PIX_FMT_BGR24;
|
||||
+ input_pix_fmt = AV_PIX_FMT_BGR24;
|
||||
}
|
||||
else {
|
||||
- input_pix_fmt = PIX_FMT_GRAY8;
|
||||
+ input_pix_fmt = AV_PIX_FMT_GRAY8;
|
||||
}
|
||||
|
||||
/* Lookup codec_id for given fourcc */
|
||||
@@ -1402,21 +1402,21 @@ bool CvVideoWriter_FFMPEG::open( const c
|
||||
codec_pix_fmt = input_pix_fmt;
|
||||
break;
|
||||
case CV_CODEC(CODEC_ID_HUFFYUV):
|
||||
- codec_pix_fmt = PIX_FMT_YUV422P;
|
||||
+ codec_pix_fmt = AV_PIX_FMT_YUV422P;
|
||||
break;
|
||||
case CV_CODEC(CODEC_ID_MJPEG):
|
||||
case CV_CODEC(CODEC_ID_LJPEG):
|
||||
- codec_pix_fmt = PIX_FMT_YUVJ420P;
|
||||
+ codec_pix_fmt = AV_PIX_FMT_YUVJ420P;
|
||||
bitrate_scale = 3;
|
||||
break;
|
||||
case CV_CODEC(CODEC_ID_RAWVIDEO):
|
||||
- codec_pix_fmt = input_pix_fmt == PIX_FMT_GRAY8 ||
|
||||
- input_pix_fmt == PIX_FMT_GRAY16LE ||
|
||||
- input_pix_fmt == PIX_FMT_GRAY16BE ? input_pix_fmt : PIX_FMT_YUV420P;
|
||||
+ codec_pix_fmt = input_pix_fmt == AV_PIX_FMT_GRAY8 ||
|
||||
+ input_pix_fmt == AV_PIX_FMT_GRAY16LE ||
|
||||
+ input_pix_fmt == AV_PIX_FMT_GRAY16BE ? input_pix_fmt : AV_PIX_FMT_YUV420P;
|
||||
break;
|
||||
default:
|
||||
// good for lossy formats, MPEG, etc.
|
||||
- codec_pix_fmt = PIX_FMT_YUV420P;
|
||||
+ codec_pix_fmt = AV_PIX_FMT_YUV420P;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1609,7 +1609,7 @@ struct OutputMediaStream_FFMPEG
|
||||
void write(unsigned char* data, int size, int keyFrame);
|
||||
|
||||
// add a video output stream to the container
|
||||
- static AVStream* addVideoStream(AVFormatContext *oc, CV_CODEC_ID codec_id, int w, int h, int bitrate, double fps, PixelFormat pixel_format);
|
||||
+ static AVStream* addVideoStream(AVFormatContext *oc, CV_CODEC_ID codec_id, int w, int h, int bitrate, double fps, AVPixelFormat pixel_format);
|
||||
|
||||
AVOutputFormat* fmt_;
|
||||
AVFormatContext* oc_;
|
||||
@@ -1648,7 +1648,7 @@ void OutputMediaStream_FFMPEG::close()
|
||||
}
|
||||
}
|
||||
|
||||
-AVStream* OutputMediaStream_FFMPEG::addVideoStream(AVFormatContext *oc, CV_CODEC_ID codec_id, int w, int h, int bitrate, double fps, PixelFormat pixel_format)
|
||||
+AVStream* OutputMediaStream_FFMPEG::addVideoStream(AVFormatContext *oc, CV_CODEC_ID codec_id, int w, int h, int bitrate, double fps, AVPixelFormat pixel_format)
|
||||
{
|
||||
AVStream* st = avformat_new_stream(oc, 0);
|
||||
if (!st)
|
||||
@@ -1766,7 +1766,7 @@ bool OutputMediaStream_FFMPEG::open(cons
|
||||
oc_->max_delay = (int)(0.7 * AV_TIME_BASE); // This reduces buffer underrun warnings with MPEG
|
||||
|
||||
// set a few optimal pixel formats for lossless codecs of interest..
|
||||
- PixelFormat codec_pix_fmt = PIX_FMT_YUV420P;
|
||||
+ AVPixelFormat codec_pix_fmt = AV_PIX_FMT_YUV420P;
|
||||
int bitrate_scale = 64;
|
||||
|
||||
// TODO -- safe to ignore output audio stream?
|
||||
@@ -1943,15 +1943,15 @@ bool InputMediaStream_FFMPEG::open(const
|
||||
|
||||
switch (enc->pix_fmt)
|
||||
{
|
||||
- case PIX_FMT_YUV420P:
|
||||
+ case AV_PIX_FMT_YUV420P:
|
||||
*chroma_format = ::VideoChromaFormat_YUV420;
|
||||
break;
|
||||
|
||||
- case PIX_FMT_YUV422P:
|
||||
+ case AV_PIX_FMT_YUV422P:
|
||||
*chroma_format = ::VideoChromaFormat_YUV422;
|
||||
break;
|
||||
|
||||
- case PIX_FMT_YUV444P:
|
||||
+ case AV_PIX_FMT_YUV444P:
|
||||
*chroma_format = ::VideoChromaFormat_YUV444;
|
||||
break;
|
||||
|
Loading…
Reference in a new issue