summaryrefslogtreecommitdiffstats
path: root/src/multimedia/platform/windows/player/mfplayersession_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/multimedia/platform/windows/player/mfplayersession_p.h')
-rw-r--r--src/multimedia/platform/windows/player/mfplayersession_p.h27
1 files changed, 14 insertions, 13 deletions
diff --git a/src/multimedia/platform/windows/player/mfplayersession_p.h b/src/multimedia/platform/windows/player/mfplayersession_p.h
index f3a671443..78ba00879 100644
--- a/src/multimedia/platform/windows/player/mfplayersession_p.h
+++ b/src/multimedia/platform/windows/player/mfplayersession_p.h
@@ -122,6 +122,7 @@ public:
void changeStatus(QMediaPlayer::MediaStatus newStatus);
void close();
+ void clearPlayer() { m_playerControl = nullptr; }
bool setAudioOutput(const QAudioDeviceInfo &device);
QAudioDeviceInfo audioOutput() const { return m_audioOutput; }
@@ -130,18 +131,18 @@ public:
void setVideoSink(QVideoSink *sink);
- void statusChanged() { m_playerControl->handleStatusChanged(); }
- void audioAvailable() { m_playerControl->handleAudioAvailable(); }
- void videoAvailable() { m_playerControl->handleVideoAvailable(); }
- void durationUpdate(qint64 duration) { m_playerControl->handleDurationUpdate(duration); }
- void seekableUpdate(bool seekable) { m_playerControl->handleSeekableUpdate(seekable); }
- void error(QMediaPlayer::Error error, QString errorString, bool isFatal) { m_playerControl->handleError(error, errorString, isFatal); }
- void playbackRateChanged(qreal rate) { m_playerControl->playbackRateChanged(rate); }
- void volumeChanged(int volume) { m_playerControl->volumeChanged(volume); }
- void mutedChanged(bool muted) { m_playerControl->mutedChanged(muted); }
- void bufferProgressChanged(float percentFilled) { m_playerControl->bufferProgressChanged(percentFilled); }
- void metaDataChanged() { m_playerControl->metaDataChanged(); }
- void positionChanged(qint64 position) { m_playerControl->positionChanged(position); }
+ void statusChanged() { if (m_playerControl) m_playerControl->handleStatusChanged(); }
+ void audioAvailable() { if (m_playerControl) m_playerControl->handleAudioAvailable(); }
+ void videoAvailable() { if (m_playerControl) m_playerControl->handleVideoAvailable(); }
+ void durationUpdate(qint64 duration) { if (m_playerControl) m_playerControl->handleDurationUpdate(duration); }
+ void seekableUpdate(bool seekable) { if (m_playerControl) m_playerControl->handleSeekableUpdate(seekable); }
+ void error(QMediaPlayer::Error error, QString errorString, bool isFatal) { if (m_playerControl) m_playerControl->handleError(error, errorString, isFatal); }
+ void playbackRateChanged(qreal rate) { if (m_playerControl) m_playerControl->playbackRateChanged(rate); }
+ void volumeChanged(int volume) { if (m_playerControl) m_playerControl->volumeChanged(volume); }
+ void mutedChanged(bool muted) { if (m_playerControl) m_playerControl->mutedChanged(muted); }
+ void bufferProgressChanged(float percentFilled) { if (m_playerControl) m_playerControl->bufferProgressChanged(percentFilled); }
+ void metaDataChanged() { if (m_playerControl) m_playerControl->metaDataChanged(); }
+ void positionChanged(qint64 position) { if (m_playerControl) m_playerControl->positionChanged(position); }
Q_SIGNALS:
void sessionEvent(IMFMediaEvent *sessionEvent);
@@ -153,7 +154,7 @@ private Q_SLOTS:
private:
long m_cRef;
- MFPlayerControl *m_playerControl;
+ MFPlayerControl *m_playerControl = nullptr;
MFVideoRendererControl *m_videoRendererControl = nullptr;
IMFMediaSession *m_session;
IMFPresentationClock *m_presentationClock;