quartz: Check for IMediaPosition when counting renderers.
The new test failures are expected since the renderers are now actually considered renderers by the filter graph. Signed-off-by: Anton Baskanov <baskanov@gmail.com> Signed-off-by: Zebediah Figura <zfigura@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
926a5c778e
commit
2ad44002da
|
@ -565,6 +565,7 @@ static void update_seeking(struct filter *filter)
|
|||
|
||||
static BOOL is_renderer(struct filter *filter)
|
||||
{
|
||||
IMediaPosition *media_position;
|
||||
IAMFilterMiscFlags *flags;
|
||||
BOOL ret = FALSE;
|
||||
|
||||
|
@ -574,6 +575,12 @@ static BOOL is_renderer(struct filter *filter)
|
|||
ret = TRUE;
|
||||
IAMFilterMiscFlags_Release(flags);
|
||||
}
|
||||
else if (SUCCEEDED(IBaseFilter_QueryInterface(filter->filter, &IID_IMediaPosition, (void **)&media_position)))
|
||||
{
|
||||
if (!has_output_pins(filter->filter))
|
||||
ret = TRUE;
|
||||
IMediaPosition_Release(media_position);
|
||||
}
|
||||
else
|
||||
{
|
||||
update_seeking(filter);
|
||||
|
|
|
@ -920,7 +920,7 @@ static void test_eos(IPin *pin, IMemInputPin *input, IMediaControl *control)
|
|||
hr = IMediaControl_GetState(control, 1000, &state);
|
||||
ok(hr == S_OK, "Got hr %#x.\n", hr);
|
||||
ret = check_ec_complete(eventsrc, 0);
|
||||
ok(!ret, "Got unexpected EC_COMPLETE.\n");
|
||||
todo_wine ok(!ret, "Got unexpected EC_COMPLETE.\n");
|
||||
|
||||
hr = send_frame(input);
|
||||
todo_wine ok(hr == VFW_E_SAMPLE_REJECTED_EOS, "Got hr %#x.\n", hr);
|
||||
|
@ -952,7 +952,7 @@ static void test_eos(IPin *pin, IMemInputPin *input, IMediaControl *control)
|
|||
hr = IPin_EndOfStream(pin);
|
||||
ok(hr == S_OK, "Got hr %#x.\n", hr);
|
||||
ret = check_ec_complete(eventsrc, 0);
|
||||
ok(!ret, "Got unexpected EC_COMPLETE.\n");
|
||||
todo_wine ok(!ret, "Got unexpected EC_COMPLETE.\n");
|
||||
ret = check_ec_complete(eventsrc, 2000);
|
||||
todo_wine ok(ret == 1, "Expected EC_COMPLETE.\n");
|
||||
|
||||
|
@ -978,7 +978,7 @@ static void test_eos(IPin *pin, IMemInputPin *input, IMediaControl *control)
|
|||
hr = IMediaControl_Stop(control);
|
||||
ok(hr == S_OK, "Got hr %#x.\n", hr);
|
||||
ret = check_ec_complete(eventsrc, 0);
|
||||
ok(!ret, "Got unexpected EC_COMPLETE.\n");
|
||||
todo_wine ok(!ret, "Got unexpected EC_COMPLETE.\n");
|
||||
|
||||
/* Test sending EOS and then flushing or stopping. */
|
||||
|
||||
|
@ -996,7 +996,7 @@ static void test_eos(IPin *pin, IMemInputPin *input, IMediaControl *control)
|
|||
hr = IPin_EndOfStream(pin);
|
||||
ok(hr == S_OK, "Got hr %#x.\n", hr);
|
||||
ret = check_ec_complete(eventsrc, 0);
|
||||
ok(!ret, "Got unexpected EC_COMPLETE.\n");
|
||||
todo_wine ok(!ret, "Got unexpected EC_COMPLETE.\n");
|
||||
|
||||
hr = IPin_BeginFlush(pin);
|
||||
ok(hr == S_OK, "Got hr %#x.\n", hr);
|
||||
|
|
|
@ -4154,7 +4154,7 @@ static void test_ec_complete(void)
|
|||
IFilterGraph2_AddFilter(graph, &filter1.IBaseFilter_iface, NULL);
|
||||
|
||||
hr = check_ec_complete(graph, &filter1.IBaseFilter_iface);
|
||||
todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr);
|
||||
ok(hr == S_OK, "Got hr %#x.\n", hr);
|
||||
|
||||
IFilterGraph2_RemoveFilter(graph, &filter1.IBaseFilter_iface);
|
||||
|
||||
|
@ -4174,7 +4174,7 @@ static void test_ec_complete(void)
|
|||
IFilterGraph2_AddFilter(graph, &filter1.IBaseFilter_iface, NULL);
|
||||
|
||||
hr = check_ec_complete(graph, &filter1.IBaseFilter_iface);
|
||||
todo_wine ok(hr == S_OK, "Got hr %#x.\n", hr);
|
||||
ok(hr == S_OK, "Got hr %#x.\n", hr);
|
||||
|
||||
IMediaControl_Release(control);
|
||||
IMediaEvent_Release(eventsrc);
|
||||
|
|
|
@ -1143,7 +1143,7 @@ static void test_eos(IPin *pin, IMemInputPin *input, IMediaControl *control)
|
|||
hr = IMediaControl_GetState(control, 1000, &state);
|
||||
ok(hr == S_OK, "Got hr %#x.\n", hr);
|
||||
ret = check_ec_complete(eventsrc, 0);
|
||||
ok(!ret, "Got unexpected EC_COMPLETE.\n");
|
||||
todo_wine ok(!ret, "Got unexpected EC_COMPLETE.\n");
|
||||
|
||||
hr = join_thread(send_frame(input));
|
||||
todo_wine ok(hr == E_UNEXPECTED, "Got hr %#x.\n", hr);
|
||||
|
@ -1173,7 +1173,7 @@ static void test_eos(IPin *pin, IMemInputPin *input, IMediaControl *control)
|
|||
hr = IPin_EndOfStream(pin);
|
||||
ok(hr == S_OK, "Got hr %#x.\n", hr);
|
||||
ret = check_ec_complete(eventsrc, 0);
|
||||
ok(!ret, "Got unexpected EC_COMPLETE.\n");
|
||||
todo_wine ok(!ret, "Got unexpected EC_COMPLETE.\n");
|
||||
ret = check_ec_complete(eventsrc, 1600);
|
||||
todo_wine ok(ret == 1, "Expected EC_COMPLETE.\n");
|
||||
|
||||
|
@ -1199,7 +1199,7 @@ static void test_eos(IPin *pin, IMemInputPin *input, IMediaControl *control)
|
|||
hr = IMediaControl_Stop(control);
|
||||
ok(hr == S_OK, "Got hr %#x.\n", hr);
|
||||
ret = check_ec_complete(eventsrc, 0);
|
||||
ok(!ret, "Got unexpected EC_COMPLETE.\n");
|
||||
todo_wine ok(!ret, "Got unexpected EC_COMPLETE.\n");
|
||||
|
||||
/* Test sending EOS and then flushing or stopping. */
|
||||
|
||||
|
@ -1213,7 +1213,7 @@ static void test_eos(IPin *pin, IMemInputPin *input, IMediaControl *control)
|
|||
hr = IPin_EndOfStream(pin);
|
||||
ok(hr == S_OK, "Got hr %#x.\n", hr);
|
||||
ret = check_ec_complete(eventsrc, 0);
|
||||
ok(!ret, "Got unexpected EC_COMPLETE.\n");
|
||||
todo_wine ok(!ret, "Got unexpected EC_COMPLETE.\n");
|
||||
|
||||
hr = IPin_BeginFlush(pin);
|
||||
ok(hr == S_OK, "Got hr %#x.\n", hr);
|
||||
|
|
Loading…
Reference in New Issue