From ffc6dda55193d2cab8f2ea471198508ee56eb61d Mon Sep 17 00:00:00 2001 From: Tim Blechmann Date: Tue, 23 Apr 2024 15:53:19 +0800 Subject: GStreamer: avoid moc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Artem Dyomin --- .../gstreamer/common/qgstreamermediaplayer.cpp | 20 ++++++++++---------- .../gstreamer/common/qgstreamermediaplayer_p.h | 3 --- 2 files changed, 10 insertions(+), 13 deletions(-) (limited to 'src') 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: ")); + error(QMediaPlayer::FormatError, tr("Cannot play stream of type: ")); 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 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: -- cgit v1.2.3