[PATCH] winegstreamer: Advertise support for thinned or reverse playback.
Zebediah Figura (she/her)
zfigura at codeweavers.com
Mon May 17 10:31:59 CDT 2021
On 5/17/21 3:13 AM, Giovanni Mascellani wrote:
> Signed-off-by: Giovanni Mascellani <gmascellani at codeweavers.com>
> ---
> 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 eb5b9e366ec..397f4224c9f 100644
> --- a/dlls/winegstreamer/media_source.c
> +++ b/dlls/winegstreamer/media_source.c
> @@ -917,13 +917,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;
> }
> @@ -932,31 +926,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 =
>
Should this print a FIXME?
More information about the wine-devel
mailing list