Rebase against 1f15ddce9c7d0ee71521d7b98c698488b76d3f01.

This commit is contained in:
Alistair Leslie-Hughes
2020-11-12 09:10:29 +11:00
parent c7ea1850c7
commit cd3ee9b25d
5 changed files with 9 additions and 194 deletions

View File

@@ -1,7 +1,7 @@
From d708c949e4c6bdf5beb1fd728bcf12313c7bff42 Mon Sep 17 00:00:00 2001
From 651f85c986806d5ae08f9e471fdca3139e57da1e Mon Sep 17 00:00:00 2001
From: Derek Lesho <dlesho@codeweavers.com>
Date: Thu, 2 Apr 2020 15:42:18 -0500
Subject: [PATCH 23/45] mf: Ask for more samples from upstream node when upon
Subject: [PATCH] mf: Ask for more samples from upstream node when upon
MF_E_TRANSFORM_NEED_MORE_INPUT
---
@@ -9,10 +9,10 @@ Subject: [PATCH 23/45] mf: Ask for more samples from upstream node when upon
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/dlls/mf/session.c b/dlls/mf/session.c
index 7c82aa42a4b..2f1b589a1aa 100644
index 75bc669f8fd..42f28702ddd 100644
--- a/dlls/mf/session.c
+++ b/dlls/mf/session.c
@@ -2503,6 +2503,8 @@ static HRESULT transform_node_pull_samples(struct topo_node *node)
@@ -2534,6 +2534,8 @@ static HRESULT transform_node_pull_samples(const struct media_session *session,
return hr;
}
@@ -21,12 +21,12 @@ index 7c82aa42a4b..2f1b589a1aa 100644
static void session_deliver_sample_to_node(struct media_session *session, IMFTopologyNode *node, unsigned int input,
IMFSample *sample)
{
@@ -2575,7 +2577,14 @@ static void session_deliver_sample_to_node(struct media_session *session, IMFTop
@@ -2609,7 +2611,14 @@ static void session_deliver_sample_to_node(struct media_session *session, IMFTop
WARN("Drain command failed for transform, hr %#x.\n", hr);
}
- transform_node_pull_samples(topo_node);
+ if (transform_node_pull_samples(topo_node) == MF_E_TRANSFORM_NEED_MORE_INPUT && !drain)
- transform_node_pull_samples(session, topo_node);
+ if (transform_node_pull_samples(session, topo_node) == MF_E_TRANSFORM_NEED_MORE_INPUT && !drain)
+ {
+ IMFTopologyNode *upstream_node;
+ DWORD upstream_output;