diff options
-rw-r--r-- | mlt-cv.patch | 87 | ||||
-rw-r--r-- | mlt-ffmpeg.patch | 433 | ||||
-rw-r--r-- | mlt.spec | 12 | ||||
-rw-r--r-- | xlocale.patch | 15 |
4 files changed, 3 insertions, 544 deletions
diff --git a/mlt-cv.patch b/mlt-cv.patch deleted file mode 100644 index 3c20a50..0000000 --- a/mlt-cv.patch +++ /dev/null @@ -1,87 +0,0 @@ -From 9076b7100f5dd028cfd710735da27e47e63b57ea Mon Sep 17 00:00:00 2001 -From: Dan Dennedy <dan@dennedy.org> -Date: Sun, 10 Sep 2017 14:45:30 -0700 -Subject: [PATCH] Squashed commit of the following: - -commit 570229b18eeaf8e585318e1a81940359af8ea4db -Author: BoboopTeam <BoboopTeam@users.noreply.github.com> -Date: Thu Sep 7 23:01:53 2017 +0200 - - module: opencv: added 'TLD' tracker mode - -commit 4fddadb9263c462fae090ddfb8ece49857630c1d -Author: BoboopTeam <BoboopTeam@users.noreply.github.com> -Date: Thu Sep 7 22:47:05 2017 +0200 - - module: opencv: added forgotten 'KCF' mode check - -commit 622ff3acf6256739bd547ade1ceca0e6df5022e6 -Author: BoboopTeam <BoboopTeam@users.noreply.github.com> -Date: Thu Sep 7 22:14:48 2017 +0200 - - module: opencv: Remove deleted cv::Tracker::create() - - This static method is no longer present in OpenCV API, this -workaround should fix compilation against OpenCV 3.3.0 and newer ---- - src/modules/opencv/filter_opencv_tracker.cpp | 28 ++++++++++++++++++++++++---- - 1 file changed, 24 insertions(+), 4 deletions(-) - -diff --git a/src/modules/opencv/filter_opencv_tracker.cpp b/src/modules/opencv/filter_opencv_tracker.cpp -index 48ffb56b7..d49862fcf 100644 ---- a/src/modules/opencv/filter_opencv_tracker.cpp -+++ b/src/modules/opencv/filter_opencv_tracker.cpp -@@ -19,6 +19,7 @@ - - #include <framework/mlt.h> - #include <opencv2/tracking.hpp> -+#include <opencv2/core/version.hpp> - - - typedef struct -@@ -109,14 +110,33 @@ static void analyze( mlt_filter filter, cv::Mat cvFrame, private_data* data, int - { - // Build tracker - data->algo = mlt_properties_get( filter_properties, "algo" ); -- if ( data->algo == NULL || !strcmp(data->algo, "" ) ) -- { -+#if CV_VERSION_MAJOR == 3 && CV_VERSION_MINOR >= 3 -+ if ( !data->algo || *data->algo == '\0' || !strcmp(data->algo, "KCF" ) ) -+ { -+ data->tracker = cv::TrackerKCF::create(); -+ } -+ else if ( !strcmp(data->algo, "MIL" ) ) -+ { -+ data->tracker = cv::TrackerMIL::create(); -+ } -+ else if ( !strcmp(data->algo, "TLD" ) ) -+ { -+ data->tracker = cv::TrackerTLD::create(); -+ } -+ else -+ { -+ data->tracker = cv::TrackerBoosting::create(); -+ } -+#else -+ if ( data->algo == NULL || !strcmp(data->algo, "" ) ) -+ { - data->tracker = cv::Tracker::create( "KCF" ); - } - else -- { -+ { - data->tracker = cv::Tracker::create( data->algo ); - } -+#endif - - // Discard previous results - mlt_properties_set( filter_properties, "_results", "" ); -@@ -245,7 +265,7 @@ static int filter_get_image( mlt_frame frame, uint8_t **image, mlt_image_format - { - analyze( filter, cvFrame, data, *width, *height, position - data->producer_in, data->producer_length ); - } -- -+ - if ( blur > 0 ) - { - switch ( mlt_properties_get_int( filter_properties, "blur_type" ) ) diff --git a/mlt-ffmpeg.patch b/mlt-ffmpeg.patch deleted file mode 100644 index bede153..0000000 --- a/mlt-ffmpeg.patch +++ /dev/null @@ -1,433 +0,0 @@ -From 541b083252c85a4990851c76321fac0cca50f283 Mon Sep 17 00:00:00 2001 -From: Dan Dennedy <dan@dennedy.org> -Date: Sun, 26 Mar 2017 19:01:11 -0700 -Subject: [PATCH] Prefer the "AV" namespaced CODEC flags. - -Fixes build against libav master, which has removed the old flags. ---- - src/modules/avformat/consumer_avformat.c | 33 +++++++++++++++--------- - 1 file changed, 21 insertions(+), 12 deletions(-) - -diff --git src/modules/avformat/consumer_avformat.c src/modules/avformat/consumer_avformat.c -index 43d4e44e..8414f18a 100644 ---- src/modules/avformat/consumer_avformat.c -+++ src/modules/avformat/consumer_avformat.c -@@ -1,6 +1,6 @@ - /* - * consumer_avformat.c -- an encoder based on avformat -- * Copyright (C) 2003-2015 Meltytech, LLC -+ * Copyright (C) 2003-2017 Meltytech, LLC - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public -@@ -55,6 +55,15 @@ - #define AV_CODEC_ID_MJPEG CODEC_ID_MJPEG - #endif - -+#ifndef AV_CODEC_FLAG_GLOBAL_HEADER -+#define AV_CODEC_FLAG_GLOBAL_HEADER CODEC_FLAG_GLOBAL_HEADER -+#define AV_CODEC_FLAG_QSCALE CODEC_FLAG_QSCALE -+#define AV_CODEC_FLAG_INTERLACED_DCT CODEC_FLAG_INTERLACED_DCT -+#define AV_CODEC_FLAG_INTERLACED_ME CODEC_FLAG_INTERLACED_ME -+#define AV_CODEC_FLAG_PASS1 CODEC_FLAG_PASS1 -+#define AV_CODEC_FLAG_PASS2 CODEC_FLAG_PASS2 -+#endif -+ - #define MAX_AUDIO_STREAMS (8) - #define AUDIO_ENCODE_BUFFER_SIZE (48000 * 2 * MAX_AUDIO_STREAMS) - #define AUDIO_BUFFER_SIZE (1024 * 42) -@@ -585,7 +594,7 @@ static AVStream *add_audio_stream( mlt_consumer consumer, AVFormatContext *oc, A - #endif - - if (oc->oformat->flags & AVFMT_GLOBALHEADER) -- c->flags |= CODEC_FLAG_GLOBAL_HEADER; -+ c->flags |= AV_CODEC_FLAG_GLOBAL_HEADER; - - // Allow the user to override the audio fourcc - if ( mlt_properties_get( properties, "atag" ) ) -@@ -611,7 +620,7 @@ static AVStream *add_audio_stream( mlt_consumer consumer, AVFormatContext *oc, A - int audio_qscale = mlt_properties_get_int( properties, "aq" ); - if ( audio_qscale > QSCALE_NONE ) - { -- c->flags |= CODEC_FLAG_QSCALE; -+ c->flags |= AV_CODEC_FLAG_QSCALE; - c->global_quality = FF_QP2LAMBDA * audio_qscale; - } - -@@ -710,7 +719,7 @@ static int open_audio( mlt_properties properties, AVFormatContext *oc, AVStream - if ( !strcmp( oc->oformat->name, "mp4" ) || - !strcmp( oc->oformat->name, "mov" ) || - !strcmp( oc->oformat->name, "3gp" ) ) -- c->flags |= CODEC_FLAG_GLOBAL_HEADER; -+ c->flags |= AV_CODEC_FLAG_GLOBAL_HEADER; - } - else - { -@@ -842,7 +851,7 @@ static AVStream *add_video_stream( mlt_consumer consumer, AVFormatContext *oc, A - - if ( mlt_properties_get_double( properties, "qscale" ) > 0 ) - { -- c->flags |= CODEC_FLAG_QSCALE; -+ c->flags |= AV_CODEC_FLAG_QSCALE; - c->global_quality = FF_QP2LAMBDA * mlt_properties_get_double( properties, "qscale" ); - } - -@@ -859,16 +868,16 @@ static AVStream *add_video_stream( mlt_consumer consumer, AVFormatContext *oc, A - - // Some formats want stream headers to be seperate - if ( oc->oformat->flags & AVFMT_GLOBALHEADER ) -- c->flags |= CODEC_FLAG_GLOBAL_HEADER; -+ c->flags |= AV_CODEC_FLAG_GLOBAL_HEADER; - - // Translate these standard mlt consumer properties to ffmpeg - if ( mlt_properties_get_int( properties, "progressive" ) == 0 && - mlt_properties_get_int( properties, "deinterlace" ) == 0 ) - { - if ( ! mlt_properties_get( properties, "ildct" ) || mlt_properties_get_int( properties, "ildct" ) ) -- c->flags |= CODEC_FLAG_INTERLACED_DCT; -+ c->flags |= AV_CODEC_FLAG_INTERLACED_DCT; - if ( ! mlt_properties_get( properties, "ilme" ) || mlt_properties_get_int( properties, "ilme" ) ) -- c->flags |= CODEC_FLAG_INTERLACED_ME; -+ c->flags |= AV_CODEC_FLAG_INTERLACED_ME; - } - - // parse the ratecontrol override string -@@ -905,13 +914,13 @@ static AVStream *add_video_stream( mlt_consumer consumer, AVFormatContext *oc, A - // Setup dual-pass - i = mlt_properties_get_int( properties, "pass" ); - if ( i == 1 ) -- c->flags |= CODEC_FLAG_PASS1; -+ c->flags |= AV_CODEC_FLAG_PASS1; - else if ( i == 2 ) -- c->flags |= CODEC_FLAG_PASS2; -+ c->flags |= AV_CODEC_FLAG_PASS2; - #ifdef AV_CODEC_ID_H265 - if ( codec->id != AV_CODEC_ID_H265 ) - #endif -- if ( codec->id != AV_CODEC_ID_H264 && ( c->flags & ( CODEC_FLAG_PASS1 | CODEC_FLAG_PASS2 ) ) ) -+ if ( codec->id != AV_CODEC_ID_H264 && ( c->flags & ( AV_CODEC_FLAG_PASS1 | AV_CODEC_FLAG_PASS2 ) ) ) - { - FILE *f; - int size; -@@ -926,7 +935,7 @@ static AVStream *add_video_stream( mlt_consumer consumer, AVFormatContext *oc, A - mlt_properties_from_utf8( properties, "_passlogfile", "_logfilename" ); - } - const char *filename = mlt_properties_get( properties, "_logfilename" ); -- if ( c->flags & CODEC_FLAG_PASS1 ) -+ if ( c->flags & AV_CODEC_FLAG_PASS1 ) - { - f = fopen( filename, "w" ); - if ( !f ) -From 9a955928355788e12054a22f1731a31e1a4cce34 Mon Sep 17 00:00:00 2001 -From: Dan Dennedy <dan@dennedy.org> -Date: Mon, 23 Oct 2017 20:17:40 -0700 -Subject: [PATCH] Remove filter_avresample - dropped by FFmpeg. - ---- - src/modules/avformat/Makefile | 1 - - src/modules/avformat/factory.c | 10 +- - src/modules/avformat/filter_avresample.c | 175 ----------------------- - src/modules/core/loader.ini | 2 +- - 4 files changed, 2 insertions(+), 186 deletions(-) - delete mode 100644 src/modules/avformat/filter_avresample.c - -diff --git src/modules/avformat/Makefile src/modules/avformat/Makefile -index 5d0e0e26..21bbe4cb 100644 ---- src/modules/avformat/Makefile -+++ src/modules/avformat/Makefile -@@ -16,7 +16,6 @@ OBJS = factory.o - - ifdef FILTERS - OBJS += filter_avcolour_space.o \ -- filter_avresample.o \ - filter_avdeinterlace.o \ - filter_swscale.o - CFLAGS += -DFILTERS -diff --git src/modules/avformat/factory.c src/modules/avformat/factory.c -index 7485a87a..785a6fe5 100644 ---- src/modules/avformat/factory.c -+++ src/modules/avformat/factory.c -@@ -1,6 +1,6 @@ - /* - * factory.c -- the factory method interfaces -- * Copyright (C) 2003-2016 Meltytech, LLC -+ * Copyright (C) 2003-2017 Meltytech, LLC - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public -@@ -27,7 +27,6 @@ - extern mlt_consumer consumer_avformat_init( mlt_profile profile, char *file ); - extern mlt_filter filter_avcolour_space_init( void *arg ); - extern mlt_filter filter_avdeinterlace_init( void *arg ); --extern mlt_filter filter_avresample_init( char *arg ); - extern mlt_filter filter_swscale_init( mlt_profile profile, char *arg ); - extern mlt_producer producer_avformat_init( mlt_profile profile, const char *service, char *file ); - extern mlt_filter filter_avfilter_init( mlt_profile, mlt_service_type, const char*, char* ); -@@ -125,10 +124,6 @@ static void *create_service( mlt_profile profile, mlt_service_type type, const c - return filter_avcolour_space_init( arg ); - if ( !strcmp( id, "avdeinterlace" ) ) - return filter_avdeinterlace_init( arg ); --#if defined(FFUDIV) -- if ( !strcmp( id, "avresample" ) ) -- return filter_avresample_init( arg ); --#endif - if ( !strcmp( id, "swscale" ) ) - return filter_swscale_init( profile, arg ); - #endif -@@ -409,9 +404,6 @@ MLT_REPOSITORY - MLT_REGISTER( filter_type, "avcolour_space", create_service ); - MLT_REGISTER( filter_type, "avcolor_space", create_service ); - MLT_REGISTER( filter_type, "avdeinterlace", create_service ); --#if defined(FFUDIV) -- MLT_REGISTER( filter_type, "avresample", create_service ); --#endif - MLT_REGISTER( filter_type, "swscale", create_service ); - - #ifdef AVFILTER -diff --git src/modules/avformat/filter_avresample.c src/modules/avformat/filter_avresample.c -deleted file mode 100644 -index 80f45128..00000000 ---- src/modules/avformat/filter_avresample.c -+++ /dev/null -@@ -1,175 +0,0 @@ --/* -- * filter_avresample.c -- adjust audio sample frequency -- * Copyright (C) 2003-2014 Meltytech, LLC -- * -- * This library is free software; you can redistribute it and/or -- * modify it under the terms of the GNU Lesser General Public -- * License as published by the Free Software Foundation; either -- * version 2.1 of the License, or (at your option) any later version. -- * -- * This library is distributed in the hope that it will be useful, -- * but WITHOUT ANY WARRANTY; without even the implied warranty of -- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- * Lesser General Public License for more details. -- * -- * You should have received a copy of the GNU Lesser General Public -- * License along with this library; if not, write to the Free Software -- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -- */ -- --#include <framework/mlt_filter.h> --#include <framework/mlt_frame.h> --#include <framework/mlt_log.h> -- --#include <stdio.h> --#include <stdlib.h> --#include <string.h> -- --// ffmpeg Header files --#include <libavformat/avformat.h> --#include <libavutil/samplefmt.h> -- --#if defined(FFUDIV) -- --#define MAX_AUDIO_FRAME_SIZE (192000) // 1 second of 48khz 32bit audio -- -- --/** Get the audio. --*/ -- --static int resample_get_audio( mlt_frame frame, void **buffer, mlt_audio_format *format, int *frequency, int *channels, int *samples ) --{ -- // Get the filter service -- mlt_filter filter = mlt_frame_pop_audio( frame ); -- -- // Get the filter properties -- mlt_properties filter_properties = MLT_FILTER_PROPERTIES( filter ); -- -- mlt_service_lock( MLT_FILTER_SERVICE( filter ) ); -- -- // Get the resample information -- int output_rate = mlt_properties_get_int( filter_properties, "frequency" ); -- int16_t *sample_buffer = mlt_properties_get_data( filter_properties, "buffer", NULL ); -- -- // Obtain the resample context if it exists -- ReSampleContext *resample = mlt_properties_get_data( filter_properties, "audio_resample", NULL ); -- -- // If no resample frequency is specified, default to requested value -- if ( output_rate == 0 ) -- output_rate = *frequency; -- -- // Get the producer's audio -- int error = mlt_frame_get_audio( frame, buffer, format, frequency, channels, samples ); -- if ( error ) return error; -- -- // Return now if no work to do -- if ( output_rate != *frequency ) -- { -- // Will store number of samples created -- int used = 0; -- -- mlt_log_debug( MLT_FILTER_SERVICE(filter), "channels %d samples %d frequency %d -> %d\n", -- *channels, *samples, *frequency, output_rate ); -- -- // Do not convert to s16 unless we need to change the rate -- if ( *format != mlt_audio_s16 ) -- { -- *format = mlt_audio_s16; -- mlt_frame_get_audio( frame, buffer, format, frequency, channels, samples ); -- } -- -- // Create a resampler if nececessary -- if ( resample == NULL || *frequency != mlt_properties_get_int( filter_properties, "last_frequency" ) ) -- { -- // Create the resampler -- resample = av_audio_resample_init( *channels, *channels, output_rate, *frequency, -- AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S16, 16, 10, 0, 0.8 ); -- -- // And store it on properties -- mlt_properties_set_data( filter_properties, "audio_resample", resample, 0, ( mlt_destructor )audio_resample_close, NULL ); -- -- // And remember what it was created for -- mlt_properties_set_int( filter_properties, "last_frequency", *frequency ); -- } -- -- mlt_service_unlock( MLT_FILTER_SERVICE( filter ) ); -- -- // Resample the audio -- used = audio_resample( resample, sample_buffer, *buffer, *samples ); -- int size = used * *channels * sizeof( int16_t ); -- -- // Resize if necessary -- if ( used > *samples ) -- { -- *buffer = mlt_pool_realloc( *buffer, size ); -- mlt_frame_set_audio( frame, *buffer, *format, size, mlt_pool_release ); -- } -- -- // Copy samples -- memcpy( *buffer, sample_buffer, size ); -- -- // Update output variables -- *samples = used; -- *frequency = output_rate; -- } -- else -- { -- mlt_service_unlock( MLT_FILTER_SERVICE( filter ) ); -- } -- -- return error; --} -- --/** Filter processing. --*/ -- --static mlt_frame filter_process( mlt_filter filter, mlt_frame frame ) --{ -- // Only call this if we have a means to get audio -- if ( mlt_frame_is_test_audio( frame ) == 0 ) -- { -- // Push the filter on to the stack -- mlt_frame_push_audio( frame, filter ); -- -- // Assign our get_audio method -- mlt_frame_push_audio( frame, resample_get_audio ); -- } -- -- return frame; --} -- --/** Constructor for the filter. --*/ -- --mlt_filter filter_avresample_init( char *arg ) --{ -- // Create a filter -- mlt_filter filter = mlt_filter_new( ); -- -- // Initialise if successful -- if ( filter != NULL ) -- { -- // Calculate size of the buffer -- int size = MAX_AUDIO_FRAME_SIZE * sizeof( int16_t ); -- -- // Allocate the buffer -- int16_t *buffer = mlt_pool_alloc( size ); -- -- // Assign the process method -- filter->process = filter_process; -- -- // Deal with argument -- if ( arg != NULL ) -- mlt_properties_set( MLT_FILTER_PROPERTIES( filter ), "frequency", arg ); -- -- // Default to 2 channel output -- mlt_properties_set_int( MLT_FILTER_PROPERTIES( filter ), "channels", 2 ); -- -- // Store the buffer -- mlt_properties_set_data( MLT_FILTER_PROPERTIES( filter ), "buffer", buffer, size, mlt_pool_release, NULL ); -- } -- -- return filter; --} -- --#endif // defined(FFUDIV) -diff --git src/modules/core/loader.ini src/modules/core/loader.ini -index c586a176..b3a5653d 100644 ---- src/modules/core/loader.ini -+++ src/modules/core/loader.ini -@@ -15,7 +15,7 @@ resizer=movit.resize,resize - - # audio filters - channels=audiochannels --resampler=resample,avresample -+resampler=resample - - # metadata filters - data=data_feed:attr_check -From 9ec2ab9780282412e42a39d14dced7deade201eb Mon Sep 17 00:00:00 2001 -From: Dan Dennedy <dan@dennedy.org> -Date: Mon, 23 Oct 2017 20:19:12 -0700 -Subject: [PATCH] Fix FFmpeg master removed AVFMT_RAWPICTURE. - ---- - .gitignore | 3 +++ - src/modules/avformat/consumer_avformat.c | 6 ++++++ - 2 files changed, 9 insertions(+) - -diff --git .gitignore .gitignore -index 01284bf3..3564a00f 100644 ---- .gitignore -+++ .gitignore -@@ -31,3 +31,6 @@ mlt-config - packages.dat - make.inc - src/examples/play -+*.dot -+*.rej -+ -diff --git src/modules/avformat/consumer_avformat.c src/modules/avformat/consumer_avformat.c -index b18b8752..49872225 100644 ---- src/modules/avformat/consumer_avformat.c -+++ src/modules/avformat/consumer_avformat.c -@@ -1817,6 +1817,7 @@ static void *consumer_thread( void *arg ) - } - } - -+#ifdef AVFMT_RAWPICTURE - if (oc->oformat->flags & AVFMT_RAWPICTURE) - { - // raw video case. The API will change slightly in the near future for that -@@ -1836,6 +1837,7 @@ static void *consumer_thread( void *arg ) - ret = av_write_frame(oc, &pkt); - } - else -+#endif - { - AVPacket pkt; - av_init_packet( &pkt ); -@@ -2029,7 +2031,11 @@ static void *consumer_thread( void *arg ) - } - - // Flush video -+#ifdef AVFMT_RAWPICTURE - if ( video_st && !( oc->oformat->flags & AVFMT_RAWPICTURE ) ) for (;;) -+#else -+ if ( video_st ) for (;;) -+#endif - { - AVCodecContext *c = video_st->codec; - AVPacket pkt; @@ -10,16 +10,13 @@ Summary: MLT - open source multimedia framework Summary(pl.UTF-8): MLT - szkielet multimedialny o otwartych źródłach Name: mlt -Version: 6.4.1 -Release: 5 +Version: 6.10.0 +Release: 1 License: GPL v3+ (LGPL v2.1+ code linked with GPL v2/GPL v3 libraries) Group: X11/Applications/Multimedia Source0: http://downloads.sourceforge.net/mlt/%{name}-%{version}.tar.gz -# Source0-md5: bfa7b4009be616d6f858393a88fbbb32 +# Source0-md5: 28a6f40ea76c167b6bb9d8baf985c4c2 Patch0: %{name}-qt5.patch -Patch1: xlocale.patch -Patch2: %{name}-ffmpeg.patch -Patch3: %{name}-cv.patch URL: http://www.mltframework.org/ BuildRequires: OpenGL-devel BuildRequires: Qt5Core-devel >= 5 @@ -105,9 +102,6 @@ Wiązadania Pythona do MLT - szkieletu multimedialnego o otwartych %prep %setup -q %patch0 -p1 -%patch1 -p1 -%patch2 -p0 -%patch3 -p1 # Don't overoptimize (breaks debugging) sed -i -e '/fomit-frame-pointer/d' configure diff --git a/xlocale.patch b/xlocale.patch deleted file mode 100644 index d4414b3..0000000 --- a/xlocale.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff -dur -x '*~' -x '*.orig' mlt-6.4.1.orig/src/framework/mlt_property.h mlt-6.4.1/src/framework/mlt_property.h ---- mlt-6.4.1.orig/src/framework/mlt_property.h 2016-11-16 07:53:11.000000000 +0100 -+++ mlt-6.4.1/src/framework/mlt_property.h 2017-12-10 21:08:17.725929886 +0100 -@@ -30,8 +30,10 @@ - #include <sys/param.h> - #endif - --#if defined(__GLIBC__) || defined(__APPLE__) || (__FreeBSD_version >= 900506) -+#if defined(__APPLE__) || (__FreeBSD_version >= 900506) - #include <xlocale.h> -+#elif defined(__GLIBC__) -+#include <locale.h> - #else - typedef char* locale_t; - #endif |