From 5f6f82baeacce06dc4bdcaa307eff1772e89cd3e Mon Sep 17 00:00:00 2001 From: Val Doroshchuk Date: Mon, 7 Oct 2019 11:57:30 +0200 Subject: DirectShow: Fix crash when media in qrc is set twice When qrc media content is set, it allocates and opens QFile. If the same content is set again, the url remains the same, but it creats new QFile, and need to update DirectShowIOReader by new stream. Change-Id: If3f5c187c4e2987e1a593b45f9a46c3c1b77ce45 Reviewed-by: Ville Voutilainen --- src/plugins/directshow/player/directshowplayercontrol.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/plugins/directshow/player') diff --git a/src/plugins/directshow/player/directshowplayercontrol.cpp b/src/plugins/directshow/player/directshowplayercontrol.cpp index 87bd53bc4..8fddc2102 100644 --- a/src/plugins/directshow/player/directshowplayercontrol.cpp +++ b/src/plugins/directshow/player/directshowplayercontrol.cpp @@ -51,6 +51,7 @@ DirectShowPlayerControl::DirectShowPlayerControl(DirectShowPlayerService *servic : QMediaPlayerControl(parent) , m_service(service) , m_audio(0) + , m_stream(0) , m_updateProperties(0) , m_state(QMediaPlayer::StoppedState) , m_status(QMediaPlayer::NoMedia) @@ -221,7 +222,7 @@ const QIODevice *DirectShowPlayerControl::mediaStream() const void DirectShowPlayerControl::setMedia(const QMediaContent &media, QIODevice *stream) { - if (m_media == media) + if (m_media == media && m_stream == stream) return; m_pendingPosition = -1; -- cgit v1.2.3