Module: wine Branch: master Commit: b9dc3324d7aa3397aa71e108e3e1fb5491eee525 URL: https://source.winehq.org/git/wine.git/?a=commit;h=b9dc3324d7aa3397aa71e108e...
Author: Akihiro Sagawa sagawa.aki@gmail.com Date: Wed May 20 23:36:01 2020 +0900
strmbase: Allow NULL pin_get_media_type() callback in source_Connect().
Signed-off-by: Akihiro Sagawa sagawa.aki@gmail.com Signed-off-by: Zebediah Figura z.figura12@gmail.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/strmbase/pin.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/dlls/strmbase/pin.c b/dlls/strmbase/pin.c index b5f8092e9e..eab7c0cb2e 100644 --- a/dlls/strmbase/pin.c +++ b/dlls/strmbase/pin.c @@ -516,17 +516,20 @@ static HRESULT WINAPI source_Connect(IPin *iface, IPin *peer, const AM_MEDIA_TYP return hr; }
- for (i = 0; pin->pFuncsTable->base.pin_get_media_type(&pin->pin, i, &candidate) == S_OK; ++i) + if (pin->pFuncsTable->base.pin_get_media_type) { - strmbase_dump_media_type(&candidate); - if (compare_media_types(mt, &candidate) - && pin->pFuncsTable->pfnAttemptConnection(pin, peer, &candidate) == S_OK) + for (i = 0; pin->pFuncsTable->base.pin_get_media_type(&pin->pin, i, &candidate) == S_OK; ++i) { - LeaveCriticalSection(&pin->pin.filter->csFilter); + strmbase_dump_media_type(&candidate); + if (compare_media_types(mt, &candidate) + && pin->pFuncsTable->pfnAttemptConnection(pin, peer, &candidate) == S_OK) + { + LeaveCriticalSection(&pin->pin.filter->csFilter); + FreeMediaType(&candidate); + return S_OK; + } FreeMediaType(&candidate); - return S_OK; } - FreeMediaType(&candidate); }
if (SUCCEEDED(IPin_EnumMediaTypes(peer, &enummt)))