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 <[email protected]>
+
+- 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