[PATCH] winegstreamer: Create media source read thread after initializing wg_parser.
Fixes race condition as wg_parser is used right away in the created thread. Signed-off-by: Paul Gofman <pgofman(a)codeweavers.com> --- dlls/winegstreamer/media_source.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dlls/winegstreamer/media_source.c b/dlls/winegstreamer/media_source.c index 05544ef7abe..01ab626254a 100644 --- a/dlls/winegstreamer/media_source.c +++ b/dlls/winegstreamer/media_source.c @@ -1315,8 +1315,6 @@ static HRESULT media_source_constructor(IMFByteStream *bytestream, struct media_ if (FAILED(hr = MFAllocateWorkQueue(&object->async_commands_queue))) goto fail; - object->read_thread = CreateThread(NULL, 0, read_thread, object, 0, NULL); - if (!(parser = unix_funcs->wg_decodebin_parser_create())) { hr = E_OUTOFMEMORY; @@ -1324,6 +1322,8 @@ static HRESULT media_source_constructor(IMFByteStream *bytestream, struct media_ } object->wg_parser = parser; + object->read_thread = CreateThread(NULL, 0, read_thread, object, 0, NULL); + object->state = SOURCE_OPENING; if (FAILED(hr = unix_funcs->wg_parser_connect(parser, file_size))) -- 2.31.1
participants (2)
-
Paul Gofman -
Zebediah Figura (she/her)