diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2020-06-09 21:14:47 +0200 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2020-06-10 19:52:30 +0200 |
commit | 79b01c63e8883b87f27772a20e07116f6af97d15 (patch) | |
tree | 76f5dece914b12797f82faa37a7f4c6fde611d8a /dev-qt/qtmultimedia/files | |
parent | dev-qt/qtnetwork: Fix CVE-2020-13962 (diff) | |
download | gentoo-79b01c63e8883b87f27772a20e07116f6af97d15.tar.gz gentoo-79b01c63e8883b87f27772a20e07116f6af97d15.tar.bz2 gentoo-79b01c63e8883b87f27772a20e07116f6af97d15.zip |
dev-qt/qtmultimedia: Gstreamer: fix stream buffering
Package-Manager: Portage-2.3.100, Repoman-2.3.22
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'dev-qt/qtmultimedia/files')
-rw-r--r-- | dev-qt/qtmultimedia/files/qtmultimedia-5.14.2-gstreamer-buffering.patch | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/dev-qt/qtmultimedia/files/qtmultimedia-5.14.2-gstreamer-buffering.patch b/dev-qt/qtmultimedia/files/qtmultimedia-5.14.2-gstreamer-buffering.patch new file mode 100644 index 000000000000..5d17b079613d --- /dev/null +++ b/dev-qt/qtmultimedia/files/qtmultimedia-5.14.2-gstreamer-buffering.patch @@ -0,0 +1,38 @@ +From d8d072417b08dd75734b3f0aa86c3a49db934770 Mon Sep 17 00:00:00 2001 +From: Roman Valov <roman.valov@gmail.com> +Date: Mon, 13 Apr 2020 12:54:09 +0000 +Subject: [PATCH] Gstreamer: fix stream buffering + +Gstreamer client should handle GST_MESSAGE_BUFFERING to play and pause +streams based on buffer-percent value and Qt does it properly. +However `updateSessionState` of QGstreamerPlayerControl was implemented +to go back into playing state each time session state becomes paused. +That behavior resulted into choppy stream playback. +Fix with condition to un-pause playback only if it's already buffered. + +Fixes: QTBUG-83417 +Change-Id: Ida4a9e2e196de00050bdc64725fa818c7e939785 +Reviewed-by: VaL Doroshchuk <valentyn.doroshchuk@qt.io> +--- + src/gsttools/qgstreamerplayercontrol.cpp | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/src/gsttools/qgstreamerplayercontrol.cpp b/src/gsttools/qgstreamerplayercontrol.cpp +index 165978288..d65102e2f 100644 +--- a/src/gsttools/qgstreamerplayercontrol.cpp ++++ b/src/gsttools/qgstreamerplayercontrol.cpp +@@ -439,8 +439,10 @@ void QGstreamerPlayerControl::updateSessionState(QMediaPlayer::State state) + } + m_pendingSeekPosition = -1; + +- if (m_currentState == QMediaPlayer::PlayingState) +- m_session->play(); ++ if (m_currentState == QMediaPlayer::PlayingState) { ++ if (m_mediaStatus == QMediaPlayer::BufferedMedia) ++ m_session->play(); ++ } + } + + updateMediaStatus(); +-- +2.16.3 |