From: Elizabeth Figura zfigura@codeweavers.com
Apparently amstream's reconnection will attempt to autoplug if the types don't match. We don't implement this behaviour yet.
This isn't particularly relevant for the tests, because none of the autoplugged filters successfully connect.
It causes a test failure here, however, because we attempt to call IMemInputPin::GetAllocatorRequirements() on various autoplugged filters, and not all of them return E_NOTIMPL.
Oddly, the failure is intermittent. Apparently the relevant filter is not always autoplugged, for unclear reasons. --- dlls/amstream/tests/amstream.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/dlls/amstream/tests/amstream.c b/dlls/amstream/tests/amstream.c index 04a2e3b1738..7b0c8aec981 100644 --- a/dlls/amstream/tests/amstream.c +++ b/dlls/amstream/tests/amstream.c @@ -1237,8 +1237,6 @@ static HRESULT WINAPI testsource_DecideAllocator(struct strmbase_source *iface, ok(hr == S_OK, "Got hr %#lx.\n", hr); }
- hr = IMemInputPin_GetAllocatorRequirements(pin, &props); - ok(hr == E_NOTIMPL, "Got hr %#lx.\n", hr); hr = iface->pFuncsTable->pfnDecideBufferSize(iface, *alloc, &props); ok(hr == S_OK, "Got hr %#lx.\n", hr);
@@ -8722,6 +8720,9 @@ static void test_ddrawstream_mem_allocator(void) hr = IMediaStream_QueryInterface(stream, &IID_IMemInputPin, (void **)&mem_input); ok(hr == S_OK, "Got hr %#lx.\n", hr);
+ hr = IMemInputPin_GetAllocatorRequirements(mem_input, &props); + ok(hr == E_NOTIMPL, "Got hr %#lx.\n", hr); + hr = IMediaStream_QueryInterface(stream, &IID_IDirectDrawMediaStream, (void **)&ddraw_stream); ok(hr == S_OK, "Got hr %#lx.\n", hr);