Zebediah Figura (@zfigura) commented about dlls/wmvcore/async_reader.c:
LeaveCriticalSection(&reader->callback_cs);
hr = IWMSyncReader2_GetNextSample(reader->reader, stream->number,
&sample->buffer, &sample->pts, &sample->duration,
&sample->flags, &sample->output, &sample->stream);
EnterCriticalSection(&reader->callback_cs);
}
if (SUCCEEDED(stream->read_result = hr))
{
TRACE("Got stream %u buffer with pts %I64d.\n", stream->number, sample->pts);
stream->next_sample = sample;
}
else
{
WARN("Failed to get stream %u sample, hr %#lx.\n", stream->number, stream->read_result);
Missed this the first time, but: I'd make this an ERR, personally. (An application can trigger it, but it's one of those cases where it's a sign that something went catastrophically wrong, and also we're pretty much guessing how to handle it if not.)