From 02325ccb67ecee06823ca659ab11d8ab8864c9f9 Mon Sep 17 00:00:00 2001 From: Giovanni Mascellani Date: Mon, 17 May 2021 10:13:08 +0200 Subject: [PATCH] winegstreamer: Advertise support for thinned or reverse playback. Signed-off-by: Giovanni Mascellani Signed-off-by: Nikolay Sivov Signed-off-by: Alexandre Julliard --- 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) { + const float supported_rate = rate >= 0.0f ? 1.0f : -1.0f; + TRACE("%p, %d, %f, %p.\n", iface, thin, rate, nearest_support_rate); - if (rate < 0.0f) - return MF_E_REVERSE_UNSUPPORTED; - - if (thin) - return MF_E_THINNING_UNSUPPORTED; - 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 =