Hello community,

here is the log from the commit of package libmlt for openSUSE:Factory checked 
in at 2020-02-18 13:29:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libmlt (Old)
 and      /work/SRC/openSUSE:Factory/.libmlt.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libmlt"

Tue Feb 18 13:29:23 2020 rev:48 rq:775047 version:6.20.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/libmlt/libmlt.changes    2019-11-21 
12:59:47.014507241 +0100
+++ /work/SRC/openSUSE:Factory/.libmlt.new.26092/libmlt.changes 2020-02-18 
13:29:24.416702695 +0100
@@ -1,0 +2,60 @@
+Mon Feb 17 11:48:34 UTC 2020 - Luigi Baldoni <[email protected]>
+
+- Update to version 6.20.0
+  Framework
+  * Added consumer scaling:
+    + mlt_profile_scale_width()
+    + mlt_profile_scale_height()
+    + Mlt::Profile::scale_width()
+    + Mlt::Profile::scale_height()
+    + support for a double "scale" property to melt and the xml
+      producer
+  * Fixed mlt_properties_set() with an invalid expression.
+  * Added new functions that do not evaluate expressions:
+    + mlt_properties_set_string()
+    + Mlt::Properties::set_string()
+  * Improved the service-caching heuristic in mlt_multitrack.
+  * Fixed possible crashes in mlt_playlist get_frame() and
+    mlt_filter_process().
+  Modules
+  * Added the rubberband module with a rbpitch filter.
+  * Added pitch compensation to timewarp producer.
+  * Added the invert_scale property to the affine filter and
+    transition.
+  * Added the reverse property to shape filter.
+  * Added support for text keyframes to the text and qtext
+    filters.
+  * Added support for the CSRT and MOSSE algorithms in
+    opencv.tracker filter.
+  * Fixed a crash on empty algo property in the opencv.tracker
+    filter.
+  * Changed vorbis module to no longer be deprecated.
+  * Improved colorspace conversions in the avformat module.
+  * Fixed audio artifacts on initial seek to in point in
+    avformat producer.
+  * Fixed the colorspace of the cached image in avformat
+    producer.
+  * Fixed white video flashes on property changes in the qtext
+    filter.
+  * Fixed a crash in the rotoscoping filter with large spline
+    deviations.
+  * Fixed a crash in the sdi consumer if the driver is not
+    loaded.
+  * Improved support for a video clip as luma producer to the
+    luma transition.
+  * Fixed a crash in the matte transition.
+  * Fixed a crash when using invert property =1 in the composite
+    transition.
+  Other
+  * Added more avformat consumer presets:
+    + intermediate/DNxHR-HQ
+    + intermediate/ProRes HQ
+    + ALAC
+    + FLAC
+  * Fixed some parameters in the XDCAM and D10 avformat
+    presets.
+  * Fixed link failure on some CPU architectures.
+
+- Refreshed libmlt-fixluma.patch
+
+-------------------------------------------------------------------
--- /work/SRC/openSUSE:Factory/libmlt/webvfx.changes    2019-11-21 
12:59:47.958506950 +0100
+++ /work/SRC/openSUSE:Factory/.libmlt.new.26092/webvfx.changes 2020-02-18 
13:29:24.660703170 +0100
@@ -1,0 +2,23 @@
+Mon Feb 17 11:39:18 UTC 2020 - Luigi Baldoni <[email protected]>
+
+- Update to version 1.2.0
+  * This version adds support for MLT v6.20.0's preview
+    scaling.
+  * For the MLT integration, if the resource starts with
+    "plain:" webvfx does automatic scaling per the zoom level.
+    This works fine for content that is simply produced or
+    overlayed by the filter. However, content that uses the
+    webvfx JavaScript extension will not operate with zoom
+    unless the service property mlt_resolution_scale is set to
+    1.
+    New properties mlt_profile_scale_width and
+    mlt_profile_scale_height as real numbers that reflect the
+    new MLT consumer scale property used to do low-res preview
+    scaling. Content script can access this via
+    webvfx.getNumberParameter() to scale its parameters and
+    elements.
+
+- Refreshed webvfx-versioned-libdir.patch and
+  webvfx-nobrowser.patch
+
+-------------------------------------------------------------------

Old:
----
  mlt-6.18.0.tar.gz
  webvfx-1.1.0.tar.gz

New:
----
  mlt-6.20.0.tar.gz
  webvfx-1.2.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libmlt.spec ++++++
--- /var/tmp/diff_new_pack.xld5LX/_old  2020-02-18 13:29:25.412704632 +0100
+++ /var/tmp/diff_new_pack.xld5LX/_new  2020-02-18 13:29:25.416704639 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package libmlt
 #
-# Copyright (c) 2019 SUSE LLC.
+# Copyright (c) 2020 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -21,14 +21,14 @@
 
 %define _name mlt
 %define libname lib%{_name}
-%define lversion 6.18.0
+%define lversion 6.20.0
 %define soname 6
 %define _name_pp %{_name}++
 %define libname_pp lib%{_name_pp}
 %define soname_pp 3
 
 Name:           %{libname}
-Version:        6.18.0
+Version:        6.20.0
 Release:        0
 Summary:        Multimedia framework for television broadcasting
 License:        GPL-3.0-or-later

++++++ webvfx.spec ++++++
--- /var/tmp/diff_new_pack.xld5LX/_old  2020-02-18 13:29:25.436704679 +0100
+++ /var/tmp/diff_new_pack.xld5LX/_new  2020-02-18 13:29:25.436704679 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package webvfx
 #
-# Copyright (c) 2019 SUSE LLC.
+# Copyright (c) 2020 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,14 +17,14 @@
 
 
 %define _name mlt
-%define mltversion 6.18.0
-%define mltsoversion 6.18.0
+%define mltversion 6.20.0
+%define mltsoversion 6.20.0
 %define sover 1
 %define mltmaj %(echo %{mltversion} |cut -d "." -f 1)
 # Find qt version used to build
 %define qt5version %(pkg-config --modversion Qt5Core)
 Name:           webvfx
-Version:        1.1.0
+Version:        1.2.0
 Release:        0
 Summary:        Video effects engine based on web technologies
 License:        BSD-3-Clause
@@ -47,8 +47,8 @@
 BuildRequires:  pkgconfig(Qt5OpenGL)
 BuildRequires:  pkgconfig(Qt5WebKitWidgets)
 BuildRequires:  pkgconfig(Qt5WebSockets)
-BuildRequires:  pkgconfig(mlt++)
-BuildRequires:  pkgconfig(mlt-framework)
+BuildRequires:  pkgconfig(mlt++) = %{mltversion}
+BuildRequires:  pkgconfig(mlt-framework) = %{mltversion}
 
 %description
 WebVfx is a video effects library that allows effects to be

++++++ libmlt-fixluma.patch ++++++
--- /var/tmp/diff_new_pack.xld5LX/_old  2020-02-18 13:29:25.456704717 +0100
+++ /var/tmp/diff_new_pack.xld5LX/_new  2020-02-18 13:29:25.456704717 +0100
@@ -1,7 +1,7 @@
-Index: mlt-6.18.0/src/modules/lumas/create_lumas
+Index: mlt-6.20.0/src/modules/lumas/create_lumas
 ===================================================================
---- mlt-6.18.0.orig/src/modules/lumas/create_lumas
-+++ mlt-6.18.0/src/modules/lumas/create_lumas
+--- mlt-6.20.0.orig/src/modules/lumas/create_lumas
++++ mlt-6.20.0/src/modules/lumas/create_lumas
 @@ -1,5 +1,7 @@
  #!/bin/sh
  
@@ -9,4 +9,4 @@
 +
  [ \( -d PAL \) -a \( ! $0 -nt .executed \) ] && exit 0
  
- bpp=16
+ if [ "$(uname -s)" = "Darwin" ]; then

++++++ mlt-6.18.0.tar.gz -> mlt-6.20.0.tar.gz ++++++
++++ 4585 lines of diff (skipped)

++++++ webvfx-1.1.0.tar.gz -> webvfx-1.2.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/webvfx-1.1.0/mlt/service_manager.cpp 
new/webvfx-1.2.0/mlt/service_manager.cpp
--- old/webvfx-1.1.0/mlt/service_manager.cpp    2019-06-09 07:22:59.000000000 
+0200
+++ new/webvfx-1.2.0/mlt/service_manager.cpp    2020-02-17 00:34:10.000000000 
+0100
@@ -234,7 +234,8 @@
     self->onConsumerStopping();
 }
 
-int ServiceManager::render(WebVfx::Image* outputImage, mlt_position position, 
mlt_position length, bool hasAlpha)
+int ServiceManager::render(WebVfx::Image* outputImage, mlt_position position,
+    mlt_position length, double zoom, bool hasAlpha)
 {
     double time = length > 0 ? position / (double)length : 0;
 
@@ -264,6 +265,7 @@
             }
         }
     }
+    effects->setZoom(zoom);
 
     return !effects->render(time, outputImage);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/webvfx-1.1.0/mlt/service_manager.h 
new/webvfx-1.2.0/mlt/service_manager.h
--- old/webvfx-1.1.0/mlt/service_manager.h      2019-06-09 07:22:59.000000000 
+0200
+++ new/webvfx-1.2.0/mlt/service_manager.h      2020-02-17 00:34:10.000000000 
+0100
@@ -30,7 +30,8 @@
     const QString& getSourceImageName() { return sourceImageName; }
     const QString& getTargetImageName() { return targetImageName; }
     void setImageForName(const QString& name, WebVfx::Image* image);
-    int render(WebVfx::Image* outputImage, mlt_position position, mlt_position 
length, bool hasAlpha = false);
+    int render(WebVfx::Image* outputImage, mlt_position position,
+               mlt_position length, double zoom, bool hasAlpha = false);
     void setupConsumerListener(mlt_frame frame);
     void onConsumerStopping();
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/webvfx-1.1.0/mlt/webvfx_filter.cpp 
new/webvfx-1.2.0/mlt/webvfx_filter.cpp
--- old/webvfx-1.1.0/mlt/webvfx_filter.cpp      2019-06-09 07:22:59.000000000 
+0200
+++ new/webvfx-1.2.0/mlt/webvfx_filter.cpp      2020-02-17 00:34:10.000000000 
+0100
@@ -20,15 +20,35 @@
 
     // Get the filter
     mlt_filter filter = (mlt_filter)mlt_frame_pop_service(frame);
-
+    mlt_properties properties = MLT_FILTER_PROPERTIES(filter);
     mlt_position position = mlt_filter_get_position(filter, frame);
     mlt_position length = mlt_filter_get_length2(filter, frame);
 
+    // If not a plain resource, then disable preview scaling.
+    const char* resource = mlt_properties_get(properties, "resource");
+    int use_preview_scale = mlt_properties_get_int(properties, 
"mlt_resolution_scale");
+    if (!use_preview_scale && resource) {
+        mlt_profile profile = mlt_service_profile(MLT_FILTER_SERVICE(filter));
+        std::string resource2(resource);
+        std::string plain = "plain:";
+        if (profile && resource2.substr(0, plain.size()) != plain) {
+            *width = profile->width;
+            *height = profile->height;
+        }
+    }
+
     // Get the source image, we will also write our output to it
     *format = mlt_image_rgb24a;
     if ((error = mlt_frame_get_image(frame, image, format, width, height, 1)) 
!= 0)
         return error;
 
+    // Add mlt_profile_scale_width and mlt_profile_scale_height properties for 
scripts.
+    mlt_profile profile = mlt_service_profile(MLT_FILTER_SERVICE(filter));
+    double scale = mlt_profile_scale_width(profile, *width);
+    mlt_properties_set_double(properties, "mlt_profile_scale_width", scale);
+    mlt_properties_set_double(properties, "mlt_profile_scale_height",
+                              mlt_profile_scale_height(profile, *height));
+
     { // Scope the lock
         MLTWebVfx::ServiceLocker locker(MLT_FILTER_SERVICE(filter));
         if (!locker.initialize(*width, *height))
@@ -39,7 +59,7 @@
         std::unique_ptr<WebVfx::Image> renderedImage;
         uint8_t* buffer = nullptr;
         
-        if (mlt_properties_get_int(MLT_FILTER_PROPERTIES(filter), 
"transparent")) {
+        if (mlt_properties_get_int(properties, "transparent")) {
             int size = mlt_image_format_size(*format, *width, *height, NULL);
             // Create a new buffer for the source image.
             buffer = (uint8_t*) mlt_pool_alloc(size);
@@ -69,7 +89,7 @@
         mlt_consumer consumer = static_cast<mlt_consumer>(
             mlt_properties_get_data(MLT_FRAME_PROPERTIES(frame), "consumer", 
NULL));
         if (!consumer || !mlt_consumer_is_stopped(consumer))
-            manager->render(renderedImage.get(), position, length, hasAlpha);
+            manager->render(renderedImage.get(), position, length, scale, 
hasAlpha);
         mlt_pool_release(buffer);
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/webvfx-1.1.0/mlt/webvfx_producer.cpp 
new/webvfx-1.2.0/mlt/webvfx_producer.cpp
--- old/webvfx-1.1.0/mlt/webvfx_producer.cpp    2019-06-09 07:22:59.000000000 
+0200
+++ new/webvfx-1.2.0/mlt/webvfx_producer.cpp    2020-02-17 00:34:10.000000000 
+0100
@@ -23,6 +23,27 @@
     int size;
     int bpp;
     bool hasAlpha = false;
+
+    // If not a plain resource, then disable preview scaling.
+    const char* resource = mlt_properties_get(producer_props, "resource");
+    int use_preview_scale = mlt_properties_get_int(producer_props, 
"mlt_resolution_scale");
+    if (!use_preview_scale && resource) {
+        mlt_profile profile = 
mlt_service_profile(MLT_PRODUCER_SERVICE(producer));
+        std::string resource2(resource);
+        std::string plain = "plain:";
+        if (profile && resource2.substr(0, plain.size()) != plain) {
+            *width = profile->width;
+            *height = profile->height;
+        }
+    }
+
+    // Add mlt_profile_scale_width and mlt_profile_scale_height properties for 
scripts.
+    mlt_profile profile = mlt_service_profile(MLT_PRODUCER_SERVICE(producer));
+    double scale = mlt_profile_scale_width(profile, *width);
+    mlt_properties_set_double(properties, "mlt_profile_scale_width", scale);
+    mlt_properties_set_double(properties, "mlt_profile_scale_height",
+                              mlt_profile_scale_height(profile, *height));
+
     {
         MLTWebVfx::ServiceLocker locker(MLT_PRODUCER_SERVICE(producer));
         if (!locker.initialize(*width, *height))
@@ -57,10 +78,13 @@
         // ServiceManager::onConsumerStopping() and Effects::renderComplete().
         mlt_consumer consumer = static_cast<mlt_consumer>(
             mlt_properties_get_data(MLT_FRAME_PROPERTIES(frame), "consumer", 
NULL));
-        if (!consumer || !mlt_consumer_is_stopped(consumer))
+        if (!consumer || !mlt_consumer_is_stopped(consumer)) {
             locker.getManager()->render(&outputImage,
                                         
mlt_properties_get_position(properties, kWebVfxPositionPropertyName),
-                                        mlt_producer_get_length(producer), 
hasAlpha);
+                                        mlt_producer_get_length(producer),
+                                        scale,
+                                        hasAlpha);
+        }
     }
     mlt_properties_set_int(properties, "meta.media.width", *width);
     mlt_properties_set_int(properties, "meta.media.height", *height);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/webvfx-1.1.0/mlt/webvfx_transition.cpp 
new/webvfx-1.2.0/mlt/webvfx_transition.cpp
--- old/webvfx-1.1.0/mlt/webvfx_transition.cpp  2019-06-09 07:22:59.000000000 
+0200
+++ new/webvfx-1.2.0/mlt/webvfx_transition.cpp  2020-02-17 00:34:10.000000000 
+0100
@@ -20,10 +20,24 @@
 
     mlt_frame bFrame = mlt_frame_pop_frame(aFrame);
     mlt_transition transition = (mlt_transition)mlt_frame_pop_service(aFrame);
+    mlt_properties properties = MLT_TRANSITION_PROPERTIES(transition);
 
     mlt_position position = mlt_transition_get_position(transition, aFrame);
     mlt_position length = mlt_transition_get_length(transition);
 
+    // If not a plain resource, then disable preview scaling.
+    const char* resource = mlt_properties_get(properties, "resource");
+    int use_preview_scale = mlt_properties_get_int(properties, 
"mlt_resolution_scale");
+    if (!use_preview_scale && resource) {
+        mlt_profile profile = 
mlt_service_profile(MLT_TRANSITION_SERVICE(transition));
+        std::string resource2(resource);
+        std::string plain = "plain:";
+        if (profile && resource2.substr(0, plain.size()) != plain) {
+            *width = profile->width;
+            *height = profile->height;
+        }
+    }
+
     // Get the aFrame image, we will write our output to it
     *format = mlt_image_rgb24;
     if ((error = mlt_frame_get_image(aFrame, image, format, width, height, 1)) 
!= 0)
@@ -34,6 +48,13 @@
     if ((error = mlt_frame_get_image(bFrame, &bImage, format, &bWidth, 
&bHeight, 0)) != 0)
         return error;
 
+    // Add mlt_profile_scale_width and mlt_profile_scale_height properties for 
scripts.
+    mlt_profile profile = 
mlt_service_profile(MLT_TRANSITION_SERVICE(transition));
+    double scale = mlt_profile_scale_width(profile, *width);
+    mlt_properties_set_double(properties, "mlt_profile_scale_width", scale);
+    mlt_properties_set_double(properties, "mlt_profile_scale_height",
+                              mlt_profile_scale_height(profile, *height));
+
     { // Scope the lock
         MLTWebVfx::ServiceLocker locker(MLT_TRANSITION_SERVICE(transition));
         if (!locker.initialize(*width, *height))
@@ -55,8 +76,11 @@
         // ServiceManager::onConsumerStopping() and Effects::renderComplete().
         mlt_consumer consumer = static_cast<mlt_consumer>(
             mlt_properties_get_data(MLT_FRAME_PROPERTIES(aFrame), "consumer", 
NULL));
-        if (!consumer || !mlt_consumer_is_stopped(consumer))
-            manager->render(&renderedImage, position, length);
+        if (!consumer || !mlt_consumer_is_stopped(consumer)) {
+            manager->render(&renderedImage,
+                            position, length,
+                            scale);
+        }
     }
 
     return error;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/webvfx-1.1.0/webvfx/content.h 
new/webvfx-1.2.0/webvfx/content.h
--- old/webvfx-1.1.0/webvfx/content.h   2019-06-09 07:22:59.000000000 +0200
+++ new/webvfx-1.2.0/webvfx/content.h   2020-02-17 00:34:10.000000000 +0100
@@ -29,6 +29,7 @@
     virtual void setContentSize(const QSize& size) = 0;
     virtual const Effects::ImageTypeMap& getImageTypeMap() = 0;
     virtual void setImage(const QString& name, Image* image) = 0;
+    virtual void setZoom(const qreal zoom) = 0;
     virtual bool renderContent(double time, Image* renderImage) = 0;
     virtual void paintContent(QPainter* painter) = 0;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/webvfx-1.1.0/webvfx/effects.h 
new/webvfx-1.2.0/webvfx/effects.h
--- old/webvfx-1.1.0/webvfx/effects.h   2019-06-09 07:22:59.000000000 +0200
+++ new/webvfx-1.2.0/webvfx/effects.h   2020-02-17 00:34:10.000000000 +0100
@@ -66,6 +66,13 @@
     virtual void setImage(const QString& name, Image* image) = 0;
 
     /*!
+     * @brief Set the zoom level.
+     *
+     * @param zoom the zoom factor
+     */
+    virtual void setZoom(const qreal zoom) = 0;
+
+    /*!
      * @brief Renders the effect for the given @c time.
      *
      * Prior to calling render() each time, all named images must
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/webvfx-1.1.0/webvfx/effects_impl.cpp 
new/webvfx-1.2.0/webvfx/effects_impl.cpp
--- old/webvfx-1.1.0/webvfx/effects_impl.cpp    2019-06-09 07:22:59.000000000 
+0200
+++ new/webvfx-1.2.0/webvfx/effects_impl.cpp    2020-02-17 00:34:10.000000000 
+0100
@@ -113,6 +113,11 @@
     content->setImage(name, image);
 }
 
+void EffectsImpl::setZoom(const qreal zoom)
+{
+    content->setZoom(zoom);
+}
+
 bool EffectsImpl::render(double time, Image* renderImage)
 {
     if (onUIThread()) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/webvfx-1.1.0/webvfx/effects_impl.h 
new/webvfx-1.2.0/webvfx/effects_impl.h
--- old/webvfx-1.1.0/webvfx/effects_impl.h      2019-06-09 07:22:59.000000000 
+0200
+++ new/webvfx-1.2.0/webvfx/effects_impl.h      2020-02-17 00:34:10.000000000 
+0100
@@ -31,6 +31,7 @@
     bool initialize(const QString& fileName, int width, int height, 
Parameters* parameters = 0, bool isTransparent = false);
     const ImageTypeMap& getImageTypeMap();
     void setImage(const QString& name, Image* image);
+    void setZoom(const qreal zoom);
     bool render(double time, Image* renderImage);
     void destroy();
     void renderComplete(bool result);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/webvfx-1.1.0/webvfx/qml_content.cpp 
new/webvfx-1.2.0/webvfx/qml_content.cpp
--- old/webvfx-1.1.0/webvfx/qml_content.cpp     2019-06-09 07:22:59.000000000 
+0200
+++ new/webvfx-1.2.0/webvfx/qml_content.cpp     2020-02-17 00:34:10.000000000 
+0100
@@ -56,6 +56,7 @@
     , pageLoadFinished(LoadNotFinished)
     , contextLoadFinished(LoadNotFinished)
     , contentContext(new ContentContext(this, parameters))
+    , m_zoom(1.0)
 {
     // Add root of our qrc:/ resource path so embedded QML components are 
available.
     engine()->addImportPath(":/");
@@ -125,8 +126,6 @@
     pageLoadFinished = LoadNotFinished;
     contextLoadFinished = LoadNotFinished;
 
-    QSize originalSize(size());
-
     setSource(url);
 
     /* grabWindow will not work until a gl context has been initialized, which 
does not happen until
@@ -136,7 +135,10 @@
 
 void QmlContent::setContentSize(const QSize& size)
 {
-    resize(size);
+    if (m_zoom > 0.0)
+        resize(size.width() / m_zoom, size.height() / m_zoom);
+    else
+        resize(size);
 }
 
 bool QmlContent::renderContent(double time, Image* renderImage)
@@ -148,7 +150,7 @@
         QImage sourceImage = grabWindow();
         QImage targetImage((uchar*)renderImage->pixels(), renderImage->width(),
                 renderImage->height(), renderImage->bytesPerLine(),
-                QImage::Format_RGB888);
+                renderImage->hasAlpha()? QImage::Format_RGBA8888 : 
QImage::Format_RGB888);
         QPainter p(&targetImage);
         p.drawImage(QPoint(), sourceImage);
         m_mostRecentImage = sourceImage;
@@ -162,11 +164,19 @@
     painter->drawImage(QPoint(), m_mostRecentImage);
 }
 
+void QmlContent::setZoom(const qreal zoom)
+{
+    if (rootObject()) {
+        rootObject()->setTransformOrigin(QQuickItem::TopLeft);
+        rootObject()->setScale(zoom);
+        m_zoom = zoom;
+    }
+}
+
 void QmlContent::reload()
 {
     engine()->clearComponentCache();
     setSource(source());
-
 }
 
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/webvfx-1.1.0/webvfx/qml_content.h 
new/webvfx-1.2.0/webvfx/qml_content.h
--- old/webvfx-1.1.0/webvfx/qml_content.h       2019-06-09 07:22:59.000000000 
+0200
+++ new/webvfx-1.2.0/webvfx/qml_content.h       2020-02-17 00:34:10.000000000 
+0100
@@ -34,6 +34,7 @@
     bool renderContent(double time, Image* renderImage);
     void paintContent(QPainter* painter);
     void setImage(const QString& name, Image* image) { 
contentContext->setImage(name, image); }
+    void setZoom(const qreal zoom);
     void reload();
 
     QWidget* createView(QWidget* parent);
@@ -53,6 +54,7 @@
     LoadStatus contextLoadFinished;
     ContentContext* contentContext;
     QImage m_mostRecentImage;
+    qreal m_zoom;
 };
 
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/webvfx-1.1.0/webvfx/web_content.cpp 
new/webvfx-1.2.0/webvfx/web_content.cpp
--- old/webvfx-1.1.0/webvfx/web_content.cpp     2019-06-09 07:22:59.000000000 
+0200
+++ new/webvfx-1.2.0/webvfx/web_content.cpp     2020-02-17 00:34:10.000000000 
+0100
@@ -170,6 +170,11 @@
     webPage->mainFrame()->render(painter);
 }
 
+void WebContent::setZoom(const qreal zoom)
+{
+    webPage->mainFrame()->setZoomFactor(zoom);
+}
+
 QWidget* WebContent::createView(QWidget* parent)
 {
 #ifdef WEBVFX_GRAPHICSVIEW
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/webvfx-1.1.0/webvfx/web_content.h 
new/webvfx-1.2.0/webvfx/web_content.h
--- old/webvfx-1.1.0/webvfx/web_content.h       2019-06-09 07:22:59.000000000 
+0200
+++ new/webvfx-1.2.0/webvfx/web_content.h       2020-02-17 00:34:10.000000000 
+0100
@@ -48,6 +48,7 @@
     bool renderContent(double time, Image* renderImage);
     void paintContent(QPainter* painter);
     void setImage(const QString& name, Image* image) { 
contentContext->setImage(name, image); }
+    void setZoom(const qreal zoom);
 
     QWidget* createView(QWidget* parent);
     void reload();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/webvfx-1.1.0/webvfx/webvfx.pro 
new/webvfx-1.2.0/webvfx/webvfx.pro
--- old/webvfx-1.1.0/webvfx/webvfx.pro  2019-06-09 07:22:59.000000000 +0200
+++ new/webvfx-1.2.0/webvfx/webvfx.pro  2020-02-17 00:34:10.000000000 +0100
@@ -4,7 +4,7 @@
 
 include(../common.pri)
 TEMPLATE = lib
-VERSION = 1.1.0
+VERSION = 1.2.0
 
 HEADERS += content.h
 HEADERS += content_context.h

++++++ webvfx-nobrowser.patch ++++++
--- /var/tmp/diff_new_pack.xld5LX/_old  2020-02-18 13:29:25.796705379 +0100
+++ /var/tmp/diff_new_pack.xld5LX/_new  2020-02-18 13:29:25.796705379 +0100
@@ -1,7 +1,7 @@
 Index: webvfx-1.1.0/all.pro
 ===================================================================
---- webvfx-1.1.0/all.pro.orig
-+++ webvfx-1.1.0/all.pro
+--- webvfx-1.2.0/all.pro.orig
++++ webvfx-1.2.0/all.pro
 @@ -19,7 +19,7 @@ CONFIG += ordered
  SUBDIRS += webvfx
  SUBDIRS += viewer

++++++ webvfx-versioned-libdir.patch ++++++
--- /var/tmp/diff_new_pack.xld5LX/_old  2020-02-18 13:29:25.800705386 +0100
+++ /var/tmp/diff_new_pack.xld5LX/_new  2020-02-18 13:29:25.800705386 +0100
@@ -1,7 +1,7 @@
 Index: webvfx-1.1.0/webvfx/webvfx.pro
 ===================================================================
---- webvfx-1.1.0/webvfx/webvfx.pro.orig        2018-02-24 21:17:19.000000000 
+0200
-+++ webvfx-1.1.0/webvfx/webvfx.pro     2018-05-06 12:24:57.399644007 +0200
+--- webvfx-1.2.0/webvfx/webvfx.pro.orig        2018-02-24 21:17:19.000000000 
+0200
++++ webvfx-1.2.0/webvfx/webvfx.pro     2018-05-06 12:24:57.399644007 +0200
 @@ -47,5 +47,5 @@ QT += opengl quick
  
  TARGET = webvfx


Reply via email to