Hello community, here is the log from the commit of package frei0r-plugins for openSUSE:Factory checked in at 2017-12-12 21:19:36 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/frei0r-plugins (Old) and /work/SRC/openSUSE:Factory/.frei0r-plugins.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "frei0r-plugins" Tue Dec 12 21:19:36 2017 rev:14 rq:556381 version:1.6.1 Changes: -------- --- /work/SRC/openSUSE:Factory/frei0r-plugins/frei0r-plugins.changes 2016-03-05 11:21:39.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.frei0r-plugins.new/frei0r-plugins.changes 2017-12-12 21:19:38.888047974 +0100 @@ -1,0 +2,32 @@ +Sat Dec 9 14:22:55 UTC 2017 - davejpla...@gmail.com + +- Split off plugins built against OpenCV because they cause + multiprocessing issues in shotcut and kdenlive. See boo#1068792 + and https://github.com/mltframework/mlt/issues/274. + +------------------------------------------------------------------- +Wed Dec 6 14:08:29 UTC 2017 - tchva...@suse.com + +- Reduce bit operations we do in the spec and convert to pkgconfig + dependencies +- Switch LICENSE to GPL-3.0+ even tho upstream says 2.0+ is enough + quite few filters and generators are 3.0+ only + +------------------------------------------------------------------- +Tue Nov 28 06:12:12 UTC 2017 - davejpla...@gmail.com + +- Update to version 1.6.1 +- Rebase frei0r-plugins-1.4-missing_include.patch +- Rebase frei0r-plugins-openCV-3.0-compatibility.patch it is mostly + included upstream. +- Upstream changes: + *Minor fixes to the build system. Version correctly updated. + *This release contains new filters and some bugfixes to parameters + and building environment, documentation is updated accordingly. + *New filters (3): bgsubtract0r, glitch0r, rgbsplit0r + *Updated (2): Distort0r now mode and velocity, Curves has improved + precision. + *This release fixes several major bugs in existing plugins and adds + one new filter: NDVI (Normalized Difference Vegetation Index). + +------------------------------------------------------------------- Old: ---- frei0r-plugins-1.4.tar.gz New: ---- frei0r-plugins-1.6.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ frei0r-plugins.spec ++++++ --- /var/tmp/diff_new_pack.Hvdfr4/_old 2017-12-12 21:19:39.544016308 +0100 +++ /var/tmp/diff_new_pack.Hvdfr4/_new 2017-12-12 21:19:39.548016115 +0100 @@ -1,7 +1,7 @@ # # spec file for package frei0r-plugins # -# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,40 +17,44 @@ Name: frei0r-plugins -Version: 1.4 +Version: 1.6.1 Release: 0 Summary: Collection of video sources and filters plugins -License: GPL-2.0+ +# Upstream says 2.0+ but quite few of their plugins are GPL-3.0+ +License: GPL-3.0+ Group: Productivity/Multimedia/Video/Editors and Convertors Url: http://frei0r.dyne.org/ -Source: http://files.dyne.org/frei0r/releases/frei0r-plugins-%{version}.tar.gz +Source0: http://files.dyne.org/frei0r/releases/frei0r-plugins-%{version}.tar.gz # PATCH-FIX-UPSTREAM frei0r-plugins-1.4-missing_include.patch http://www.piksel.no/projects/frei0r/ticket/41 reddw...@opensuse.org -- Add missing header Patch0: frei0r-plugins-1.4-missing_include.patch # PATCH-FIX-UPSTREAM frei0r-plugins-openCV-3.0-compatibility.patch tittiatc...@gmail.com -- Make it compile with openCV3. This is a rebase of the two usptream commits by Dan Dennedy Patch1: frei0r-plugins-openCV-3.0-compatibility.patch -BuildRequires: gcc-c++ -# For the automatic pkgconfig() Provides BuildRequires: autoconf BuildRequires: automake +BuildRequires: gcc-c++ BuildRequires: libtool -BuildRequires: pkg-config +BuildRequires: pkgconfig BuildRequires: pkgconfig(cairo) >= 1.0.0 BuildRequires: pkgconfig(gavl) >= 0.2.3 -%if 0%{?suse_version} > 1320 || (0%{?suse_version} == 1315 && 0%{?is_opensuse}) -BuildRequires: opencv-qt5-devel -%else -BuildRequires: opencv-devel -%endif -BuildRoot: %{_tmppath}/%{name}-%{version}-build +BuildRequires: pkgconfig(opencv) %description This package provides a collection of video sources and filters plugins, using the Frei0r API. +%package opencv +Summary: OpenCV video sources and filters plugins +Group: Productivity/Multimedia/Video/Editors and Convertors +Requires: %{name} = %{version}-%{release} + +%description opencv +These plugins may cause slow exports due to multiprocessing issues +in kdenlive and shotcut. plugins facebl0r and facedetect. +See boo#1068792 + %package devel Summary: Frei0r plugin API for video sources and filters Group: Development/Libraries/C and C++ -# No Requires on main subpackage as there is no dependency between the two %description devel Frei0r is a minimalistic plugin API for video sources and filters. The @@ -62,27 +66,28 @@ %setup -q %patch0 %patch1 -p1 -# Timestamp problem. Remove in next release. -touch include/config.h.in %build -find -name Makefile.in -delete -autoreconf -fi +autoreconf -fvi %configure make %{?_smp_mflags} %install %make_install -# we'll package the relevant files with %%doc -rm %{buildroot}%{_datadir}/doc/frei0r-plugins/{AUTHORS,ChangeLog,README,TODO} +rm %{buildroot}%{_datadir}/doc/frei0r-plugins/{AUTHORS.txt,ChangeLog.txt,README.txt,TODO.txt} %files -%defattr(-,root,root) -%doc AUTHORS ChangeLog COPYING README +%doc AUTHORS.txt ChangeLog.txt COPYING.txt README.txt %{_libdir}/frei0r-1/ +%exclude %{_libdir}/frei0r-1/facebl0r.so +%exclude %{_libdir}/frei0r-1/facedetect.so + +%files opencv +%dir %{_libdir}/frei0r-1 +%{_libdir}/frei0r-1/facebl0r.so +%{_libdir}/frei0r-1/facedetect.so %files devel -%defattr(-,root,root) %{_libdir}/pkgconfig/frei0r.pc %{_includedir}/frei0r.h ++++++ frei0r-plugins-1.4-missing_include.patch ++++++ --- /var/tmp/diff_new_pack.Hvdfr4/_old 2017-12-12 21:19:39.576014763 +0100 +++ /var/tmp/diff_new_pack.Hvdfr4/_new 2017-12-12 21:19:39.576014763 +0100 @@ -1,12 +1,12 @@ Index: include/frei0r_cairo.h =================================================================== ---- include/frei0r_cairo.h.orig -+++ include/frei0r_cairo.h +--- include/frei0r_cairo.h.orig 2017-05-31 07:57:25.000000000 +0200 ++++ include/frei0r_cairo.h 2017-11-28 07:32:54.492982138 +0200 @@ -20,6 +20,7 @@ */ +#include <string.h> #include <cairo.h> - - /** + #include <string.h> + #include "frei0r_math.h" ++++++ frei0r-plugins-1.4.tar.gz -> frei0r-plugins-1.6.1.tar.gz ++++++ ++++ 40049 lines of diff (skipped) ++++++ frei0r-plugins-openCV-3.0-compatibility.patch ++++++ --- /var/tmp/diff_new_pack.Hvdfr4/_old 2017-12-12 21:19:40.079990434 +0100 +++ /var/tmp/diff_new_pack.Hvdfr4/_new 2017-12-12 21:19:40.079990434 +0100 @@ -4,11 +4,11 @@ src/filter/facedetect/facedetect.cpp | 19 ++ 3 files changed, 19 insertions(+), 268 deletions(-) -Index: frei0r-plugins-1.4/src/Makefile.am +Index: frei0r-plugins-1.6.1/src/Makefile.am =================================================================== ---- frei0r-plugins-1.4.orig/src/Makefile.am -+++ frei0r-plugins-1.4/src/Makefile.am -@@ -153,7 +153,7 @@ facebl0r_la_CFLAGS = @OPENCV_CFLAGS@ @CF +--- frei0r-plugins-1.6.1.orig/src/Makefile.am 2017-11-28 07:45:05.578831357 +0200 ++++ frei0r-plugins-1.6.1/src/Makefile.am 2017-11-28 07:45:25.475732451 +0200 +@@ -157,7 +157,7 @@ facebl0r_la_CFLAGS = @OPENCV_CFLAGS@ @CF facebl0r_la_LIBADD = @OPENCV_LIBS@ plugin_LTLIBRARIES += facedetect.la facedetect_la_SOURCES = filter/facedetect/facedetect.cpp @@ -17,281 +17,10 @@ facedetect_la_LIBADD = @OPENCV_LIBS@ endif -Index: frei0r-plugins-1.4/src/filter/facedetect/facedetect.c +Index: frei0r-plugins-1.6.1/src/filter/facedetect/facedetect.cpp =================================================================== ---- frei0r-plugins-1.4.orig/src/filter/facedetect/facedetect.c -+++ /dev/null -@@ -1,266 +0,0 @@ --/** -- * binarymillenium 2007 -- * -- * This code is released under the GPL -- * -- * * -- */ -- --#include <stdio.h> --#include <stdlib.h> --#include <string.h> --#include <assert.h> --#include <math.h> --#include <float.h> --#include <limits.h> --#include <time.h> --#include <ctype.h> -- -- --#include "cv.h" --//#include "highgui.h" -- --#include "frei0r.h" -- --#ifdef _EiC --#define WIN32 --#endif -- -- --CvSeq* detect_and_draw( IplImage* img, CvMemStorage* storage, -- CvHaarClassifierCascade* cascade); -- --#ifndef OPENCV_PREFIX --#error OPENCV_PREFIX must contain the installation prefix of OpenCV --#endif -- --#define STR(x) #x --#define TOSTR(x) STR(x) -- --static const char* const cascade_name = -- TOSTR(OPENCV_PREFIX)"/share/opencv/haarcascades/haarcascade_frontalface_alt2.xml"; --/* "haarcascade_frontalface_alt.xml";*/ --/* "haarcascade_profileface.xml";*/ -- -- --typedef struct facedetect_instance{ -- -- IplImage *frame, *frame_copy; -- -- int width; -- int height; -- -- CvMemStorage* storage; -- CvHaarClassifierCascade* cascade; -- --} facedetect_instance_t; -- --int f0r_init() --{ -- return 1; --} -- --f0r_instance_t f0r_construct(unsigned int width, unsigned int height) --{ -- facedetect_instance_t* inst = -- (facedetect_instance_t*)malloc(sizeof(facedetect_instance_t)); -- -- inst->width = width; -- inst->height = height; -- -- /// tbd - put this in init instead? -- inst->storage = 0; -- inst->cascade = 0; -- -- inst->frame = 0; -- inst->frame_copy = 0; -- -- inst->cascade = (CvHaarClassifierCascade*)cvLoad( cascade_name, 0, 0, 0 ); -- -- if( !inst->cascade ) -- { -- fprintf(stderr, "ERROR: Could not load classifier cascade %s\n", -- cascade_name); -- free(inst); -- return (f0r_instance_t)0; -- } -- else -- { -- inst->storage = cvCreateMemStorage(0); -- -- //cvNamedWindow( "result", 1 ); -- -- return (f0r_instance_t)inst; -- } --} -- -- --void f0r_deinit() --{ --} -- --void f0r_destruct(f0r_instance_t instance) --{ -- free(instance); -- //cvDestroyWindow("result"); --} -- --void f0r_set_param_value(f0r_instance_t instance, -- f0r_param_t param, int param_index) --{ --} -- --void f0r_get_param_value(f0r_instance_t instance, -- f0r_param_t param, int param_index) --{ --} -- --void f0r_get_plugin_info(f0r_plugin_info_t* facedetectInfo) --{ -- facedetectInfo->name = "opencvfacedetect"; -- facedetectInfo->author = "binarymillenium"; -- facedetectInfo->plugin_type = F0R_PLUGIN_TYPE_FILTER; -- facedetectInfo->color_model = F0R_COLOR_MODEL_BGRA8888; -- facedetectInfo->frei0r_version = FREI0R_MAJOR_VERSION; -- facedetectInfo->major_version = 0; -- facedetectInfo->minor_version = 1; -- facedetectInfo->num_params = 1; -- facedetectInfo->explanation = "detect faces"; --} -- --void f0r_get_param_info(f0r_param_info_t* info, int param_index) --{ -- switch(param_index) -- { -- case 0: -- info->name = "test"; -- info->type = F0R_PARAM_DOUBLE; -- info->explanation = "test"; -- break; -- } -- --} -- --void f0r_update(f0r_instance_t instance, double time, -- const uint32_t* inframe, uint32_t* outframe) --{ -- assert(instance); -- -- facedetect_instance_t* inst = (facedetect_instance_t*)instance; -- -- unsigned char* dst = (unsigned char*)outframe; -- const unsigned char* src = (unsigned char*)inframe; -- -- -- if( !inst->frame_copy ) -- inst->frame_copy = cvCreateImage( cvSize(inst->width,inst->height), -- IPL_DEPTH_8U, 4 ); -- -- unsigned char* ipli = (unsigned char*)inst->frame_copy->imageData; -- int step = inst->frame_copy->widthStep; -- unsigned i, j; -- for (i = 0; (i < inst->height); i++) { -- for (j = 0; (j < inst->width); j++) { -- ipli[i*step+j*4+2] = src[2]; -- ipli[i*step+j*4+1] = src[1]; -- ipli[i*step+j*4+0] = src[0]; -- -- //ipli += 4; -- src += 4; -- -- } -- -- } -- -- /*CvSeq* faces =*/ detect_and_draw( inst->frame_copy, -- inst->storage, -- inst->cascade ); -- -- ipli = (unsigned char*)inst->frame_copy->imageData; -- -- for (i = 0; (i < inst->height); i++) { -- for (j = 0; (j < inst->width); j++) { -- dst[2] = ipli[2]; -- dst[1] = ipli[1]; -- dst[0] = ipli[0]; -- -- ipli += 4; -- dst += 4; -- } -- } -- -- cvReleaseImage( &(inst->frame_copy) ); -- --} -- --CvSeq* detect_and_draw( IplImage* img, CvMemStorage* storage, -- CvHaarClassifierCascade* cascade) --{ -- static CvScalar colors[] = -- { -- {{255,255,255}}, -- {{0,128,255}}, -- {{0,255,255}}, -- {{0,255,0}}, -- {{255,128,0}}, -- {{255,255,0}}, -- {{255,0,0}}, -- {{255,0,255}}, -- {{0,0,0}} -- }; -- -- double scale = 1.3; -- IplImage* gray = cvCreateImage( cvSize(img->width,img->height), 8, 1 ); -- IplImage* small_img = cvCreateImage( cvSize( cvRound (img->width/scale), -- cvRound (img->height/scale)), -- 8, 1 ); -- int i; -- -- cvCvtColor( img, gray, CV_BGR2GRAY ); -- cvResize( gray, small_img, CV_INTER_LINEAR ); -- cvEqualizeHist( small_img, small_img ); -- //cvClearMemStorage( storage ); -- -- CvSeq* faces = 0; -- -- if( cascade ) -- { -- double t = (double)cvGetTickCount(); -- faces = cvHaarDetectObjects( small_img, cascade, storage, -- 1.1, 2, 0/*CV_HAAR_DO_CANNY_PRUNING*/, -- cvSize(30, 30) ); -- t = (double)cvGetTickCount() - t; -- //printf( "detection time = %gms\n", t/((double)cvGetTickFrequency()*1000.) ); -- -- CvPoint pt1, pt2; -- pt1.x = 0; -- pt1.y = 0; -- pt2.x = img->width; -- pt2.y = img->height; -- cvRectangle( img, pt1, pt2, colors[8],CV_FILLED, 8, 0 ); -- -- for( i = 0; i < (faces ? faces->total : 0); i++ ) -- { -- CvRect* r = (CvRect*)cvGetSeqElem( faces, i ); -- CvPoint center; -- int radius; -- center.x = cvRound((r->x + r->width*0.5)*scale); -- center.y = cvRound((r->y + r->height*0.5)*scale); -- radius = cvRound((r->width + r->height)*0.25*scale); -- -- pt1.x = r->x;// - r->width*0.5; -- pt1.y = r->y;// - r->height*0.5; -- pt2.x = r->x + r->width; -- pt2.y = r->y + r->height; -- //printf( " faces %d %d \n", center.x, center.y); -- cvCircle( img, center, radius, colors[i%8],CV_FILLED, 8, 0); // 3, 8, 0 ); -- //cvRectangle( img, pt1, pt2, colors[i%8], CV_FILLED ); -- } -- } -- -- //cvShowImage( "result", img ); -- cvReleaseImage( &gray ); -- cvReleaseImage( &small_img ); -- -- return faces; --} -Index: frei0r-plugins-1.4/src/filter/facedetect/facedetect.cpp -=================================================================== ---- frei0r-plugins-1.4.orig/src/filter/facedetect/facedetect.cpp -+++ frei0r-plugins-1.4/src/filter/facedetect/facedetect.cpp +--- frei0r-plugins-1.6.1.orig/src/filter/facedetect/facedetect.cpp 2017-11-28 07:45:05.578831357 +0200 ++++ frei0r-plugins-1.6.1/src/filter/facedetect/facedetect.cpp 2017-11-28 07:45:25.475732451 +0200 @@ -25,7 +25,7 @@ #include <limits.h> #include <time.h> @@ -301,47 +30,3 @@ #include "frei0r.hpp" #include "frei0r_math.h" -@@ -259,11 +259,19 @@ private: - { - double scale = this->scale == 0? 1.0 : this->scale; - CvScalar colors[5] = { -+#if defined(CV_MAJOR_VERSION) && (CV_MAJOR_VERSION >= 3) -+ CvScalar(cvRound(color[0].r * 255), cvRound(color[0].g * 255), cvRound(color[0].b * 255), cvRound(alpha * 255)), -+ CvScalar(cvRound(color[1].r * 255), cvRound(color[1].g * 255), cvRound(color[1].b * 255), cvRound(alpha * 255)), -+ CvScalar(cvRound(color[2].r * 255), cvRound(color[2].g * 255), cvRound(color[2].b * 255), cvRound(alpha * 255)), -+ CvScalar(cvRound(color[3].r * 255), cvRound(color[3].g * 255), cvRound(color[3].b * 255), cvRound(alpha * 255)), -+ CvScalar(cvRound(color[4].r * 255), cvRound(color[4].g * 255), cvRound(color[4].b * 255), cvRound(alpha * 255)), -+#else - {{cvRound(color[0].r * 255), cvRound(color[0].g * 255), cvRound(color[0].b * 255), cvRound(alpha * 255)}}, - {{cvRound(color[1].r * 255), cvRound(color[1].g * 255), cvRound(color[1].b * 255), cvRound(alpha * 255)}}, - {{cvRound(color[2].r * 255), cvRound(color[2].g * 255), cvRound(color[2].b * 255), cvRound(alpha * 255)}}, - {{cvRound(color[3].r * 255), cvRound(color[3].g * 255), cvRound(color[3].b * 255), cvRound(alpha * 255)}}, - {{cvRound(color[4].r * 255), cvRound(color[4].g * 255), cvRound(color[4].b * 255), cvRound(alpha * 255)}}, -+#endif - }; - - for (int i = 0; i < (objects ? objects->total : 0); i++) -@@ -287,14 +295,23 @@ private: - } - case 1: - { -+#if defined(CV_MAJOR_VERSION) && (CV_MAJOR_VERSION >= 3) -+ CvBox2D box = CvBox2D(CvPoint2D32f(center.x, center.y), CvSize2D32f(r->width / scale, (r->height / scale) * 1.2), 90); -+#else - CvBox2D box = {{center.x, center.y}, {r->width / scale, (r->height / scale) * 1.2}, 90}; -+#endif - cvEllipseBox(image, box, colors[i % 5], thickness, linetype); - break; - } - case 2: - { -+#if defined(CV_MAJOR_VERSION) && (CV_MAJOR_VERSION >= 3) -+ CvPoint pt1 = CvPoint(r->x / scale, r->y / scale); -+ CvPoint pt2 = CvPoint((r->x + r->width) / scale, (r->y + r->height) / scale); -+#else - CvPoint pt1 = {r->x / scale, r->y / scale}; - CvPoint pt2 = {(r->x + r->width) / scale, (r->y + r->height) / scale}; -+#endif - cvRectangle(image, pt1, pt2, colors[i % 5], thickness, linetype); - break; - }