Rémi Bernon (@rbernon) commented about dlls/winegstreamer/media_source.c:
return E_OUTOFMEMORY; object->IMFMediaStream_iface.lpVtbl = &media_stream_vtbl;
- object->async_commands_callback.lpVtbl = &stream_async_commands_callback_vtbl; object->ref = 1;
- if (FAILED(hr = MFCreateEventQueue(&object->event_queue)))
- if (FAILED(hr = MFCreateEventQueue(&object->event_queue)) ||
FAILED(hr = MFAllocateWorkQueue(&object->async_commands_queue)))
Is this really necessary? I don't feel very excited with the idea of adding more concurrency here, and I don't think it's supposed to work like that, especially for file-based media sources.
You are working on the network media source right? It may be better to have a separate implementation for it, especially as it might be better to use Win32 HTTP/network APIs for compatibility purposes.
So, I would prefer to leave this change aside for now.