Giovanni Mascellani : winegstreamer: Advertise support for thinned or reverse playback.

Alexandre Julliard julliard at winehq.org
Mon May 17 15:45:30 CDT 2021


Module: wine
Branch: master
Commit: 02325ccb67ecee06823ca659ab11d8ab8864c9f9
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=02325ccb67ecee06823ca659ab11d8ab8864c9f9

Author: Giovanni Mascellani <gmascellani at codeweavers.com>
Date:   Mon May 17 10:13:08 2021 +0200

winegstreamer: Advertise support for thinned or reverse playback.

Signed-off-by: Giovanni Mascellani <gmascellani at codeweavers.com>
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/winegstreamer/media_source.c | 28 ++++++----------------------
 1 file changed, 6 insertions(+), 22 deletions(-)

diff --git a/dlls/winegstreamer/media_source.c b/dlls/winegstreamer/media_source.c
index 8a87992d450..90efc9aaed2 100644
--- a/dlls/winegstreamer/media_source.c
+++ b/dlls/winegstreamer/media_source.c
@@ -933,13 +933,7 @@ static HRESULT WINAPI media_source_rate_support_GetSlowestRate(IMFRateSupport *i
 {
     TRACE("%p, %d, %d, %p.\n", iface, direction, thin, rate);
 
-    if (direction == MFRATE_REVERSE)
-        return MF_E_REVERSE_UNSUPPORTED;
-
-    if (thin)
-        return MF_E_THINNING_UNSUPPORTED;
-
-    *rate = 1.0f;
+    *rate = direction == MFRATE_FORWARD ? 1.0f : -1.0f;
 
     return S_OK;
 }
@@ -948,31 +942,21 @@ static HRESULT WINAPI media_source_rate_support_GetFastestRate(IMFRateSupport *i
 {
     TRACE("%p, %d, %d, %p.\n", iface, direction, thin, rate);
 
-    if (direction == MFRATE_REVERSE)
-        return MF_E_REVERSE_UNSUPPORTED;
-
-    if (thin)
-        return MF_E_THINNING_UNSUPPORTED;
-
-    *rate = 1.0f;
+    *rate = direction == MFRATE_FORWARD ? 1.0f : -1.0f;
 
     return S_OK;
 }
 
 static HRESULT WINAPI media_source_rate_support_IsRateSupported(IMFRateSupport *iface, BOOL thin, float rate, float *nearest_support_rate)
 {
-    TRACE("%p, %d, %f, %p.\n", iface, thin, rate, nearest_support_rate);
+    const float supported_rate = rate >= 0.0f ? 1.0f : -1.0f;
 
-    if (rate < 0.0f)
-        return MF_E_REVERSE_UNSUPPORTED;
-
-    if (thin)
-        return MF_E_THINNING_UNSUPPORTED;
+    TRACE("%p, %d, %f, %p.\n", iface, thin, rate, nearest_support_rate);
 
     if (nearest_support_rate)
-        *nearest_support_rate = 1.0f;
+        *nearest_support_rate = supported_rate;
 
-    return rate == 1.0f ? S_OK : MF_E_UNSUPPORTED_RATE;
+    return rate == supported_rate ? S_OK : MF_E_UNSUPPORTED_RATE;
 }
 
 static const IMFRateSupportVtbl media_source_rate_support_vtbl =




More information about the wine-cvs mailing list