From 1d95eee694553feb30f415a1b3eee94caad53fb0 Mon Sep 17 00:00:00 2001
From: Val Doroshchuk <valentyn.doroshchuk@qt.io>
Date: Mon, 8 Jan 2018 16:23:21 +0100
Subject: [PATCH] DirectShow: Add warning when not supported playback rate
 applied

IMediaSeeking::SetRate() may return an error when not supported rate is
being applied.
Added a warning to inform user about incorrect rate value
also fixed a bug when the rate has been always fell back to 1.0
instead of previous value.

Task-number: QTBUG-55354
Change-Id: I85fb5572cba6920b461a023aef1bc09a981ab033
Reviewed-by: Christian Stromme <christian.stromme@qt.io>
---
 src/plugins/directshow/player/directshowplayerservice.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/plugins/directshow/player/directshowplayerservice.cpp b/src/plugins/directshow/player/directshowplayerservice.cpp
index 8ee5d67a1..63f738bbe 100644
--- a/src/plugins/directshow/player/directshowplayerservice.cpp
+++ b/src/plugins/directshow/player/directshowplayerservice.cpp
@@ -1071,8 +1071,11 @@ void DirectShowPlayerService::doSetRate(QMutexLocker *locker)
         locker->relock();
 
         if (!SUCCEEDED(hr)) {
+            qWarning("%s: Audio device or filter does not support rate: %.2f. " \
+                     "Falling back to previous value.", __FUNCTION__, m_rate);
+
             double rate = 0.0;
-            m_rate = seeking->GetRate(&rate)
+            m_rate = SUCCEEDED(seeking->GetRate(&rate))
                     ? rate
                     : 1.0;
         }
-- 
GitLab