Nikolay Sivov (@nsivov) commented about dlls/mfmediaengine/main.c:
+ LeaveCriticalSection(&engine->cs); + return hr; + } + + hr = create_time_range(seekable); + if (SUCCEEDED(hr) && !isnan(engine->duration) && engine->presentation.source) + { + hr = IMFMediaSource_GetCharacteristics(engine->presentation.source, &flags); + if (SUCCEEDED(hr) && (flags & MFBYTESTREAM_IS_SEEKABLE)) + hr = IMFMediaTimeRange_AddRange(*seekable, 0.0, engine->duration); + + if (FAILED(hr)) + IMFMediaTimeRange_Release(*seekable); + }
LeaveCriticalSection(&engine->cs); I'd like to keep a pair of Enter/Leave, without early returns. This also needs some cleanup to make sure released non-null *seekable is returned on failure.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/3536#note_41765