Hello community, here is the log from the commit of package libmlt for openSUSE:Factory checked in at 2018-06-20 15:37:10 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libmlt (Old) and /work/SRC/openSUSE:Factory/.libmlt.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libmlt" Wed Jun 20 15:37:10 2018 rev:40 rq:618011 version:6.8.0 Changes: -------- --- /work/SRC/openSUSE:Factory/libmlt/libmlt.changes 2018-05-13 16:05:06.218247434 +0200 +++ /work/SRC/openSUSE:Factory/.libmlt.new/libmlt.changes 2018-06-20 15:37:19.041098069 +0200 @@ -1,0 +2,68 @@ +Wed Jun 20 09:00:29 UTC 2018 - [email protected] + +- Update to version 6.8.0 + * This version improves support for multi-channel audio and + adds some new manipulation functions to the mlt_animation + API. + Framework: + * Added support for musl C library. + * Added functions for audio channel layouts: + + mlt_channel_layout_name() + + mlt_channel_layout_id() + + mlt_channel_layout_channels() + + mlt_channel_layout_default() + * Added channel_layout property to mlt_consumer. + * Added mlt_channel_layout enum. + * Disabled memory pooling by default and require compile macro + USE_MLT_POOL to re-enable it. + * Fixed reliability of keyframed properties serializing + properly. + * Fixed parsing non-animated string as an animation. + * Added more functions to mlt_animation: + + mlt_animation_key_set_type() + + mlt_animation_key_set_frame() + + Mlt::Animation::key_set_type() + + Mlt::Animation::key_set_frame() + Modules: + * Fixed some crashes in qimage producer especially with alpha + channel. + * Fixed >2 channel audio output in the SDL consumers. + * Fixed >2 channel audio output in the rtaudio consumer on + Windows. + * Fixed vorbis encoding with FFmpeg v3.4+. + * qimage and qtext are now higher priority than gtk2 pixbuf + and pango by the loader producer. + * Added support for more channel counts to decklink consumer. + * Added swresample filter based on libswresample from FFmpeg. + This is now the preferred channel count normalizing filter + used by the loader producer. + * Fixed the strange "Undefined constant" and "Unable to parse + option value" log messages in the the avformat consumer. + * Fixed GIF and DPX writing in avformat consumer. + * Reduced the memory usage of the affine transition and + filters. + * Fixed a crash in kdenlivetitle producer. + * Fixed a crash in the rotoscoping filter. + * Fixed frame rate reported in Matroska and WebM files + produced by the avformat consumer. + * Added sdl2_audio consumer. + * Fixed alpha channel support for more pixel formats in the + avformat producer. + * Converted the affine transition to use mlt_rect and + mlt_animation. + * Fixed LADSPA plugins with mono channel audio. + Other: + * Fixed a melt command line parsing bug when argument supplied + to -transition. + * Fixed melt with SDL2 on Windows not using stdio and stderr. + * Improved speed of the vp9 avformat consumer preset. + +------------------------------------------------------------------- +Mon Jun 18 16:33:12 UTC 2018 - [email protected] + +- Enable pkgconfig(vidstab) BuildRequires unconditionally, now + available in openSUSE. +- Build with ffmpeg unconditionally, ffmpeg is available in + openSUSE. + +------------------------------------------------------------------- Old: ---- mlt-6.6.0+git20180502.tar.gz New: ---- mlt-6.8.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libmlt.spec ++++++ --- /var/tmp/diff_new_pack.nEI9tD/_old 2018-06-20 15:37:22.056988593 +0200 +++ /var/tmp/diff_new_pack.nEI9tD/_new 2018-06-20 15:37:22.056988593 +0200 @@ -16,36 +16,30 @@ # -%bcond_without ffmpeg # Dan Dennedy asked to disable it since it's buggy and unmaintained (see e.g. http://www.kdenlive.org/mantis/view.php?id=3070) %bcond_with vdpau -# vidstab currently can't enter Factory due to legal review / unclarity. Temp disable -%bcond_with vidstab - %define _name mlt %define libname lib%{_name} -%define lversion 6.7.0 +%define lversion 6.8.0 %define soname 6 -%define _rev 42621eed360e192c4fb8b631001a2f5e9e2f446f %define _name_pp %{_name}++ %define libname_pp lib%{_name_pp} %define soname_pp 3 Name: %{libname} -Version: 6.6.0+git20180502 +Version: 6.8.0 Release: 0 Summary: Multimedia framework for television broadcasting -License: GPL-3.0+ +License: GPL-3.0-or-later Group: Development/Libraries/C and C++ Url: http://www.mltframework.org -#v%%{version} -Source0: https://github.com/mltframework/mlt/archive/%{_rev}.tar.gz#/%{_name}-%{version}.tar.gz +Source0: https://github.com/mltframework/mlt/archive/v%{version}.tar.gz#/%{_name}-%{version}.tar.gz # PATCH-FIX-OPENSUSE libmlt-0.8.2-vdpau.patch [email protected] -- Make VDPAU support work without the devel package Patch1: libmlt-0.8.2-vdpau.patch BuildRequires: fdupes -%if 0%{?suse_version} > 1320 +%if 0%{?suse_version} >= 1500 BuildRequires: gcc-c++ %else BuildRequires: gcc7 @@ -75,29 +69,25 @@ BuildRequires: pkgconfig(movit) BuildRequires: pkgconfig(opencv) >= 3.1.0 #!BuildIgnore: opencv-qt5-devel +BuildRequires: pkgconfig(libavcodec) +BuildRequires: pkgconfig(libavdevice) +BuildRequires: pkgconfig(libavformat) +BuildRequires: pkgconfig(libavutil) +BuildRequires: pkgconfig(libpostproc) +BuildRequires: pkgconfig(libswscale) BuildRequires: pkgconfig(pango) BuildRequires: pkgconfig(pangoft2) BuildRequires: pkgconfig(samplerate) BuildRequires: pkgconfig(sdl) BuildRequires: pkgconfig(sdl2) BuildRequires: pkgconfig(sox) -%if %{with vidstab} BuildRequires: pkgconfig(vidstab) -%endif BuildRequires: pkgconfig(vorbisfile) -%if %{with ffmpeg} -BuildRequires: pkgconfig(libavcodec) -BuildRequires: pkgconfig(libavdevice) -BuildRequires: pkgconfig(libavformat) -BuildRequires: pkgconfig(libavutil) -BuildRequires: pkgconfig(libpostproc) -BuildRequires: pkgconfig(libswscale) %if %{with vdpau} BuildRequires: pkgconfig(vdpau) # VDPAU support requires it BuildRequires: pkgconfig(x11) %endif -%endif %description MLT is a multimedia framework for television broadcasting. It @@ -173,13 +163,11 @@ Summary: Modules for the MLT multimedia framework Group: Productivity/Multimedia/Video/Editors and Convertors Recommends: frei0r-plugins -%if %{with ffmpeg} Provides: mlt(%{soname})(avformat) %if %{with vdpau} # I would recommend it, but to the best of my knowledge nobody but nvidia provides a backend Suggests: %(rpm -qf $(readlink -e %{_libdir}/libvdpau.so) --qf '%{NAME}') %endif -%endif %description -n %{libname}%{soname}-modules MLT is a multimedia framework for television broadcasting. It @@ -216,7 +204,7 @@ This package contains python bindings. %prep -%setup -q -n %{_name}-%{_rev} +%setup -q -n %{_name}-%{version} %patch1 # To complement libmlt-0.8.0-vdpau.patch. @@ -240,11 +228,9 @@ %ifarch i586 --disable-mmx \ %endif -%if %{with ffmpeg} %if %{with vdpau} --avformat-vdpau \ %endif -%endif --enable-extra-versioning \ --swig-languages=python make %{?_smp_mflags} @@ -329,9 +315,7 @@ %{_datadir}/%{_name}-%{soname}/metaschema.yaml %{_datadir}/%{_name}-%{soname}/profiles/ %{_datadir}/%{_name}-%{soname}/presets/ -%if %{with vidstab} %{_datadir}/%{_name}-%{soname}/vid.stab/ -%endif %files -n python-%{_name} %defattr(0644, root, root, 0755) ++++++ webvfx.spec ++++++ --- /var/tmp/diff_new_pack.nEI9tD/_old 2018-06-20 15:37:22.096987141 +0200 +++ /var/tmp/diff_new_pack.nEI9tD/_new 2018-06-20 15:37:22.100986995 +0200 @@ -17,13 +17,12 @@ %define _name mlt -%define mltversion 6.6.0+git20180502 -%define mltsoversion 6.7.0 +%define mltversion 6.8.0 +%define mltsoversion 6.8.0 %define sover 1 %define mltmaj %(echo %{mltversion} |cut -d "." -f 1) # Find qt version used to build %define qt5version %(pkg-config --modversion Qt5Core) -%define mltrev 42621eed360e192c4fb8b631001a2f5e9e2f446f %define _rev d65a42d25a887d11fd5cf5e485c1561dc802b671 Name: webvfx Version: 0.44+git20180223 @@ -94,7 +93,7 @@ assortment of tools, XML authoring components, and an plug-in based API. %prep -%setup -q -n %{_name}-%{mltrev} -a 1 +%setup -q -n %{_name}-%{mltversion} -a 1 %patch1 %patch10 @@ -102,7 +101,7 @@ pushd webvfx-%{_rev} %qmake5 \ QMAKE_STRIP="" \ - MLT_SOURCE="%{_builddir}/%{_name}-%{mltrev}/" \ + MLT_SOURCE="%{_builddir}/%{_name}-%{mltversion}/" \ WLIB=%{_lib} \ PREFIX="%{_prefix}" -Wall -recursive ++++++ mlt-6.6.0+git20180502.tar.gz -> mlt-6.8.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mlt-42621eed360e192c4fb8b631001a2f5e9e2f446f/ChangeLog new/mlt-6.8.0/ChangeLog --- old/mlt-42621eed360e192c4fb8b631001a2f5e9e2f446f/ChangeLog 2018-05-02 01:21:05.000000000 +0200 +++ new/mlt-6.8.0/ChangeLog 2018-05-11 03:16:56.000000000 +0200 @@ -1,3 +1,180 @@ +2018-05-10 Dan Dennedy <[email protected]> + + * Doxyfile, configure, docs/melt.1, src/framework/mlt_version.h: Set version + to 6.8.0 + +2018-05-09 Dan Dennedy <[email protected]> + + * src/modules/qt/producer_qimage.c, src/modules/qt/qimage_wrapper.cpp: Fix + qimage crash on source amd request format mismatch. + +2018-05-07 Dan Dennedy <[email protected]> + + * src/framework/mlt_consumer.c, src/modules/avformat/consumer_avformat.c: Fix + mlt_frame_get_audio() may be called before setting private data. This fixes + https://github.com/mltframework/shotcut/issues/549 + +2018-05-01 Dan Dennedy <[email protected]> + + * src/modules/core/filter_region.c, src/modules/plus/filter_affine.c: Fix + affine and region filters alter the frame's position. + +2018-04-08 Vincent Pinon <[email protected]> + + * src/framework/mlt_frame.h, src/modules/avformat/consumer_avformat.c, + src/modules/vmfx/filter_chroma.c, src/modules/vmfx/filter_chroma_hold.c: Fix + GCC warnings + +2018-04-25 Dan Dennedy <[email protected]> + + * src/modules/plus/filter_affine.yml, src/modules/plus/transition_affine.c, + src/modules/plus/transition_affine.yml: Convert affine to mlt_rect and + animation APIs. + +2018-04-16 Dan Dennedy <[email protected]> + + * src/framework/mlt.vers, src/framework/mlt_animation.c, + src/framework/mlt_animation.h, src/mlt++/MltAnimation.cpp, + src/mlt++/MltAnimation.h, src/mlt++/mlt++.vers: Add + mlt_animation_key_set_frame() and Animation::key_set_frame(). + +2018-04-09 Dan Dennedy <[email protected]> + + * src/framework/mlt.vers, src/framework/mlt_animation.c, + src/framework/mlt_animation.h, src/mlt++/MltAnimation.cpp, + src/mlt++/MltAnimation.h, src/mlt++/mlt++.vers: Add + mlt_animation_key_set_type() and Animation::key_set_type(). + +2018-03-28 Brian Matherly <[email protected]> + + * src/modules/rtaudio/Makefile, src/modules/rtaudio/RtAudio.cpp, + src/modules/rtaudio/consumer_rtaudio.cpp: Improve surround support in RtAudio + on Windows. The directsound implementation in RtAudio does not support > 2 + channels. But the WASAPI implementation does. This change will try all + available drivers to try to sucessfully open the audio device. If none of the + drivers work with surround, then it will revert to 2 channels. In the case + that the module reverts to 2 channels, the requested number of channels will + still be processed, but only the first two channels will be output. These + implementation changes were carried over from the SDL2 module to match the + behavior of consumer_sdl2_audio. + +2018-03-25 Brian Matherly <[email protected]> + + * src/modules/sdl2/Makefile, src/modules/sdl2/common.c, + src/modules/sdl2/common.h, src/modules/sdl2/consumer_sdl2.c, + src/modules/sdl2/consumer_sdl2_audio.c: Improve surround support in SDL2 on + Windows. The directsound implementation in SDL does not support > 2 + channels. But the xaudio2 implementation does. This change will try all + available drivers to try to sucessfully open the audio device. If none of the + drivers work with surround, then it will revert to 2 channels. The user can + still request a specific driver using the audio_driver parameter. + +2018-03-12 Dan Dennedy <[email protected]> + + * presets/consumer/avformat/GIF, src/modules/avformat/consumer_avformat.c: + Fix #284 GIF encoding not working. This also fixes DPX. + + * src/framework/mlt_frame.c, src/framework/mlt_types.h: Order the channel + layouts the same as FFmpeg. + + * src/modules/avformat/consumer_avformat.c, + src/modules/avformat/producer_avformat.c: Fix wrong search flags supplied to + av_opt_set(). Not only were the wrong AV_OPT flags supplied as search + options but also lack of AV_OPT_SEARCH_CHILDREN was the cause of warnings + such as: [libx264 @ 0x7ff55c001c60] [Eval @ 0x7ff561544c60] Undefined + constant or missing '(' in 'main' [libx264 @ 0x7ff55c001c60] Unable to parse + option value "main" + +2018-03-12 Brian Matherly <[email protected]> + + * src/framework/mlt.vers, src/framework/mlt_consumer.c, + src/framework/mlt_consumer.h, src/framework/mlt_frame.c, + src/framework/mlt_frame.h, src/framework/mlt_tractor.c, + src/framework/mlt_transition.c, src/framework/mlt_types.h, + src/modules/avformat/Makefile, src/modules/avformat/common.c, + src/modules/avformat/common.h, src/modules/avformat/configure, + src/modules/avformat/consumer_avformat.c, src/modules/avformat/factory.c, + src/modules/avformat/filter_avfilter.c, + src/modules/avformat/filter_swresample.c, + src/modules/avformat/producer_avformat.c, src/modules/core/loader.ini: Add + filter_swresample. (#305) * Add filter_swresample. Performs channel + configuration aware channel count conversion. Also performs sample format and + frequency conversion. Set this filter as the default channelconvert normalize + filter. * Resolve review comments for filter_swresample. * Fix applying + channel_layout property. MLT allows specifying channel_layout as a string + representing the channel layout. But avcodec expects channel_layout to be + specified as an integer which represents a channel position bitmap. This + change stops the channel_layout property from being passed to avcodec so that + the value calculated by MLT will be used instead. + +2018-03-02 Dan Dennedy <[email protected]> + + * src/modules/sdl/consumer_sdl.yml, src/modules/sdl2/consumer_sdl2.yml, + src/modules/sdl2/factory.c: Fix sdl2 metadata. + +2018-02-16 Dan Dennedy <[email protected]> + + * presets/consumer/avformat/MJPEG, + presets/consumer/avformat/atsc_1080i_50/DNxHD, + presets/consumer/avformat/atsc_1080i_5994/DNxHD, + presets/consumer/avformat/atsc_1080p_2398/DNxHD, + presets/consumer/avformat/atsc_1080p_24/DNxHD, + presets/consumer/avformat/atsc_1080p_25/DNxHD, + presets/consumer/avformat/atsc_1080p_2997/DNxHD, + presets/consumer/avformat/atsc_1080p_30/DNxHD, + presets/consumer/avformat/atsc_1080p_50/DNxHD, + presets/consumer/avformat/atsc_1080p_5994/DNxHD, + presets/consumer/avformat/atsc_1080p_60/DNxHD, + presets/consumer/avformat/atsc_720p_2398/DNxHD, + presets/consumer/avformat/atsc_720p_50/DNxHD, + presets/consumer/avformat/atsc_720p_5994/DNxHD, + presets/consumer/avformat/atsc_720p_60/DNxHD, + presets/consumer/avformat/dv_ntsc/DV, + presets/consumer/avformat/dv_ntsc/DVCPRO50, + presets/consumer/avformat/dv_ntsc_wide/DV, + presets/consumer/avformat/dv_ntsc_wide/DVCPRO50, + presets/consumer/avformat/dv_pal/DV, + presets/consumer/avformat/dv_pal/DVCPRO50, + presets/consumer/avformat/dv_pal_wide/DV, + presets/consumer/avformat/dv_pal_wide/DVCPRO50, + presets/consumer/avformat/intermediate/MJPEG, + presets/consumer/avformat/lossless/FFV1, + presets/consumer/avformat/lossless/HuffYUV: Add g(op) and bf(rames) to more + encode presets. + +2018-02-04 Vincent Pinon <[email protected]> + + * src/framework/mlt_property.c, src/modules/avformat/filter_avdeinterlace.c, + src/modules/gtk2/pixops.c, src/modules/linsys/sdi_generator.c, + src/modules/opengl/transition_movit_luma.cpp, src/modules/plusgpl/cJSON.c, + src/modules/plusgpl/filter_burn.c, src/modules/vmfx/filter_shape.c: Fix + trivial GCC warnings + +2018-02-05 Brian Matherly <[email protected]> + + * src/modules/sdl/consumer_sdl.c, src/modules/sdl/consumer_sdl.yml, + src/modules/sdl/consumer_sdl_audio.c, src/modules/sdl2/consumer_sdl2.c, + src/modules/sdl2/consumer_sdl2.yml: Fix mulit-channel audio. (#294) * Fix + mulit-channel audio. At some framerates, audio with > 6 channels would + result in an audio buffer larger than that allocated for SDL. This change + will copy from the buffer in pieces if it won't all fit at once. * Unify + consumer_play_audio() in sdl consumers. Use the same code for all 3 + implementations. Affected features (all have these now): * Handling audio + frames larger than the sdl audio buffer * Audio scrubbing * "audio_offset" + property * Handling more or fewer channels than requested * Default + scrub_audio to 1 for sdl and sdl2 consumers. + +2018-02-01 Dan Dennedy <[email protected]> + + * configure, src/framework/mlt_version.h: Set interim version to 0.6.7 + +2018-01-30 johannes <[email protected]> + + * src/framework/mlt_properties.c, src/framework/mlt_property.c, + src/framework/mlt_property.h: musl libc support musl has no macro, so it can + not be detected straigthforward. HAVE_STRTOD_L tells that strdod_l() is + available HAVE_LOCALE_H tells that the header locale.h is available + 2018-01-22 Dan Dennedy <[email protected]> * Doxyfile, configure, docs/melt.1, src/framework/mlt_version.h: Set version diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mlt-42621eed360e192c4fb8b631001a2f5e9e2f446f/Doxyfile new/mlt-6.8.0/Doxyfile --- old/mlt-42621eed360e192c4fb8b631001a2f5e9e2f446f/Doxyfile 2018-05-02 01:21:05.000000000 +0200 +++ new/mlt-6.8.0/Doxyfile 2018-05-11 03:16:56.000000000 +0200 @@ -31,7 +31,7 @@ # This could be handy for archiving the generated documentation or # if some version control system is used. -PROJECT_NUMBER = 6.6.0 +PROJECT_NUMBER = 6.8.0 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mlt-42621eed360e192c4fb8b631001a2f5e9e2f446f/NEWS new/mlt-6.8.0/NEWS --- old/mlt-42621eed360e192c4fb8b631001a2f5e9e2f446f/NEWS 2018-05-02 01:21:05.000000000 +0200 +++ new/mlt-6.8.0/NEWS 2018-05-11 03:16:56.000000000 +0200 @@ -1,6 +1,59 @@ MLT Release Notes ----------------- +Version 6.8.0 - May 10, 2018 + +This version improves support for multi-channel audio and adds some new +manipulation functions to the mlt_animation API. + +Framework + * Added support for musl C library. + * Added functions for audio channel layouts: + - mlt_channel_layout_name() + - mlt_channel_layout_id() + - mlt_channel_layout_channels() + - mlt_channel_layout_default() + * Added channel_layout property to mlt_consumer. + * Added mlt_channel_layout enum. + * Disabled memory pooling by default and require compile macro USE_MLT_POOL + to re-enable it. + * Fixed reliability of keyframed properties serializing properly. + * Fixed parsing non-animated string as an animation. + * Added more functions to mlt_animation: + - mlt_animation_key_set_type() + - mlt_animation_key_set_frame() + - Mlt::Animation::key_set_type() + - Mlt::Animation::key_set_frame() + +Modules + * Fixed some crashes in qimage producer especially with alpha channel. + * Fixed >2 channel audio output in the SDL consumers. + * Fixed >2 channel audio output in the rtaudio consumer on Windows. + * Fixed vorbis encoding with FFmpeg v3.4+. + * qimage and qtext are now higher priority than gtk2 pixbuf and pango by the + loader producer. + * Added support for more channel counts to decklink consumer. + * Added swresample filter based on libswresample from FFmpeg. This is now + the preferred channel count normalizing filter used by the loader producer. + * Fixed the strange "Undefined constant" and "Unable to parse option value" + log messages in the the avformat consumer. + * Fixed GIF and DPX writing in avformat consumer. + * Reduced the memory usage of the affine transition and filters. + * Fixed a crash in kdenlivetitle producer. + * Fixed a crash in the rotoscoping filter. + * Fixed frame rate reported in Matroska and WebM files produced by the + avformat consumer. + * Added sdl2_audio consumer. + * Fixed alpha channel support for more pixel formats in the avformat producer. + * Converted the affine transition to use mlt_rect and mlt_animation. + * Fixed LADSPA plugins with mono channel audio. + +Other + * Fixed a melt command line parsing bug when argument supplied to -transition. + * Fixed melt with SDL2 on Windows not using stdio and stderr. + * Improved speed of the vp9 avformat consumer preset. + + Version 6.6.0 - January 22, 2018 This version builds upon the previous release with performance improvements diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mlt-42621eed360e192c4fb8b631001a2f5e9e2f446f/configure new/mlt-6.8.0/configure --- old/mlt-42621eed360e192c4fb8b631001a2f5e9e2f446f/configure 2018-05-02 01:21:05.000000000 +0200 +++ new/mlt-6.8.0/configure 2018-05-11 03:16:56.000000000 +0200 @@ -1,6 +1,6 @@ #!/bin/sh -export version=6.7.0 +export version=6.8.0 export soversion=6 show_help() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mlt-42621eed360e192c4fb8b631001a2f5e9e2f446f/docs/melt.1 new/mlt-6.8.0/docs/melt.1 --- old/mlt-42621eed360e192c4fb8b631001a2f5e9e2f446f/docs/melt.1 2018-05-02 01:21:05.000000000 +0200 +++ new/mlt-6.8.0/docs/melt.1 2018-05-11 03:16:56.000000000 +0200 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.38.4. -.TH MELT "1" "January 2018" "melt 6.6.0" "User Commands" +.TH MELT "1" "May 2018" "melt 6.8.0" "User Commands" .SH NAME melt \- author, play, and encode multitrack audio/video compositions .SH SYNOPSIS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mlt-42621eed360e192c4fb8b631001a2f5e9e2f446f/src/framework/mlt_consumer.c new/mlt-6.8.0/src/framework/mlt_consumer.c --- old/mlt-42621eed360e192c4fb8b631001a2f5e9e2f446f/src/framework/mlt_consumer.c 2018-05-02 01:21:05.000000000 +0200 +++ new/mlt-6.8.0/src/framework/mlt_consumer.c 2018-05-11 03:16:56.000000000 +0200 @@ -584,7 +584,13 @@ if ( abs( priv->real_time ) > 1 && mlt_properties_get_int( properties, "buffer" ) <= abs( priv->real_time ) ) mlt_properties_set_int( properties, "_buffer", abs( priv->real_time ) + 1 ); + // Store the parameters for audio processing. + priv->aud_counter = 0; + priv->fps = mlt_properties_get_double( properties, "fps" ); + priv->channels = mlt_properties_get_int( properties, "channels" ); + priv->frequency = mlt_properties_get_int( properties, "frequency" ); priv->preroll = 1; + #ifdef _WIN32 if ( priv->real_time == 1 || priv->real_time == -1 ) consumer_read_ahead_start( self ); @@ -594,12 +600,6 @@ if ( self->start != NULL ) error = self->start( self ); - // Store the parameters for audio processing. - priv->aud_counter = 0; - priv->fps = mlt_properties_get_double( properties, "fps" ); - priv->channels = mlt_properties_get_int( properties, "channels" ); - priv->frequency = mlt_properties_get_int( properties, "frequency" ); - return error; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mlt-42621eed360e192c4fb8b631001a2f5e9e2f446f/src/framework/mlt_factory.c new/mlt-6.8.0/src/framework/mlt_factory.c --- old/mlt-42621eed360e192c4fb8b631001a2f5e9e2f446f/src/framework/mlt_factory.c 2018-05-02 01:21:05.000000000 +0200 +++ new/mlt-6.8.0/src/framework/mlt_factory.c 2018-05-11 03:16:56.000000000 +0200 @@ -431,10 +431,18 @@ obj = mlt_repository_create( repository, profile, consumer_type, service, input ); } - if ( obj == NULL && !strcmp( service, "sdl2" ) ) + if ( obj == NULL ) { - service = "sdl"; - obj = mlt_repository_create( repository, profile, consumer_type, service, input ); + if ( !strcmp( service, "sdl2" ) ) + { + service = "sdl"; + obj = mlt_repository_create( repository, profile, consumer_type, service, input ); + } + else if ( !strcmp( service, "sdl_audio" ) ) + { + service = "sdl2_audio"; + obj = mlt_repository_create( repository, profile, consumer_type, service, input ); + } } if ( obj != NULL ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mlt-42621eed360e192c4fb8b631001a2f5e9e2f446f/src/framework/mlt_version.h new/mlt-6.8.0/src/framework/mlt_version.h --- old/mlt-42621eed360e192c4fb8b631001a2f5e9e2f446f/src/framework/mlt_version.h 2018-05-02 01:21:05.000000000 +0200 +++ new/mlt-6.8.0/src/framework/mlt_version.h 2018-05-11 03:16:56.000000000 +0200 @@ -27,7 +27,7 @@ #define STRINGIZE(s) STRINGIZE2(s) #define LIBMLT_VERSION_MAJOR 6 -#define LIBMLT_VERSION_MINOR 7 +#define LIBMLT_VERSION_MINOR 8 #define LIBMLT_VERSION_REVISION 0 #define LIBMLT_VERSION_INT ((LIBMLT_VERSION_MAJOR<<16)+(LIBMLT_VERSION_MINOR<<8)+LIBMLT_VERSION_REVISION) #define LIBMLT_VERSION STRINGIZE(LIBMLT_VERSION_MAJOR.LIBMLT_VERSION_MINOR.LIBMLT_VERSION_REVISION) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mlt-42621eed360e192c4fb8b631001a2f5e9e2f446f/src/melt/Makefile new/mlt-6.8.0/src/melt/Makefile --- old/mlt-42621eed360e192c4fb8b631001a2f5e9e2f446f/src/melt/Makefile 2018-05-02 01:21:05.000000000 +0200 +++ new/mlt-6.8.0/src/melt/Makefile 2018-05-11 03:16:56.000000000 +0200 @@ -24,6 +24,7 @@ endif ifeq ($(targetos), MinGW) +LDFLAGS += -mconsole bindir = $(prefix) endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mlt-42621eed360e192c4fb8b631001a2f5e9e2f446f/src/modules/avformat/consumer_avformat.c new/mlt-6.8.0/src/modules/avformat/consumer_avformat.c --- old/mlt-42621eed360e192c4fb8b631001a2f5e9e2f446f/src/modules/avformat/consumer_avformat.c 2018-05-02 01:21:05.000000000 +0200 +++ new/mlt-6.8.0/src/modules/avformat/consumer_avformat.c 2018-05-11 03:16:56.000000000 +0200 @@ -289,6 +289,16 @@ mlt_properties_set_int( properties, "frame_rate_num", rational.num ); mlt_properties_set_int( properties, "frame_rate_den", rational.den ); } + // Apply AVOptions that are synonyms for standard mlt_consumer options + else if ( !strcmp( name, "ac" ) ) + { + mlt_properties_set_int( properties, "channels", mlt_properties_get_int( properties, "ac" ) ); + } + else if ( !strcmp( name, "ar" )) + { + mlt_properties_set_int( properties, "frequency", mlt_properties_get_int( properties, "ar" ) ); + } + } /** Start the consumer. @@ -375,13 +385,7 @@ mlt_event_block( mlt_properties_get_data( properties, "property-changed event", NULL ) ); - // Apply AVOptions that are synonyms for standard mlt_consumer options - if ( mlt_properties_get( properties, "ac" ) ) - mlt_properties_set_int( properties, "channels", mlt_properties_get_int( properties, "ac" ) ); - if ( mlt_properties_get( properties, "ar" ) ) - mlt_properties_set_int( properties, "frequency", mlt_properties_get_int( properties, "ar" ) ); - - // Because Movit only reads this on the first frame, + // Because Movit only reads this on the first frame, // we must do this after properties have been set but before first frame request. if ( !mlt_properties_get( properties, "color_trc") ) color_trc_from_colorspace( properties ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mlt-42621eed360e192c4fb8b631001a2f5e9e2f446f/src/modules/avformat/filter_swresample.c new/mlt-6.8.0/src/modules/avformat/filter_swresample.c --- old/mlt-42621eed360e192c4fb8b631001a2f5e9e2f446f/src/modules/avformat/filter_swresample.c 2018-05-02 01:21:05.000000000 +0200 +++ new/mlt-6.8.0/src/modules/avformat/filter_swresample.c 2018-05-11 03:16:56.000000000 +0200 @@ -200,7 +200,19 @@ // Get the producer's audio int error = mlt_frame_get_audio( frame, buffer, &in_format, &in_frequency, &in_channels, samples ); - if ( error || in_format == mlt_audio_none || out_format == mlt_audio_none ) return error; + if ( error || + in_format == mlt_audio_none || out_format == mlt_audio_none || + in_frequency == 0 || out_frequency == 0 || + in_channels == 0 || out_channels == 0 || + *samples == 0 ) + { + // Error situation. Do not attempt to convert. + *format = in_format; + *frequency = in_frequency; + *channels = in_channels; + mlt_log_error( MLT_FILTER_SERVICE(filter), "Invalid Parameters: %dS - %dHz %dC %s -> %dHz %dC %s\n", *samples, in_frequency, in_channels, mlt_audio_format_name( in_format ), out_frequency, out_channels, mlt_audio_format_name( out_format ) ); + return error; + } // Determine the input/output channel layout. in_layout = get_channel_layout_or_default( mlt_properties_get( frame_properties, "channel_layout" ), in_channels ); @@ -272,7 +284,7 @@ } else { - mlt_log_error( MLT_FILTER_SERVICE(filter), "swr_convert() failed\n" ); + mlt_log_error( MLT_FILTER_SERVICE(filter), "swr_convert() failed. Alloc: %d\tIn: %d\tOut: %d\n", alloc_samples, in_samples, out_samples ); error = 1; } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mlt-42621eed360e192c4fb8b631001a2f5e9e2f446f/src/modules/core/producer_colour.c new/mlt-6.8.0/src/modules/core/producer_colour.c --- old/mlt-42621eed360e192c4fb8b631001a2f5e9e2f446f/src/modules/core/producer_colour.c 2018-05-02 01:21:05.000000000 +0200 +++ new/mlt-6.8.0/src/modules/core/producer_colour.c 2018-05-11 03:16:56.000000000 +0200 @@ -198,8 +198,10 @@ memset( alpha, color.a, alpha_size ); // Clone our image - *buffer = mlt_pool_alloc( size ); - memcpy( *buffer, image, size ); + if (*buffer && image && size > 0) { + *buffer = mlt_pool_alloc( size ); + memcpy( *buffer, image, size ); + } // Now update properties so we free the copy after mlt_frame_set_image( frame, *buffer, size, mlt_pool_release ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mlt-42621eed360e192c4fb8b631001a2f5e9e2f446f/src/modules/core/producer_melt.c new/mlt-6.8.0/src/modules/core/producer_melt.c --- old/mlt-42621eed360e192c4fb8b631001a2f5e9e2f446f/src/modules/core/producer_melt.c 2018-05-02 01:21:05.000000000 +0200 +++ new/mlt-6.8.0/src/modules/core/producer_melt.c 2018-05-11 03:16:56.000000000 +0200 @@ -115,15 +115,17 @@ static mlt_transition create_transition( mlt_profile profile, mlt_field field, char *id, int track ) { - char *arg = strchr( id, ':' ); + char *temp = strdup( id ); + char *arg = strchr( temp, ':' ); if ( arg != NULL ) *arg ++ = '\0'; - mlt_transition transition = mlt_factory_transition( profile, id, arg ); + mlt_transition transition = mlt_factory_transition( profile, temp, arg ); if ( transition != NULL ) { mlt_field_plant_transition( field, transition, track, track + 1 ); track_service( field, transition, ( mlt_destructor )mlt_transition_close ); } + free( temp ); return transition; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mlt-42621eed360e192c4fb8b631001a2f5e9e2f446f/src/modules/qt/producer_qimage.c new/mlt-6.8.0/src/modules/qt/producer_qimage.c --- old/mlt-42621eed360e192c4fb8b631001a2f5e9e2f446f/src/modules/qt/producer_qimage.c 2018-05-02 01:21:05.000000000 +0200 +++ new/mlt-6.8.0/src/modules/qt/producer_qimage.c 2018-05-11 03:16:56.000000000 +0200 @@ -296,10 +296,7 @@ // Clone the image and the alpha int image_size = mlt_image_format_size( self->format, self->current_width, self->current_height, NULL ); uint8_t *image_copy = mlt_pool_alloc( image_size ); - // We use height-1 because mlt_image_format_size() uses height + 1. - // XXX Remove -1 when mlt_image_format_size() is changed. - memcpy( image_copy, self->current_image, - mlt_image_format_size( self->format, self->current_width, self->current_height - 1, NULL ) ); + memcpy( image_copy, self->current_image, image_size ); // Now update properties so we free the copy after mlt_frame_set_image( frame, image_copy, image_size, mlt_pool_release ); // We're going to pass the copy on diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/mlt-42621eed360e192c4fb8b631001a2f5e9e2f446f/src/modules/qt/qimage_wrapper.cpp new/mlt-6.8.0/src/modules/qt/qimage_wrapper.cpp --- old/mlt-42621eed360e192c4fb8b631001a2f5e9e2f446f/src/modules/qt/qimage_wrapper.cpp 2018-05-02 01:21:05.000000000 +0200 +++ new/mlt-6.8.0/src/modules/qt/qimage_wrapper.cpp 2018-05-11 03:16:56.000000000 +0200 @@ -250,11 +250,10 @@ self->current_height = height; // Allocate/define image - int dst_stride = width * ( has_alpha ? 4 : 3 ); - int image_size = dst_stride * ( height + 1 ); + self->format = has_alpha ? mlt_image_rgb24a : mlt_image_rgb24; + int image_size = mlt_image_format_size( self->format, self->current_width, self->current_height, NULL ); self->current_image = ( uint8_t * )mlt_pool_alloc( image_size ); self->current_alpha = NULL; - self->format = has_alpha ? mlt_image_rgb24a : mlt_image_rgb24; // Copy the image int y = self->current_height + 1; @@ -281,7 +280,6 @@ // First, set the image so it can be converted when we get it mlt_frame_replace_image( frame, self->current_image, self->format, width, height ); mlt_frame_set_image( frame, self->current_image, image_size, mlt_pool_release ); - self->format = format; // get_image will do the format conversion mlt_frame_get_image( frame, &buffer, &format, &width, &height, 0 ); @@ -289,6 +287,9 @@ // cache copies of the image and alpha buffers if ( buffer ) { + self->current_width = width; + self->current_height = height; + self->format = format; image_size = mlt_image_format_size( format, width, height, NULL ); self->current_image = (uint8_t*) mlt_pool_alloc( image_size ); memcpy( self->current_image, buffer, image_size );
