winegstreamer: Implement Flush for WMV decoder DMO.

This commit is contained in:
Ziqing Hui 2023-06-14 10:20:39 +08:00 committed by Alexandre Julliard
parent f19a0fb6c2
commit 8e3f316cc9
2 changed files with 11 additions and 5 deletions

View file

@ -6392,10 +6392,8 @@ static void test_wmv_decoder_media_object(void)
hr = IMediaObject_ProcessInput(media_object, 0, &input_media_buffer->IMediaBuffer_iface, 0, 0, 0);
ok(hr == S_OK, "ProcessInput returned %#lx.\n", hr);
hr = IMediaObject_Flush(media_object);
todo_wine
ok(hr == S_OK, "Flush returned %#lx.\n", hr);
hr = IMediaObject_Flush(media_object);
todo_wine
ok(hr == S_OK, "Flush returned %#lx.\n", hr);
output_media_buffer->length = 0;
output_data_buffer.pBuffer = &output_media_buffer->IMediaBuffer_iface;
@ -6405,7 +6403,6 @@ static void test_wmv_decoder_media_object(void)
hr = IMediaObject_ProcessOutput(media_object, 0, 1, &output_data_buffer, &status);
todo_wine
ok(hr == S_FALSE, "ProcessOutput returned %#lx.\n", hr);
todo_wine
ok(output_media_buffer->length == 0, "Unexpected length %#lx.\n", output_media_buffer->length);
/* Test ProcessOutput with setting framerate. */

View file

@ -657,8 +657,17 @@ static HRESULT WINAPI media_object_SetInputMaxLatency(IMediaObject *iface, DWORD
static HRESULT WINAPI media_object_Flush(IMediaObject *iface)
{
FIXME("iface %p stub!\n", iface);
return E_NOTIMPL;
struct wmv_decoder *decoder = impl_from_IMediaObject(iface);
HRESULT hr;
TRACE("iface %p.\n", iface);
if (FAILED(hr = wg_transform_flush(decoder->wg_transform)))
return hr;
wg_sample_queue_flush(decoder->wg_sample_queue, TRUE);
return S_OK;
}
static HRESULT WINAPI media_object_Discontinuity(IMediaObject *iface, DWORD index)