summaryrefslogtreecommitdiffstats
path: root/src/multimedia/platform
diff options
context:
space:
mode:
authorArtem Dyomin <artem.dyomin@qt.io>2023-08-28 15:35:00 +0200
committerArtem Dyomin <artem.dyomin@qt.io>2023-08-30 15:02:54 +0000
commit11b4d3148d74d3d36aeda8b4e496e4cb710eca6e (patch)
treeef0153bc2215a20bef0119848394e80cd24319b5 /src/multimedia/platform
parent084ea0f0705c6d49b4da4eb10de980a7cbf2b797 (diff)
Expose GstPipeline in private API
Some users want to have an opportunity to customize gstreamer pipeline (in 6.2 as well). The patch is for experimental purposes: let's try the simplest approach and wait for a users feedback. Pick-to: 6.6 6.5 6.2 Change-Id: Ifa78e4aed0fa5788033ebb5d214abee36b38c649 Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io> Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
Diffstat (limited to 'src/multimedia/platform')
-rw-r--r--src/multimedia/platform/qplatformmediaplayer.cpp12
-rw-r--r--src/multimedia/platform/qplatformmediaplayer_p.h5
2 files changed, 17 insertions, 0 deletions
diff --git a/src/multimedia/platform/qplatformmediaplayer.cpp b/src/multimedia/platform/qplatformmediaplayer.cpp
index 310776c8a..34c929b5a 100644
--- a/src/multimedia/platform/qplatformmediaplayer.cpp
+++ b/src/multimedia/platform/qplatformmediaplayer.cpp
@@ -38,4 +38,16 @@ void QPlatformMediaPlayer::error(int error, const QString &errorString)
player->d_func()->setError(QMediaPlayer::Error(error), errorString);
}
+void *QPlatformMediaPlayer::nativePipeline(QMediaPlayer *player)
+{
+ if (!player)
+ return nullptr;
+
+ auto playerPrivate = player->d_func();
+ if (!playerPrivate || !playerPrivate->control)
+ return nullptr;
+
+ return playerPrivate->control->nativePipeline();
+}
+
QT_END_NAMESPACE
diff --git a/src/multimedia/platform/qplatformmediaplayer_p.h b/src/multimedia/platform/qplatformmediaplayer_p.h
index b31cbac89..6e3590763 100644
--- a/src/multimedia/platform/qplatformmediaplayer_p.h
+++ b/src/multimedia/platform/qplatformmediaplayer_p.h
@@ -124,6 +124,11 @@ public:
Q_EMIT player->loopsChanged();
}
+ virtual void *nativePipeline() { return nullptr; }
+
+ // private API, the purpose is getting GstPipeline
+ static void *nativePipeline(QMediaPlayer *player);
+
protected:
explicit QPlatformMediaPlayer(QMediaPlayer *parent = nullptr);