[PATCH 4/5] evr/mixer: Drop input samples on flush.
Nikolay Sivov
nsivov at codeweavers.com
Tue Oct 20 04:32:42 CDT 2020
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
dlls/evr/mixer.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/dlls/evr/mixer.c b/dlls/evr/mixer.c
index 28361255fe1..5ea1b9aa22b 100644
--- a/dlls/evr/mixer.c
+++ b/dlls/evr/mixer.c
@@ -949,6 +949,7 @@ static HRESULT WINAPI video_mixer_transform_ProcessMessage(IMFTransform *iface,
{
struct video_mixer *mixer = impl_from_IMFTransform(iface);
HRESULT hr = S_OK;
+ unsigned int i;
TRACE("%p, %u, %#lx.\n", iface, message, param);
@@ -966,6 +967,23 @@ static HRESULT WINAPI video_mixer_transform_ProcessMessage(IMFTransform *iface,
break;
+ case MFT_MESSAGE_COMMAND_FLUSH:
+
+ EnterCriticalSection(&mixer->cs);
+
+ for (i = 0; i < mixer->input_count; ++i)
+ {
+ if (mixer->inputs[i].sample)
+ {
+ IMFSample_Release(mixer->inputs[i].sample);
+ mixer->inputs[i].sample = NULL;
+ }
+ }
+
+ LeaveCriticalSection(&mixer->cs);
+
+ break;
+
case MFT_MESSAGE_COMMAND_DRAIN:
break;
--
2.28.0
More information about the wine-devel
mailing list