evr/mixer: Drop input samples on flush.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Nikolay Sivov 2020-10-21 09:46:32 +03:00 committed by Alexandre Julliard
parent c1e57ea291
commit e2a4b8a563
1 changed files with 18 additions and 0 deletions

View File

@ -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;