Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libqt5-qtmultimedia for 
openSUSE:Factory checked in at 2025-05-30 14:21:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libqt5-qtmultimedia (Old)
 and      /work/SRC/openSUSE:Factory/.libqt5-qtmultimedia.new.25440 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libqt5-qtmultimedia"

Fri May 30 14:21:01 2025 rev:66 rq:1280912 version:5.15.17+kde2

Changes:
--------
--- /work/SRC/openSUSE:Factory/libqt5-qtmultimedia/libqt5-qtmultimedia.changes  
2024-11-27 22:05:48.886599002 +0100
+++ 
/work/SRC/openSUSE:Factory/.libqt5-qtmultimedia.new.25440/libqt5-qtmultimedia.changes
       2025-05-30 17:23:00.821500794 +0200
@@ -1,0 +2,8 @@
+Wed May 28 08:35:21 UTC 2025 - Fabian Vogt <fab...@ritter-vogt.de>
+
+- Update to version 5.15.17+kde2, rebased upstream:
+  * qmake: Don't add audiocapture directory twice when targeting QNX
+  * Fix device file contention when setting parameters on v4l cameras
+  * Bump version to 5.15.17
+
+-------------------------------------------------------------------

Old:
----
  qtmultimedia-everywhere-src-5.15.16+kde2.obscpio

New:
----
  qtmultimedia-everywhere-src-5.15.17+kde2.obscpio

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

Other differences:
------------------
++++++ libqt5-qtmultimedia.spec ++++++
--- /var/tmp/diff_new_pack.zJtEaY/_old  2025-05-30 17:23:02.013550848 +0200
+++ /var/tmp/diff_new_pack.zJtEaY/_new  2025-05-30 17:23:02.013550848 +0200
@@ -28,11 +28,11 @@
 %define gles 0
 %endif
 %define base_name libqt5
-%define real_version 5.15.16
-%define so_version 5.15.16
+%define real_version 5.15.17
+%define so_version 5.15.17
 %define tar_version qtmultimedia-everywhere-src-%{version}
 Name:           libqt5-qtmultimedia
-Version:        5.15.16+kde2
+Version:        5.15.17+kde2
 Release:        0
 Summary:        Qt 5 Multimedia Library
 License:        LGPL-3.0-only OR (GPL-2.0-only OR GPL-3.0-or-later)

++++++ _service ++++++
--- /var/tmp/diff_new_pack.zJtEaY/_old  2025-05-30 17:23:02.053552527 +0200
+++ /var/tmp/diff_new_pack.zJtEaY/_new  2025-05-30 17:23:02.053552527 +0200
@@ -1,12 +1,12 @@
 <services>
   <service name="obs_scm" mode="disabled">
    <param name="changesgenerate">enable</param>
-   <param name="versionformat">5.15.16+kde@TAG_OFFSET@</param>
+   <param name="versionformat">5.15.17+kde@TAG_OFFSET@</param>
    <param name="url">https://invent.kde.org/qt/qt/qtmultimedia.git</param>
    <param name="scm">git</param>
    <param name="filename">qtmultimedia-everywhere-src</param>
    <param name="revision">kde/5.15</param>
-   <param name="parent-tag">v5.15.16-lts-lgpl</param>
+   <param name="parent-tag">v5.15.17-lts-lgpl</param>
    <param name="changesgenerate">enable</param>
   </service>
   <service name="set_version" mode="disabled"/>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.zJtEaY/_old  2025-05-30 17:23:02.077553535 +0200
+++ /var/tmp/diff_new_pack.zJtEaY/_new  2025-05-30 17:23:02.081553703 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://invent.kde.org/qt/qt/qtmultimedia.git</param>
-              <param 
name="changesrevision">b7c7ff4ab8c0f43a03de51a76867aae691411410</param></service></servicedata>
+              <param 
name="changesrevision">d342547886448dacf38d2933cd40322c7435ee86</param></service></servicedata>
 (No newline at EOF)
 

++++++ qtmultimedia-everywhere-src-5.15.16+kde2.obscpio -> 
qtmultimedia-everywhere-src-5.15.17+kde2.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtmultimedia-everywhere-src-5.15.16+kde2/.qmake.conf 
new/qtmultimedia-everywhere-src-5.15.17+kde2/.qmake.conf
--- old/qtmultimedia-everywhere-src-5.15.16+kde2/.qmake.conf    2024-11-18 
12:37:41.000000000 +0100
+++ new/qtmultimedia-everywhere-src-5.15.17+kde2/.qmake.conf    2025-05-22 
10:01:13.000000000 +0200
@@ -2,4 +2,4 @@
 
 DEFINES += QT_NO_FOREACH QT_NO_JAVA_STYLE_ITERATORS QT_NO_LINKED_LIST
 
-MODULE_VERSION = 5.15.16
+MODULE_VERSION = 5.15.17
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtmultimedia-everywhere-src-5.15.16+kde2/src/plugins/gstreamer/camerabin/camerabinsession.h
 
new/qtmultimedia-everywhere-src-5.15.17+kde2/src/plugins/gstreamer/camerabin/camerabinsession.h
--- 
old/qtmultimedia-everywhere-src-5.15.16+kde2/src/plugins/gstreamer/camerabin/camerabinsession.h
     2024-11-18 12:37:41.000000000 +0100
+++ 
new/qtmultimedia-everywhere-src-5.15.17+kde2/src/plugins/gstreamer/camerabin/camerabinsession.h
     2025-05-22 10:01:13.000000000 +0200
@@ -99,6 +99,7 @@
 #endif
     GstElement *cameraBin() { return m_camerabin; }
     GstElement *cameraSource() { return m_cameraSrc; }
+    GstElement *videoSource() { return m_videoSrc; }
     QGstreamerBusHelper *bus() { return m_busHelper; }
 
     QList< QPair<int,int> > supportedFrameRates(const QSize &frameSize, bool 
*continuous) const;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtmultimedia-everywhere-src-5.15.16+kde2/src/plugins/gstreamer/camerabin/camerabinv4limageprocessing.cpp
 
new/qtmultimedia-everywhere-src-5.15.17+kde2/src/plugins/gstreamer/camerabin/camerabinv4limageprocessing.cpp
--- 
old/qtmultimedia-everywhere-src-5.15.16+kde2/src/plugins/gstreamer/camerabin/camerabinv4limageprocessing.cpp
        2024-11-18 12:37:41.000000000 +0100
+++ 
new/qtmultimedia-everywhere-src-5.15.17+kde2/src/plugins/gstreamer/camerabin/camerabinv4limageprocessing.cpp
        2025-05-22 10:01:13.000000000 +0200
@@ -42,11 +42,53 @@
 
 #include <QDebug>
 
+#include <gst/gst.h>
+
 #include <private/qcore_unix_p.h>
 #include <linux/videodev2.h>
 
 QT_BEGIN_NAMESPACE
 
+class V4LDeviceResource {
+public:
+    V4LDeviceResource(CameraBinSession *session, int flags) : m_fd(-1), 
m_needsClose(false)
+    {
+        if (!session)
+            return;
+
+        // request fd from GstElement
+        if (session->videoSource())
+            g_object_get(G_OBJECT(session->videoSource()), "device-fd", &m_fd, 
NULL);
+
+        if (m_fd != -1)
+            return;
+
+        // manually open resource if GstElement does not have it open
+        const QString deviceName = session->device();
+        m_fd = qt_safe_open(deviceName.toLocal8Bit().constData(), flags);
+
+        if (m_fd == -1) {
+            qWarning() << "Unable to open the camera" << deviceName
+                       << ":" << qt_error_string(errno);
+            return;
+        }
+
+        m_needsClose = true;
+    }
+
+    ~V4LDeviceResource()
+    {
+        if (m_needsClose)
+            qt_safe_close(m_fd);
+    }
+
+    int fd() const { return m_fd; }
+
+private:
+    int m_fd;
+    bool m_needsClose;
+};
+
 CameraBinV4LImageProcessing::CameraBinV4LImageProcessing(CameraBinSession 
*session)
     : QCameraImageProcessingControl(session)
     , m_session(session)
@@ -129,25 +171,24 @@
         return QVariant();
     }
 
-    const QString deviceName = m_session->device();
-    const int fd = qt_safe_open(deviceName.toLocal8Bit().constData(), 
O_RDONLY);
-    if (fd == -1) {
-        qWarning() << "Unable to open the camera" << deviceName
-                   << "for read to get the parameter value:" << 
qt_error_string(errno);
-        return QVariant();
-    }
-
     struct v4l2_control control;
-    ::memset(&control, 0, sizeof(control));
-    control.id = (*sourceValueInfo).cid;
+    {
+        V4LDeviceResource resource(m_session, O_RDONLY);
+        if (resource.fd() == -1) {
+            qWarning("Unable to open device for get parameter value");
+            return QVariant();
+        }
 
-    const bool ret = (::ioctl(fd, VIDIOC_G_CTRL, &control) == 0);
+        ::memset(&control, 0, sizeof(control));
+        control.id = (*sourceValueInfo).cid;
 
-    qt_safe_close(fd);
+        const bool ret = (::ioctl(resource.fd(), VIDIOC_G_CTRL, &control) == 
0);
 
-    if (!ret) {
-        qWarning() << "Unable to get the parameter value:" << parameter << ":" 
<< qt_error_string(errno);
-        return QVariant();
+        if (!ret) {
+            qWarning() << "Unable to get the parameter value:" << parameter << 
":"
+                       << qt_error_string(errno);
+            return QVariant();
+        }
     }
 
     switch (parameter) {
@@ -184,11 +225,9 @@
         return;
     }
 
-    const QString deviceName = m_session->device();
-    const int fd = qt_safe_open(deviceName.toLocal8Bit().constData(), 
O_WRONLY);
-    if (fd == -1) {
-        qWarning() << "Unable to open the camera" << deviceName
-                   << "for write to set the parameter value:" << 
qt_error_string(errno);
+    V4LDeviceResource resource(m_session, O_WRONLY);
+    if (resource.fd() == -1) {
+        qWarning() << "Unable to open device for set parameter value";
         return;
     }
 
@@ -203,7 +242,6 @@
                 value.value<QCameraImageProcessing::WhiteBalanceMode>();
         if (m != QCameraImageProcessing::WhiteBalanceAuto
                 && m != QCameraImageProcessing::WhiteBalanceManual) {
-            qt_safe_close(fd);
             return;
         }
 
@@ -224,14 +262,11 @@
         break;
 
     default:
-        qt_safe_close(fd);
         return;
     }
 
-    if (::ioctl(fd, VIDIOC_S_CTRL, &control) != 0)
+    if (::ioctl(resource.fd(), VIDIOC_S_CTRL, &control) != 0)
         qWarning() << "Unable to set the parameter value:" << parameter << ":" 
<< qt_error_string(errno);
-
-    qt_safe_close(fd);
 }
 
 void CameraBinV4LImageProcessing::updateParametersInfo(
@@ -240,11 +275,9 @@
     if (cameraStatus == QCamera::UnloadedStatus)
         m_parametersInfo.clear();
     else if (cameraStatus == QCamera::LoadedStatus) {
-        const QString deviceName = m_session->device();
-        const int fd = qt_safe_open(deviceName.toLocal8Bit().constData(), 
O_RDONLY);
-        if (fd == -1) {
-            qWarning() << "Unable to open the camera" << deviceName
-                       << "for read to query the parameter info:" << 
qt_error_string(errno);
+        V4LDeviceResource resource(m_session, O_RDONLY);
+        if (resource.fd() == -1) {
+            qWarning() << "Unable to open device to query parameter info";
             return;
         }
 
@@ -265,7 +298,7 @@
             ::memset(&queryControl, 0, sizeof(queryControl));
             queryControl.id = supportedParametersEntries[i].cid;
 
-            if (::ioctl(fd, VIDIOC_QUERYCTRL, &queryControl) != 0) {
+            if (::ioctl(resource.fd(), VIDIOC_QUERYCTRL, &queryControl) != 0) {
                 qWarning() << "Unable to query the parameter info:" << 
supportedParametersEntries[i].parameter
                     << ":" << qt_error_string(errno);
                 continue;
@@ -279,8 +312,6 @@
 
             m_parametersInfo.insert(supportedParametersEntries[i].parameter, 
sourceValueInfo);
         }
-
-        qt_safe_close(fd);
     }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtmultimedia-everywhere-src-5.15.16+kde2/src/plugins/plugins.pro 
new/qtmultimedia-everywhere-src-5.15.17+kde2/src/plugins/plugins.pro
--- old/qtmultimedia-everywhere-src-5.15.16+kde2/src/plugins/plugins.pro        
2024-11-18 12:37:41.000000000 +0100
+++ new/qtmultimedia-everywhere-src-5.15.17+kde2/src/plugins/plugins.pro        
2025-05-22 10:01:13.000000000 +0200
@@ -47,7 +47,7 @@
 qtConfig(gstreamer): SUBDIRS += gstreamer
 
 unix:!mac:!android {
-    !qtConfig(gstreamer): SUBDIRS += audiocapture
+    !qtConfig(gstreamer):!qnx: SUBDIRS += audiocapture
 
     qtConfig(pulseaudio): SUBDIRS += pulseaudio
     qtConfig(alsa): SUBDIRS += alsa

++++++ qtmultimedia-everywhere-src.obsinfo ++++++
--- /var/tmp/diff_new_pack.zJtEaY/_old  2025-05-30 17:23:03.345606669 +0200
+++ /var/tmp/diff_new_pack.zJtEaY/_new  2025-05-30 17:23:03.345606669 +0200
@@ -1,5 +1,5 @@
 name: qtmultimedia-everywhere-src
-version: 5.15.16+kde2
-mtime: 1731929861
-commit: b7c7ff4ab8c0f43a03de51a76867aae691411410
+version: 5.15.17+kde2
+mtime: 1747900873
+commit: d342547886448dacf38d2933cd40322c7435ee86
 

Reply via email to