diff options
Diffstat (limited to 'src/multimedia/platform/gstreamer/mediacapture/qgstreamermediacapture_p.h')
-rw-r--r-- | src/multimedia/platform/gstreamer/mediacapture/qgstreamermediacapture_p.h | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/multimedia/platform/gstreamer/mediacapture/qgstreamermediacapture_p.h b/src/multimedia/platform/gstreamer/mediacapture/qgstreamermediacapture_p.h index 542f82531..ed75a27d1 100644 --- a/src/multimedia/platform/gstreamer/mediacapture/qgstreamermediacapture_p.h +++ b/src/multimedia/platform/gstreamer/mediacapture/qgstreamermediacapture_p.h @@ -57,6 +57,8 @@ #include <private/qgst_p.h> #include <private/qgstpipeline_p.h> +#include <qtimer.h> + QT_BEGIN_NAMESPACE class QGstreamerCamera; @@ -85,14 +87,13 @@ public: void setMediaEncoder(QPlatformMediaEncoder *encoder) override; void setAudioInput(QPlatformAudioInput *input) override; + QGstreamerAudioInput *audioInput() { return gstAudioInput; } void setVideoPreview(QVideoSink *sink) override; void setAudioOutput(QPlatformAudioOutput *output) override; - QGstPad getAudioPad() const; - QGstPad getVideoPad() const; - void releaseAudioPad(const QGstPad &pad) const; - void releaseVideoPad(const QGstPad &pad) const; + void linkEncoder(QGstPad audioSink, QGstPad videoSink); + void unlinkEncoder(); QGstPipeline pipeline() const { return gstPipeline; } @@ -102,14 +103,20 @@ private: friend QGstreamerMediaEncoder; // Gst elements QGstPipeline gstPipeline; + QTimer heartbeat; QGstreamerAudioInput *gstAudioInput = nullptr; QGstreamerCamera *gstCamera = nullptr; QGstElement gstAudioTee; QGstElement gstVideoTee; + QGstElement encoderVideoCapsFilter; + QGstElement encoderAudioCapsFilter; + + QGstPad encoderAudioSink; + QGstPad encoderVideoSink; + QGstPad imageCaptureSink; - QGstPad gstAudioOutputPad; QGstreamerAudioOutput *gstAudioOutput = nullptr; QGstreamerVideoOutput *gstVideoOutput = nullptr; |