Signed-off-by: Zebediah Figura z.figura12@gmail.com --- dlls/quartz/tests/dsoundrender.c | 12 ++++----- dlls/quartz/tests/videorenderer.c | 43 ++++++++++--------------------- dlls/quartz/tests/vmr7.c | 27 +++++++------------ 3 files changed, 28 insertions(+), 54 deletions(-)
diff --git a/dlls/quartz/tests/dsoundrender.c b/dlls/quartz/tests/dsoundrender.c index 9506abc7977..9aa9a796c9f 100644 --- a/dlls/quartz/tests/dsoundrender.c +++ b/dlls/quartz/tests/dsoundrender.c @@ -746,14 +746,11 @@ static HRESULT send_frame(IMemInputPin *sink) return ret; }
-static void test_filter_state(IMemInputPin *input, IFilterGraph2 *graph) +static void test_filter_state(IMemInputPin *input, IMediaControl *control) { - IMediaControl *control; OAFilterState state; HRESULT hr;
- IFilterGraph2_QueryInterface(graph, &IID_IMediaControl, (void **)&control); - hr = send_frame(input); ok(hr == VFW_E_WRONG_STATE, "Got hr %#x.\n", hr);
@@ -833,8 +830,6 @@ static void test_filter_state(IMemInputPin *input, IFilterGraph2 *graph) /* The DirectSound renderer will silently refuse to transition to running * if it hasn't finished pausing yet. Once it does it reports itself as * completely paused. */ - - IMediaControl_Release(control); }
static void test_connect_pin(void) @@ -860,6 +855,7 @@ static void test_connect_pin(void) IBaseFilter *filter = create_dsound_render(); struct testfilter source; IMemAllocator *allocator; + IMediaControl *control; IFilterGraph2 *graph; IMemInputPin *input; AM_MEDIA_TYPE mt; @@ -872,6 +868,7 @@ static void test_connect_pin(void) CoCreateInstance(&CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, &IID_IFilterGraph2, (void **)&graph); IFilterGraph2_AddFilter(graph, &source.filter.IBaseFilter_iface, L"source"); IFilterGraph2_AddFilter(graph, filter, L"sink"); + IFilterGraph2_QueryInterface(graph, &IID_IMediaControl, (void **)&control);
IBaseFilter_FindPin(filter, sink_id, &pin);
@@ -913,7 +910,7 @@ static void test_connect_pin(void) hr = IMemInputPin_ReceiveCanBlock(input); ok(hr == S_OK, "Got hr %#x.\n", hr);
- test_filter_state(input, graph); + test_filter_state(input, control);
hr = IFilterGraph2_Disconnect(graph, pin); ok(hr == S_OK, "Got hr %#x.\n", hr); @@ -934,6 +931,7 @@ static void test_connect_pin(void) ok(!ref, "Got outstanding refcount %d.\n", ref); IMemInputPin_Release(input); IPin_Release(pin); + IMediaControl_Release(control); ref = IFilterGraph2_Release(graph); ok(!ref, "Got outstanding refcount %d.\n", ref); ref = IBaseFilter_Release(filter); diff --git a/dlls/quartz/tests/videorenderer.c b/dlls/quartz/tests/videorenderer.c index ed2639d2736..f84d553f2aa 100644 --- a/dlls/quartz/tests/videorenderer.c +++ b/dlls/quartz/tests/videorenderer.c @@ -823,17 +823,14 @@ static HRESULT join_thread_(int line, HANDLE thread) } #define join_thread(a) join_thread_(__LINE__, a)
-static void test_filter_state(IMemInputPin *input, IFilterGraph2 *graph) +static void test_filter_state(IMemInputPin *input, IMediaControl *control) { IMemAllocator *allocator; - IMediaControl *control; IMediaSample *sample; OAFilterState state; HANDLE thread; HRESULT hr;
- IFilterGraph2_QueryInterface(graph, &IID_IMediaControl, (void **)&control); - thread = send_frame(input); hr = join_thread(thread); todo_wine ok(hr == E_FAIL, "Got hr %#x.\n", hr); @@ -961,18 +958,14 @@ static void test_filter_state(IMemInputPin *input, IFilterGraph2 *graph) ok(hr == S_OK, "Got hr %#x.\n", hr);
IMemAllocator_Release(allocator); - IMediaControl_Release(control); }
-static void test_flushing(IPin *pin, IMemInputPin *input, IFilterGraph2 *graph) +static void test_flushing(IPin *pin, IMemInputPin *input, IMediaControl *control) { - IMediaControl *control; OAFilterState state; HANDLE thread; HRESULT hr;
- IFilterGraph2_QueryInterface(graph, &IID_IMediaControl, (void **)&control); - hr = IMediaControl_Pause(control); ok(hr == S_FALSE, "Got hr %#x.\n", hr);
@@ -1022,20 +1015,16 @@ static void test_flushing(IPin *pin, IMemInputPin *input, IFilterGraph2 *graph)
hr = IMediaControl_Stop(control); ok(hr == S_OK, "Got hr %#x.\n", hr); - - IMediaControl_Release(control); }
-static void test_sample_time(IBaseFilter *filter, IPin *pin, IMemInputPin *input, IFilterGraph2 *graph) +static void test_sample_time(IBaseFilter *filter, IPin *pin, IMemInputPin *input, IMediaControl *control) { - IMediaControl *control; IMediaSeeking *seeking; REFERENCE_TIME time; OAFilterState state; HANDLE thread; HRESULT hr;
- IFilterGraph2_QueryInterface(graph, &IID_IMediaControl, (void **)&control); IBaseFilter_QueryInterface(filter, &IID_IMediaSeeking, (void **)&seeking);
hr = IMediaControl_Pause(control); @@ -1108,7 +1097,6 @@ static void test_sample_time(IBaseFilter *filter, IPin *pin, IMemInputPin *input ok(hr == S_OK, "Got hr %#x.\n", hr);
IMediaSeeking_Release(seeking); - IMediaControl_Release(control); }
static unsigned int check_ec_complete(IMediaEvent *eventsrc, DWORD timeout) @@ -1134,16 +1122,14 @@ static unsigned int check_ec_complete(IMediaEvent *eventsrc, DWORD timeout) return ret; }
-static void test_eos(IPin *pin, IMemInputPin *input, IFilterGraph2 *graph) +static void test_eos(IPin *pin, IMemInputPin *input, IMediaControl *control) { - IMediaControl *control; IMediaEvent *eventsrc; OAFilterState state; HRESULT hr; BOOL ret;
- IFilterGraph2_QueryInterface(graph, &IID_IMediaControl, (void **)&control); - IFilterGraph2_QueryInterface(graph, &IID_IMediaEvent, (void **)&eventsrc); + IMediaControl_QueryInterface(control, &IID_IMediaEvent, (void **)&eventsrc);
hr = IMediaControl_Pause(control); ok(hr == S_FALSE, "Got hr %#x.\n", hr); @@ -1246,15 +1232,13 @@ static void test_eos(IPin *pin, IMemInputPin *input, IFilterGraph2 *graph) ok(!ret, "Got unexpected EC_COMPLETE.\n");
IMediaEvent_Release(eventsrc); - IMediaControl_Release(control); }
static void test_current_image(IBaseFilter *filter, IMemInputPin *input, - IFilterGraph2 *graph, const BITMAPINFOHEADER *expect_bih) + IMediaControl *control, const BITMAPINFOHEADER *expect_bih) { LONG buffer[(sizeof(BITMAPINFOHEADER) + 32 * 16 * 2) / 4]; const BITMAPINFOHEADER *bih = (BITMAPINFOHEADER *)buffer; - IMediaControl *control; OAFilterState state; IBasicVideo *video; unsigned int i; @@ -1262,7 +1246,6 @@ static void test_current_image(IBaseFilter *filter, IMemInputPin *input, HRESULT hr; LONG size;
- IFilterGraph2_QueryInterface(graph, &IID_IMediaControl, (void **)&control); IBaseFilter_QueryInterface(filter, &IID_IBasicVideo, (void **)&video);
hr = IBasicVideo_GetCurrentImage(video, NULL, NULL); @@ -1321,7 +1304,6 @@ static void test_current_image(IBaseFilter *filter, IMemInputPin *input, ok(hr == S_OK, "Got hr %#x.\n", hr);
IBasicVideo_Release(video); - IMediaControl_Release(control); }
static void test_connect_pin(void) @@ -1347,6 +1329,7 @@ static void test_connect_pin(void) IFilterGraph2 *graph = create_graph(); struct testfilter source; IMemAllocator *allocator; + IMediaControl *control; IMemInputPin *input; AM_MEDIA_TYPE mt; IPin *pin, *peer; @@ -1366,6 +1349,7 @@ static void test_connect_pin(void)
IFilterGraph2_AddFilter(graph, &source.filter.IBaseFilter_iface, NULL); IFilterGraph2_AddFilter(graph, filter, NULL); + IFilterGraph2_QueryInterface(graph, &IID_IMediaControl, (void **)&control);
IBaseFilter_FindPin(filter, L"In", &pin);
@@ -1424,11 +1408,11 @@ static void test_connect_pin(void) hr = IMemInputPin_ReceiveCanBlock(input); ok(hr == S_OK, "Got hr %#x.\n", hr);
- test_filter_state(input, graph); - test_flushing(pin, input, graph); - test_sample_time(filter, pin, input, graph); - test_eos(pin, input, graph); - test_current_image(filter, input, graph, &vih.bmiHeader); + test_filter_state(input, control); + test_flushing(pin, input, control); + test_sample_time(filter, pin, input, control); + test_eos(pin, input, control); + test_current_image(filter, input, control, &vih.bmiHeader);
hr = IFilterGraph2_Disconnect(graph, pin); ok(hr == S_OK, "Got hr %#x.\n", hr); @@ -1449,6 +1433,7 @@ static void test_connect_pin(void) ok(!ref, "Got outstanding refcount %d.\n", ref); IMemInputPin_Release(input); IPin_Release(pin); + IMediaControl_Release(control); ref = IFilterGraph2_Release(graph); ok(!ref, "Got outstanding refcount %d.\n", ref); ref = IBaseFilter_Release(filter); diff --git a/dlls/quartz/tests/vmr7.c b/dlls/quartz/tests/vmr7.c index 39592afce66..1101a98ab7d 100644 --- a/dlls/quartz/tests/vmr7.c +++ b/dlls/quartz/tests/vmr7.c @@ -1022,17 +1022,14 @@ static HRESULT join_thread_(int line, HANDLE thread) } #define join_thread(a) join_thread_(__LINE__, a)
-static void test_filter_state(IMemInputPin *input, IFilterGraph2 *graph) +static void test_filter_state(IMemInputPin *input, IMediaControl *control) { IMemAllocator *allocator; - IMediaControl *control; IMediaSample *sample; OAFilterState state; HANDLE thread; HRESULT hr;
- IFilterGraph2_QueryInterface(graph, &IID_IMediaControl, (void **)&control); - thread = send_frame(input); hr = join_thread(thread); ok(hr == VFW_E_WRONG_STATE, "Got hr %#x.\n", hr); @@ -1163,19 +1160,15 @@ static void test_filter_state(IMemInputPin *input, IFilterGraph2 *graph) ok(hr == S_OK, "Got hr %#x.\n", hr);
IMemAllocator_Release(allocator); - IMediaControl_Release(control); }
-static void test_flushing(IPin *pin, IMemInputPin *input, IFilterGraph2 *graph) +static void test_flushing(IPin *pin, IMemInputPin *input, IMediaControl *control) { IMemAllocator *allocator; - IMediaControl *control; OAFilterState state; HANDLE thread; HRESULT hr;
- IFilterGraph2_QueryInterface(graph, &IID_IMediaControl, (void **)&control); - hr = IMemInputPin_GetAllocator(input, &allocator); ok(hr == S_OK, "Got hr %#x.\n", hr); hr = IMemAllocator_Commit(allocator); @@ -1233,19 +1226,16 @@ static void test_flushing(IPin *pin, IMemInputPin *input, IFilterGraph2 *graph)
hr = IMediaControl_Stop(control); ok(hr == S_OK, "Got hr %#x.\n", hr); - - IMediaControl_Release(control); }
static void test_current_image(IBaseFilter *filter, IMemInputPin *input, - IFilterGraph2 *graph, const BITMAPINFOHEADER *req_bih) + IMediaControl *control, const BITMAPINFOHEADER *req_bih) { LONG buffer[(sizeof(BITMAPINFOHEADER) + 32 * 16 * 4) / 4]; const BITMAPINFOHEADER *bih = (BITMAPINFOHEADER *)buffer; const DWORD *data = (DWORD *)((char *)buffer + sizeof(BITMAPINFOHEADER)); BITMAPINFOHEADER expect_bih = *req_bih; IMemAllocator *allocator; - IMediaControl *control; OAFilterState state; IBasicVideo *video; unsigned int i; @@ -1258,7 +1248,6 @@ static void test_current_image(IBaseFilter *filter, IMemInputPin *input, expect_bih.biBitCount = 32; expect_bih.biSizeImage = 32 * 16 * 4;
- IFilterGraph2_QueryInterface(graph, &IID_IMediaControl, (void **)&control); IBaseFilter_QueryInterface(filter, &IID_IBasicVideo, (void **)&video);
hr = IBasicVideo_GetCurrentImage(video, NULL, NULL); @@ -1337,7 +1326,6 @@ static void test_current_image(IBaseFilter *filter, IMemInputPin *input, ok(hr == S_OK, "Got hr %#x.\n", hr);
IBasicVideo_Release(video); - IMediaControl_Release(control); }
static void test_connect_pin(void) @@ -1363,6 +1351,7 @@ static void test_connect_pin(void) IFilterGraph2 *graph = create_graph(); struct testfilter source; IMemAllocator *allocator; + IMediaControl *control; IMemInputPin *input; AM_MEDIA_TYPE mt; IPin *pin, *peer; @@ -1382,6 +1371,7 @@ static void test_connect_pin(void)
IFilterGraph2_AddFilter(graph, &source.filter.IBaseFilter_iface, NULL); IFilterGraph2_AddFilter(graph, filter, NULL); + IFilterGraph2_QueryInterface(graph, &IID_IMediaControl, (void **)&control);
IBaseFilter_FindPin(filter, L"VMR Input0", &pin);
@@ -1469,9 +1459,9 @@ static void test_connect_pin(void) hr = IMemInputPin_ReceiveCanBlock(input); ok(hr == S_OK, "Got hr %#x.\n", hr);
- test_filter_state(input, graph); - test_flushing(pin, input, graph); - test_current_image(filter, input, graph, &vih.bmiHeader); + test_filter_state(input, control); + test_flushing(pin, input, control); + test_current_image(filter, input, control, &vih.bmiHeader);
hr = IFilterGraph2_Disconnect(graph, pin); ok(hr == S_OK, "Got hr %#x.\n", hr); @@ -1490,6 +1480,7 @@ static void test_connect_pin(void)
IMemInputPin_Release(input); IPin_Release(pin); + IMediaControl_Release(control); ref = IFilterGraph2_Release(graph); ok(!ref, "Got outstanding refcount %d.\n", ref); ref = IBaseFilter_Release(filter);
Signed-off-by: Zebediah Figura z.figura12@gmail.com --- dlls/quartz/tests/avisplit.c | 16 ++++++++-------- dlls/quartz/tests/mpegsplit.c | 16 ++++++++-------- dlls/quartz/tests/waveparser.c | 16 ++++++++-------- dlls/winegstreamer/gstdemux.c | 2 +- 4 files changed, 25 insertions(+), 25 deletions(-)
diff --git a/dlls/quartz/tests/avisplit.c b/dlls/quartz/tests/avisplit.c index a277256255b..644807dc32f 100644 --- a/dlls/quartz/tests/avisplit.c +++ b/dlls/quartz/tests/avisplit.c @@ -1300,25 +1300,25 @@ static void test_unconnected_filter_state(void) ok(state == State_Stopped, "Got state %u.\n", state);
hr = IBaseFilter_Pause(filter); - todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr); + ok(hr == S_OK, "Got hr %#x.\n", hr);
hr = IBaseFilter_GetState(filter, 0, &state); ok(hr == S_OK, "Got hr %#x.\n", hr); - todo_wine ok(state == State_Paused, "Got state %u.\n", state); + ok(state == State_Paused, "Got state %u.\n", state);
hr = IBaseFilter_Run(filter, 0); - todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr); + ok(hr == S_OK, "Got hr %#x.\n", hr);
hr = IBaseFilter_GetState(filter, 0, &state); ok(hr == S_OK, "Got hr %#x.\n", hr); - todo_wine ok(state == State_Running, "Got state %u.\n", state); + ok(state == State_Running, "Got state %u.\n", state);
hr = IBaseFilter_Pause(filter); - todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr); + ok(hr == S_OK, "Got hr %#x.\n", hr);
hr = IBaseFilter_GetState(filter, 0, &state); ok(hr == S_OK, "Got hr %#x.\n", hr); - todo_wine ok(state == State_Paused, "Got state %u.\n", state); + ok(state == State_Paused, "Got state %u.\n", state);
hr = IBaseFilter_Stop(filter); ok(hr == S_OK, "Got hr %#x.\n", hr); @@ -1328,11 +1328,11 @@ static void test_unconnected_filter_state(void) ok(state == State_Stopped, "Got state %u.\n", state);
hr = IBaseFilter_Run(filter, 0); - todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr); + ok(hr == S_OK, "Got hr %#x.\n", hr);
hr = IBaseFilter_GetState(filter, 0, &state); ok(hr == S_OK, "Got hr %#x.\n", hr); - todo_wine ok(state == State_Running, "Got state %u.\n", state); + ok(state == State_Running, "Got state %u.\n", state);
hr = IBaseFilter_Stop(filter); ok(hr == S_OK, "Got hr %#x.\n", hr); diff --git a/dlls/quartz/tests/mpegsplit.c b/dlls/quartz/tests/mpegsplit.c index e407fe44eeb..f8a0ac56356 100644 --- a/dlls/quartz/tests/mpegsplit.c +++ b/dlls/quartz/tests/mpegsplit.c @@ -1043,25 +1043,25 @@ static void test_unconnected_filter_state(void) ok(state == State_Stopped, "Got state %u.\n", state);
hr = IBaseFilter_Pause(filter); - todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr); + ok(hr == S_OK, "Got hr %#x.\n", hr);
hr = IBaseFilter_GetState(filter, 0, &state); ok(hr == S_OK, "Got hr %#x.\n", hr); - todo_wine ok(state == State_Paused, "Got state %u.\n", state); + ok(state == State_Paused, "Got state %u.\n", state);
hr = IBaseFilter_Run(filter, 0); - todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr); + ok(hr == S_OK, "Got hr %#x.\n", hr);
hr = IBaseFilter_GetState(filter, 0, &state); ok(hr == S_OK, "Got hr %#x.\n", hr); - todo_wine ok(state == State_Running, "Got state %u.\n", state); + ok(state == State_Running, "Got state %u.\n", state);
hr = IBaseFilter_Pause(filter); - todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr); + ok(hr == S_OK, "Got hr %#x.\n", hr);
hr = IBaseFilter_GetState(filter, 0, &state); ok(hr == S_OK, "Got hr %#x.\n", hr); - todo_wine ok(state == State_Paused, "Got state %u.\n", state); + ok(state == State_Paused, "Got state %u.\n", state);
hr = IBaseFilter_Stop(filter); ok(hr == S_OK, "Got hr %#x.\n", hr); @@ -1071,11 +1071,11 @@ static void test_unconnected_filter_state(void) ok(state == State_Stopped, "Got state %u.\n", state);
hr = IBaseFilter_Run(filter, 0); - todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr); + ok(hr == S_OK, "Got hr %#x.\n", hr);
hr = IBaseFilter_GetState(filter, 0, &state); ok(hr == S_OK, "Got hr %#x.\n", hr); - todo_wine ok(state == State_Running, "Got state %u.\n", state); + ok(state == State_Running, "Got state %u.\n", state);
hr = IBaseFilter_Stop(filter); ok(hr == S_OK, "Got hr %#x.\n", hr); diff --git a/dlls/quartz/tests/waveparser.c b/dlls/quartz/tests/waveparser.c index e9540bc0f55..37f924b716f 100644 --- a/dlls/quartz/tests/waveparser.c +++ b/dlls/quartz/tests/waveparser.c @@ -780,25 +780,25 @@ static void test_unconnected_filter_state(void) ok(state == State_Stopped, "Got state %u.\n", state);
hr = IBaseFilter_Pause(filter); - todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr); + ok(hr == S_OK, "Got hr %#x.\n", hr);
hr = IBaseFilter_GetState(filter, 0, &state); ok(hr == S_OK, "Got hr %#x.\n", hr); - todo_wine ok(state == State_Paused, "Got state %u.\n", state); + ok(state == State_Paused, "Got state %u.\n", state);
hr = IBaseFilter_Run(filter, 0); - todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr); + ok(hr == S_OK, "Got hr %#x.\n", hr);
hr = IBaseFilter_GetState(filter, 0, &state); ok(hr == S_OK, "Got hr %#x.\n", hr); - todo_wine ok(state == State_Running, "Got state %u.\n", state); + ok(state == State_Running, "Got state %u.\n", state);
hr = IBaseFilter_Pause(filter); - todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr); + ok(hr == S_OK, "Got hr %#x.\n", hr);
hr = IBaseFilter_GetState(filter, 0, &state); ok(hr == S_OK, "Got hr %#x.\n", hr); - todo_wine ok(state == State_Paused, "Got state %u.\n", state); + ok(state == State_Paused, "Got state %u.\n", state);
hr = IBaseFilter_Stop(filter); ok(hr == S_OK, "Got hr %#x.\n", hr); @@ -808,11 +808,11 @@ static void test_unconnected_filter_state(void) ok(state == State_Stopped, "Got state %u.\n", state);
hr = IBaseFilter_Run(filter, 0); - todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr); + ok(hr == S_OK, "Got hr %#x.\n", hr);
hr = IBaseFilter_GetState(filter, 0, &state); ok(hr == S_OK, "Got hr %#x.\n", hr); - todo_wine ok(state == State_Running, "Got state %u.\n", state); + ok(state == State_Running, "Got state %u.\n", state);
hr = IBaseFilter_Stop(filter); ok(hr == S_OK, "Got hr %#x.\n", hr); diff --git a/dlls/winegstreamer/gstdemux.c b/dlls/winegstreamer/gstdemux.c index 9f5e147b7ed..52a8f33708f 100644 --- a/dlls/winegstreamer/gstdemux.c +++ b/dlls/winegstreamer/gstdemux.c @@ -1438,7 +1438,7 @@ static HRESULT gstdemux_init_stream(struct strmbase_filter *iface) unsigned int i;
if (!filter->container) - return VFW_E_NOT_CONNECTED; + return S_OK;
for (i = 0; i < filter->source_count; ++i) {
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=81964
Your paranoid android.
=== debiant (32 bit report) ===
quartz: avisplit.c:1310: Test failed: Got hr 0x80040209. avisplit.c:1314: Test failed: Got state 1. avisplit.c:1331: Test failed: Got hr 0x80040209. avisplit.c:1335: Test failed: Got state 0. mpegsplit.c:1053: Test failed: Got hr 0x80040209. mpegsplit.c:1057: Test failed: Got state 1. mpegsplit.c:1074: Test failed: Got hr 0x80040209. mpegsplit.c:1078: Test failed: Got state 0. waveparser.c:790: Test failed: Got hr 0x80040209. waveparser.c:794: Test failed: Got state 1. waveparser.c:811: Test failed: Got hr 0x80040209. waveparser.c:815: Test failed: Got state 0.
=== debiant (32 bit French report) ===
quartz: avisplit.c:1310: Test failed: Got hr 0x80040209. avisplit.c:1314: Test failed: Got state 1. avisplit.c:1331: Test failed: Got hr 0x80040209. avisplit.c:1335: Test failed: Got state 0. mpegsplit.c:1053: Test failed: Got hr 0x80040209. mpegsplit.c:1057: Test failed: Got state 1. mpegsplit.c:1074: Test failed: Got hr 0x80040209. mpegsplit.c:1078: Test failed: Got state 0. waveparser.c:790: Test failed: Got hr 0x80040209. waveparser.c:794: Test failed: Got state 1. waveparser.c:811: Test failed: Got hr 0x80040209. waveparser.c:815: Test failed: Got state 0.
=== debiant (32 bit Japanese:Japan report) ===
quartz: avisplit.c:1310: Test failed: Got hr 0x80040209. avisplit.c:1314: Test failed: Got state 1. avisplit.c:1331: Test failed: Got hr 0x80040209. avisplit.c:1335: Test failed: Got state 0. mpegsplit.c:1053: Test failed: Got hr 0x80040209. mpegsplit.c:1057: Test failed: Got state 1. mpegsplit.c:1074: Test failed: Got hr 0x80040209. mpegsplit.c:1078: Test failed: Got state 0. waveparser.c:790: Test failed: Got hr 0x80040209. waveparser.c:794: Test failed: Got state 1. waveparser.c:811: Test failed: Got hr 0x80040209. waveparser.c:815: Test failed: Got state 0.
=== debiant (32 bit Chinese:China report) ===
quartz: avisplit.c:1310: Test failed: Got hr 0x80040209. avisplit.c:1314: Test failed: Got state 1. avisplit.c:1331: Test failed: Got hr 0x80040209. avisplit.c:1335: Test failed: Got state 0. mpegsplit.c:1053: Test failed: Got hr 0x80040209. mpegsplit.c:1057: Test failed: Got state 1. mpegsplit.c:1074: Test failed: Got hr 0x80040209. mpegsplit.c:1078: Test failed: Got state 0. waveparser.c:790: Test failed: Got hr 0x80040209. waveparser.c:794: Test failed: Got state 1. waveparser.c:811: Test failed: Got hr 0x80040209. waveparser.c:815: Test failed: Got state 0.
=== debiant (32 bit WoW report) ===
quartz: avisplit.c:1310: Test failed: Got hr 0x80040209. avisplit.c:1314: Test failed: Got state 1. avisplit.c:1331: Test failed: Got hr 0x80040209. avisplit.c:1335: Test failed: Got state 0. mpegsplit.c:1053: Test failed: Got hr 0x80040209. mpegsplit.c:1057: Test failed: Got state 1. mpegsplit.c:1074: Test failed: Got hr 0x80040209. mpegsplit.c:1078: Test failed: Got state 0. waveparser.c:790: Test failed: Got hr 0x80040209. waveparser.c:794: Test failed: Got state 1. waveparser.c:811: Test failed: Got hr 0x80040209. waveparser.c:815: Test failed: Got state 0.
=== debiant (64 bit WoW report) ===
quartz: avisplit.c:1310: Test failed: Got hr 0x80040209. avisplit.c:1314: Test failed: Got state 1. avisplit.c:1331: Test failed: Got hr 0x80040209. avisplit.c:1335: Test failed: Got state 0. mpegsplit.c:1053: Test failed: Got hr 0x80040209. mpegsplit.c:1057: Test failed: Got state 1. mpegsplit.c:1074: Test failed: Got hr 0x80040209. mpegsplit.c:1078: Test failed: Got state 0. waveparser.c:790: Test failed: Got hr 0x80040209. waveparser.c:794: Test failed: Got state 1. waveparser.c:811: Test failed: Got hr 0x80040209. waveparser.c:815: Test failed: Got state 0.
Signed-off-by: Zebediah Figura z.figura12@gmail.com --- dlls/winegstreamer/gstdemux.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/dlls/winegstreamer/gstdemux.c b/dlls/winegstreamer/gstdemux.c index 52a8f33708f..86e8e67b04c 100644 --- a/dlls/winegstreamer/gstdemux.c +++ b/dlls/winegstreamer/gstdemux.c @@ -1432,7 +1432,6 @@ static void gstdemux_destroy(struct strmbase_filter *iface) static HRESULT gstdemux_init_stream(struct strmbase_filter *iface) { struct gstdemux *filter = impl_from_strmbase_filter(iface); - HRESULT hr = VFW_E_NOT_CONNECTED, pin_hr; const SourceSeeking *seeking; GstStateChangeReturn ret; unsigned int i; @@ -1442,12 +1441,11 @@ static HRESULT gstdemux_init_stream(struct strmbase_filter *iface)
for (i = 0; i < filter->source_count; ++i) { - if (SUCCEEDED(pin_hr = BaseOutputPinImpl_Active(&filter->sources[i]->pin))) - hr = pin_hr; - } + HRESULT hr;
- if (FAILED(hr)) - return hr; + if (filter->sources[i]->pin.pin.peer && FAILED(hr = IMemAllocator_Commit(filter->sources[i]->pin.pAllocator))) + ERR("Failed to commit allocator, hr %#x.\n", hr); + }
if (filter->no_more_pads_event) ResetEvent(filter->no_more_pads_event); @@ -1480,7 +1478,7 @@ static HRESULT gstdemux_init_stream(struct strmbase_filter *iface) stop_type, seeking->llStop * 100)); }
- return hr; + return S_OK; }
static HRESULT gstdemux_start_stream(struct strmbase_filter *iface, REFERENCE_TIME time)
Not compile-tested.
Signed-off-by: Zebediah Figura z.figura12@gmail.com --- dlls/wineqtdecoder/qtsplitter.c | 20 ++++++++------------ dlls/wineqtdecoder/qtvdecoder.c | 26 +++++++++++++++++--------- 2 files changed, 25 insertions(+), 21 deletions(-)
diff --git a/dlls/wineqtdecoder/qtsplitter.c b/dlls/wineqtdecoder/qtsplitter.c index cabb090e8d3..21fa2376745 100644 --- a/dlls/wineqtdecoder/qtsplitter.c +++ b/dlls/wineqtdecoder/qtsplitter.c @@ -278,25 +278,21 @@ static void qt_splitter_destroy(struct strmbase_filter *iface) static HRESULT qt_splitter_start_stream(struct strmbase_filter *iface, REFERENCE_TIME time) { QTSplitter *filter = impl_from_strmbase_filter(iface); - HRESULT hr = VFW_E_NOT_CONNECTED, pin_hr; + HRESULT hr;
EnterCriticalSection(&filter->csReceive);
- if (filter->pVideo_Pin) - { - if (SUCCEEDED(pin_hr = BaseOutputPinImpl_Active(&filter->pVideo_Pin->pin))) - hr = pin_hr; - } - if (filter->pAudio_Pin) - { - if (SUCCEEDED(pin_hr = BaseOutputPinImpl_Active(&filter->pAudio_Pin->pin))) - hr = pin_hr; - } + if (filter->pVideo_Pin && filter->pVideo_Pin->pin.pin.peer + && FAILED(hr = IMemAllocator_Commit(filter->pVideo_Pin->pin.pAllocator))) + ERR("Failed to commit video allocator, hr %#x.\n", hr); + if (filter->pAudio_Pin && filter->pAudio_Pin->pin.pin.peer + && FAILED(hr = IMemAllocator_Commit(filter->pAudio_Pin->pin.pAllocator))) + ERR("Failed to commit audio allocator, hr %#x.\n", hr); SetEvent(filter->runEvent);
LeaveCriticalSection(&filter->csReceive);
- return hr; + return S_OK; }
static HRESULT qt_splitter_cleanup_stream(struct strmbase_filter *iface) diff --git a/dlls/wineqtdecoder/qtvdecoder.c b/dlls/wineqtdecoder/qtvdecoder.c index a86cd432c22..0e17c067df5 100644 --- a/dlls/wineqtdecoder/qtvdecoder.c +++ b/dlls/wineqtdecoder/qtvdecoder.c @@ -561,16 +561,18 @@ static void video_decoder_destroy(struct strmbase_filter *iface)
static HRESULT video_decoder_init_stream(struct strmbase_filter *iface) { - QTVDecoderImpl *This = impl_from_strmbase_filter(iface); + QTVDecoderImpl *filter = impl_from_strmbase_filter(iface); + HRESULT hr;
OSErr err = noErr; ICMDecompressionSessionOptionsRef sessionOptions = NULL; ICMDecompressionTrackingCallbackRecord trackingCallbackRecord;
trackingCallbackRecord.decompressionTrackingCallback = trackingCallback; - trackingCallbackRecord.decompressionTrackingRefCon = (void*)This; + trackingCallbackRecord.decompressionTrackingRefCon = filter;
- err = ICMDecompressionSessionCreate(NULL, This->hImageDescription, sessionOptions, This->outputBufferAttributes, &trackingCallbackRecord, &This->decompressionSession); + err = ICMDecompressionSessionCreate(NULL, filter->hImageDescription, sessionOptions, + filter->outputBufferAttributes, &trackingCallbackRecord, &filter->decompressionSession);
if (err != noErr) { @@ -578,18 +580,24 @@ static HRESULT video_decoder_init_stream(struct strmbase_filter *iface) return E_FAIL; }
- return BaseOutputPinImpl_Active(&This->source); + if (filter->source.pin.peer && FAILED(hr = IMemAllocator_Commit(filter->source.pAllocator))) + ERR("Failed to commit allocator, hr %#x.\n", hr); + + return S_OK; }
static HRESULT video_decoder_cleanup_stream(struct strmbase_filter *iface) { - QTVDecoderImpl* This = impl_from_strmbase_filter(iface); + QTVDecoderImpl *filter = impl_from_strmbase_filter(iface); + + if (filter->decompressionSession) + ICMDecompressionSessionRelease(filter->decompressionSession); + filter->decompressionSession = NULL;
- if (This->decompressionSession) - ICMDecompressionSessionRelease(This->decompressionSession); - This->decompressionSession = NULL; + if (filter->source.pin.peer) + IMemAllocator_Decommit(filter->source.pAllocator);
- return BaseOutputPinImpl_Inactive(&This->source); + return S_OK; }
static const struct strmbase_filter_ops filter_ops =
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=81963
Your paranoid android.
=== w10pro64_ar (32 bit report) ===
quartz: videorenderer.c:1077: Test failed: Thread should block in Receive().
=== w10pro64_ar (64 bit report) ===
quartz: videorenderer.c:1087: Test failed: Got hr 0x80004005. videorenderer.c:2118: Test failed: Got unexpected status 0. videorenderer.c:2121: Test failed: Wait timed out. videorenderer.c:2129: Test failed: Got unexpected status 0x400040.
=== w10pro64_he (64 bit report) ===
quartz: videorenderer.c:2118: Test failed: Got unexpected status 0. videorenderer.c:2121: Test failed: Wait timed out. videorenderer.c:2129: Test failed: Got unexpected status 0x400040.
=== w10pro64_ja (64 bit report) ===
quartz: videorenderer.c:1077: Test failed: Thread should block in Receive().
=== w10pro64_ja (32 bit report) ===
quartz: vmr7.c:2108: Test failed: Got unexpected status 0. vmr7.c:2111: Test failed: Wait timed out. vmr7.c:2119: Test failed: Got unexpected status 0x400040.
=== w10pro64 (64 bit report) ===
quartz: vmr7.c:1185: Test failed: Got hr 0x40237. vmr7.c:1191: Test failed: Got hr 0x1.
=== w10pro64_ar (64 bit report) ===
quartz: vmr7.c:2108: Test failed: Got unexpected status 0. vmr7.c:2111: Test failed: Wait timed out. vmr7.c:2119: Test failed: Got unexpected status 0x400040.
=== w10pro64_he (64 bit report) ===
quartz: vmr7.c:1185: Test failed: Got hr 0x40237. vmr7.c:1191: Test failed: Got hr 0x1.
=== w10pro64_ja (64 bit report) ===
quartz: vmr7.c:2108: Test failed: Got unexpected status 0. vmr7.c:2111: Test failed: Wait timed out. vmr7.c:2119: Test failed: Got unexpected status 0x400040.
=== debiant (32 bit report) ===
quartz: dsoundrender.c:804: Test failed: Got hr 0x103.
=== debiant (32 bit French report) ===
quartz: dsoundrender.c:807: Test failed: Got hr 0x103.