summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Blechmann <tim@klingt.org>2024-04-23 15:53:19 +0800
committerTim Blechmann <tim@klingt.org>2024-04-24 09:53:58 +0800
commitffc6dda55193d2cab8f2ea471198508ee56eb61d (patch)
treec686fa7d63fad238820de9bc1679065d600fe4bd
parent11fcea0fbe1d07e02067babcb0313c0cef39d57a (diff)
GStreamer: avoid moc
We only need to derive from QObject for the purpose of memory management, but we don't necessarily use slots, since we can use a lambda function to connect the progress timer Pick-to: 6.5 6.7 Change-Id: I4711748efd407fcff9d3e0b2efb0a7843fa72a83 Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io> Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
-rw-r--r--src/plugins/multimedia/gstreamer/common/qgstreamermediaplayer.cpp20
-rw-r--r--src/plugins/multimedia/gstreamer/common/qgstreamermediaplayer_p.h3
2 files changed, 10 insertions, 13 deletions
diff --git a/src/plugins/multimedia/gstreamer/common/qgstreamermediaplayer.cpp b/src/plugins/multimedia/gstreamer/common/qgstreamermediaplayer.cpp
index ddd0ba31d..a08f7f278 100644
--- a/src/plugins/multimedia/gstreamer/common/qgstreamermediaplayer.cpp
+++ b/src/plugins/multimedia/gstreamer/common/qgstreamermediaplayer.cpp
@@ -139,7 +139,9 @@ QGstreamerMediaPlayer::QGstreamerMediaPlayer(QGstreamerVideoOutput *videoOutput,
gst_pipeline_use_clock(playerPipeline.pipeline(), systemClock.get());
- connect(&positionUpdateTimer, &QTimer::timeout, this, &QGstreamerMediaPlayer::updatePosition);
+ connect(&positionUpdateTimer, &QTimer::timeout, this, [this] {
+ updatePosition();
+ });
}
QGstreamerMediaPlayer::~QGstreamerMediaPlayer()
@@ -391,20 +393,20 @@ bool QGstreamerMediaPlayer::processBusMessage(const QGstreamerMessage &message)
if (errorDomain == GST_STREAM_ERROR) {
if (errorCode == GST_STREAM_ERROR_CODEC_NOT_FOUND)
- emit error(QMediaPlayer::FormatError, tr("Cannot play stream of type: <unknown>"));
+ error(QMediaPlayer::FormatError, tr("Cannot play stream of type: <unknown>"));
else {
- emit error(QMediaPlayer::FormatError, QString::fromUtf8(err.get()->message));
+ error(QMediaPlayer::FormatError, QString::fromUtf8(err.get()->message));
}
} else if (errorDomain == GST_RESOURCE_ERROR) {
if (errorCode == GST_RESOURCE_ERROR_NOT_FOUND) {
if (m_resourceErrorState != ResourceErrorState::ErrorReported) {
// gstreamer seems to deliver multiple GST_RESOURCE_ERROR_NOT_FOUND events
- emit error(QMediaPlayer::ResourceError, QString::fromUtf8(err.get()->message));
+ error(QMediaPlayer::ResourceError, QString::fromUtf8(err.get()->message));
m_resourceErrorState = ResourceErrorState::ErrorReported;
m_url.clear();
}
} else {
- emit error(QMediaPlayer::ResourceError, QString::fromUtf8(err.get()->message));
+ error(QMediaPlayer::ResourceError, QString::fromUtf8(err.get()->message));
}
} else {
playerPipeline.dumpGraph("error");
@@ -753,14 +755,14 @@ void QGstreamerMediaPlayer::setMedia(const QUrl &content, QIODevice *stream)
if (maybeAppSrc) {
m_appSrc = maybeAppSrc.value();
} else {
- emit error(QMediaPlayer::ResourceError, maybeAppSrc.error());
+ error(QMediaPlayer::ResourceError, maybeAppSrc.error());
return;
}
}
src = m_appSrc->element();
decoder = QGstElement::createFromFactory("decodebin", "decoder");
if (!decoder) {
- emit error(QMediaPlayer::ResourceError, errorMessageCannotFindElement("decodebin"));
+ error(QMediaPlayer::ResourceError, errorMessageCannotFindElement("decodebin"));
return;
}
decoder.set("post-stream-topology", true);
@@ -777,7 +779,7 @@ void QGstreamerMediaPlayer::setMedia(const QUrl &content, QIODevice *stream)
// use uridecodebin
decoder = QGstElement::createFromFactory("uridecodebin", "decoder");
if (!decoder) {
- emit error(QMediaPlayer::ResourceError, errorMessageCannotFindElement("uridecodebin"));
+ error(QMediaPlayer::ResourceError, errorMessageCannotFindElement("uridecodebin"));
return;
}
playerPipeline.add(decoder);
@@ -987,5 +989,3 @@ void QGstreamerMediaPlayer::setActiveTrack(TrackType type, int index)
}
QT_END_NAMESPACE
-
-#include "moc_qgstreamermediaplayer_p.cpp"
diff --git a/src/plugins/multimedia/gstreamer/common/qgstreamermediaplayer_p.h b/src/plugins/multimedia/gstreamer/common/qgstreamermediaplayer_p.h
index 3b2129296..b53472b54 100644
--- a/src/plugins/multimedia/gstreamer/common/qgstreamermediaplayer_p.h
+++ b/src/plugins/multimedia/gstreamer/common/qgstreamermediaplayer_p.h
@@ -40,8 +40,6 @@ class QGstreamerMediaPlayer : public QObject,
public QGstreamerBusMessageFilter,
public QGstreamerSyncMessageFilter
{
- Q_OBJECT
-
public:
static QMaybe<QPlatformMediaPlayer *> create(QMediaPlayer *parent = nullptr);
~QGstreamerMediaPlayer();
@@ -83,7 +81,6 @@ public:
bool processBusMessage(const QGstreamerMessage& message) override;
bool processSyncMessage(const QGstreamerMessage& message) override;
-public Q_SLOTS:
void updatePosition() { positionChanged(position()); }
private: