Nikolay Sivov (@nsivov) commented about dlls/mfmediaengine/main.c:
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);
*seekable = NULL;
}
}
}
LeaveCriticalSection(&engine->cs);
It's slightly better to assign to *seekable once, after Leave*(), but that's not critical.