From: Brendan McGrath <bmcgrath@codeweavers.com> --- dlls/mf/session.c | 9 ++++++--- dlls/mf/tests/mf.c | 3 --- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/dlls/mf/session.c b/dlls/mf/session.c index c0c1d5ac27f..1f23bf51592 100644 --- a/dlls/mf/session.c +++ b/dlls/mf/session.c @@ -1067,7 +1067,7 @@ static void session_flush_sinks(struct media_session *session) { if (node->u.sink.requests) { - node->u.sink.requests--; + node->u.sink.requests--; /* session_request_sample will increment this back */ session_request_sample(session, node->object.sink_stream); } IMFStreamSink_Flush(node->object.sink_stream); @@ -3921,7 +3921,11 @@ static void session_deliver_sample_to_node(struct media_session *session, struct { if (sample) { - if (FAILED(hr = IMFStreamSink_ProcessSample(topo_node->object.sink_stream, sample))) + if (SUCCEEDED(hr = IMFStreamSink_ProcessSample(topo_node->object.sink_stream, sample))) + { + topo_node->u.sink.requests--; + } + else { WARN("Stream sink failed to process sample, hr %#lx.\n", hr); IMFMediaEventQueue_QueueEventParamVar(session->event_queue, MEError, &GUID_NULL, hr, NULL); @@ -3932,7 +3936,6 @@ static void session_deliver_sample_to_node(struct media_session *session, struct { WARN("Failed to place sink marker, hr %#lx.\n", hr); } - topo_node->u.sink.requests--; } break; case MF_TOPOLOGY_TRANSFORM_NODE: diff --git a/dlls/mf/tests/mf.c b/dlls/mf/tests/mf.c index 8262b647a7c..fcca37f8897 100644 --- a/dlls/mf/tests/mf.c +++ b/dlls/mf/tests/mf.c @@ -10861,13 +10861,10 @@ static void test_media_session_sample_request(void) while (hr == WAIT_OBJECT_0 && SUCCEEDED(hr = IMFCollection_GetElementCount(stream_sink->samples, &samples_count)) && samples_count < 4) { hr = WaitForSingleObject(stream_sink->sample_event, 1000); - todo_wine_if(hr != WAIT_OBJECT_0) ok(hr == WAIT_OBJECT_0, "Unexpected hr %#lx.\n", hr); } - todo_wine ok(hr == S_OK, "Unexpected hr %#lx.\n", hr); - todo_wine ok(samples_count == 4, "Unexpected samples count %ld.\n", samples_count); todo_wine -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10055