(Resending because the gitlab bridge broke. Sorry for the delay.)
On 9/14/22 05:01, RĂ©mi Bernon wrote:
+static void async_reader_deliver_sample(struct async_reader *reader, struct sample *sample) +{
- IWMReaderCallbackAdvanced *callback_advanced = reader->callback_advanced;
- IWMReaderCallback *callback = reader->callback;
- struct wm_stream *stream;
- BOOL read_compressed;
- HRESULT hr;
- TRACE("reader %p, stream %u, pts %I64d, duration %I64d, flags %#lx, buffer %p.\n",
reader, sample->stream, sample->pts, sample->duration, sample->flags, sample->buffer);
Not a big deal, but we can use debugstr_time() for PTS and duration, which is a bit easier to read.
- stream = wm_reader_get_stream_by_stream_number(&reader->reader, sample->stream);
- read_compressed = stream->read_compressed;
- LeaveCriticalSection(&reader->callback_cs);
- if (read_compressed)
hr = IWMReaderCallbackAdvanced_OnStreamSample(callback_advanced, sample->stream,
sample->pts, sample->duration, sample->flags, sample->buffer, reader->context);
- else
hr = IWMReaderCallback_OnSample(callback, sample->stream - 1, sample->pts, sample->duration,
sample->flags, sample->buffer, reader->context);
- EnterCriticalSection(&reader->callback_cs);
- TRACE("Callback returned %#lx.\n", hr);
- INSSBuffer_Release(sample->buffer);
I find it generally more idiomatic when input-only parameters aren't freed by default; this would also obviate that "else" below.