https://bugs.winehq.org/show_bug.cgi?id=39597
--- Comment #13 from joaopa jeremielapuree@yahoo.fr --- Created attachment 76411 --> https://bugs.winehq.org/attachment.cgi?id=76411 console output with quartz channel enabled
I modified the source to pinpoint where the proble occurs (playvideo.c) // Build the filter graph for our multimedia stream HRESULT ret = pAMStream->OpenFile(L"Clock.avi", 0); printf("hresult = %0x", ret); if (FAILED((ret)))
ret= 80040217 which is VFW_E_CANNOT_CONNECT In amstream/multimedia.c where openfile is implemented, the problem is in these lines
if (SUCCEEDED(ret) && !(flags & AMMSF_NORENDER)) { IFilterGraph2 *graph;
if (SUCCEEDED(ret = IGraphBuilder_QueryInterface(This->graph, &IID_IFilterGraph2, (void **)&graph))) { DWORD renderflags = (flags & AMMSF_RENDERALLSTREAMS) ? 0 : AM_RENDEREX_RENDERTOEXISTINGRENDERERS;
ret = IFilterGraph2_RenderEx(graph, This->ipin, renderflags, NULL); if (ret == VFW_E_CANNOT_RENDER) ret = VFW_E_CANNOT_CONNECT; else if (ret == VFW_S_PARTIAL_RENDER) ret = S_OK;
IFilterGraph2_Release(graph); } else { FIXME("Failed to get IFilterGraph2 interface, hr %#lx.\n", ret); ret = IGraphBuilder_Render(This->graph, This->ipin); } }
So the question is: why does IFilterGraph2_RenderEx fail?