qcap: Fix ICaptureGraphBuilder2::RenderStream test failures.
This commit is contained in:
parent
6702f44500
commit
5a69b888f7
|
@ -154,6 +154,8 @@ static const struct {
|
|||
filter_type filter_type;
|
||||
BOOL wine_missing;
|
||||
BOOL wine_extra;
|
||||
BOOL optional; /* fails on wine if missing */
|
||||
BOOL broken;
|
||||
} renderstream_cat_media[] = {
|
||||
{BASEFILTER_QUERYINTERFACE, SOURCE_FILTER},
|
||||
{BASEFILTER_ENUMPINS, SOURCE_FILTER},
|
||||
|
@ -189,15 +191,20 @@ static const struct {
|
|||
{PIN_QUERYPININFO, SOURCE_FILTER, TRUE},
|
||||
{KSPROPERTYSET_GET, SOURCE_FILTER, TRUE},
|
||||
{ENUMPINS_NEXT, SOURCE_FILTER, TRUE},
|
||||
{PIN_ENUMMEDIATYPES, SOURCE_FILTER, TRUE},
|
||||
{ENUMMEDIATYPES_NEXT, SOURCE_FILTER, TRUE},
|
||||
{PIN_ENUMMEDIATYPES, SOURCE_FILTER, TRUE, FALSE, TRUE},
|
||||
{ENUMMEDIATYPES_NEXT, SOURCE_FILTER, TRUE, FALSE, TRUE},
|
||||
{BASEFILTER_QUERYINTERFACE, SINK_FILTER, FALSE, TRUE},
|
||||
{BASEFILTER_ENUMPINS, SINK_FILTER},
|
||||
{ENUMPINS_NEXT, SINK_FILTER},
|
||||
{PIN_QUERYDIRECTION, SINK_FILTER},
|
||||
{PIN_CONNECTEDTO, SINK_FILTER},
|
||||
{GRAPHBUILDER_CONNECT, NOT_FILTER},
|
||||
{BASEFILTER_GETSTATE, SOURCE_FILTER, TRUE},
|
||||
{BASEFILTER_GETSTATE, SOURCE_FILTER, TRUE, FALSE, TRUE},
|
||||
{BASEFILTER_ENUMPINS, SOURCE_FILTER, FALSE, FALSE, FALSE, TRUE},
|
||||
{ENUMPINS_NEXT, SOURCE_FILTER, FALSE, FALSE, FALSE, TRUE},
|
||||
{PIN_QUERYDIRECTION, SOURCE_FILTER, FALSE, FALSE, FALSE, TRUE},
|
||||
{PIN_CONNECTEDTO, SOURCE_FILTER, FALSE, FALSE, FALSE, TRUE},
|
||||
{ENUMPINS_NEXT, SOURCE_FILTER, FALSE, FALSE, FALSE, TRUE},
|
||||
{END, NOT_FILTER}
|
||||
}, renderstream_intermediate[] = {
|
||||
{BASEFILTER_QUERYINTERFACE, SOURCE_FILTER},
|
||||
|
@ -234,8 +241,8 @@ static const struct {
|
|||
{PIN_QUERYPININFO, SOURCE_FILTER, TRUE},
|
||||
{KSPROPERTYSET_GET, SOURCE_FILTER, TRUE},
|
||||
{ENUMPINS_NEXT, SOURCE_FILTER, TRUE},
|
||||
{PIN_ENUMMEDIATYPES, SOURCE_FILTER, TRUE},
|
||||
{ENUMMEDIATYPES_NEXT, SOURCE_FILTER, TRUE},
|
||||
{PIN_ENUMMEDIATYPES, SOURCE_FILTER, TRUE, FALSE, TRUE},
|
||||
{ENUMMEDIATYPES_NEXT, SOURCE_FILTER, TRUE, FALSE, TRUE},
|
||||
{BASEFILTER_QUERYINTERFACE, SINK_FILTER, FALSE, TRUE},
|
||||
{BASEFILTER_ENUMPINS, SINK_FILTER},
|
||||
{ENUMPINS_NEXT, SINK_FILTER},
|
||||
|
@ -256,31 +263,56 @@ static const struct {
|
|||
{PIN_QUERYDIRECTION, INTERMEDIATE_FILTER},
|
||||
{PIN_CONNECTEDTO, INTERMEDIATE_FILTER},
|
||||
{GRAPHBUILDER_CONNECT, NOT_FILTER},
|
||||
{BASEFILTER_GETSTATE, SOURCE_FILTER, TRUE},
|
||||
{BASEFILTER_GETSTATE, SOURCE_FILTER, TRUE, FALSE, TRUE},
|
||||
{BASEFILTER_ENUMPINS, SOURCE_FILTER, FALSE, FALSE, FALSE, TRUE},
|
||||
{ENUMPINS_NEXT, SOURCE_FILTER, FALSE, FALSE, FALSE, TRUE},
|
||||
{PIN_QUERYDIRECTION, SOURCE_FILTER, FALSE, FALSE, FALSE, TRUE},
|
||||
{PIN_CONNECTEDTO, SOURCE_FILTER, FALSE, FALSE, FALSE, TRUE},
|
||||
{ENUMPINS_NEXT, SOURCE_FILTER, FALSE, FALSE, FALSE, TRUE},
|
||||
{END, NOT_FILTER}
|
||||
}, *current_calls_list;
|
||||
int call_no;
|
||||
|
||||
static void check_calls_list(const char *func, call_id id, filter_type type)
|
||||
{
|
||||
while(current_calls_list[call_no].wine_missing || current_calls_list[call_no].wine_extra) {
|
||||
while(current_calls_list[call_no].wine_missing || current_calls_list[call_no].wine_extra ||
|
||||
current_calls_list[call_no].optional || current_calls_list[call_no].broken) {
|
||||
if(current_calls_list[call_no].wine_missing) {
|
||||
todo_wine ok(current_calls_list[call_no].call_id == id && current_calls_list[call_no].filter_type == type,
|
||||
"missing call, got %s(%d), expected %d\n", func, id, current_calls_list[call_no].call_id);
|
||||
todo_wine ok((current_calls_list[call_no].call_id == id && current_calls_list[call_no].filter_type == type) ||
|
||||
broken(current_calls_list[call_no].optional && (current_calls_list[call_no].call_id != id ||
|
||||
current_calls_list[call_no].filter_type != type)),
|
||||
"missing call, got %s(%d), expected %d (%d)\n", func, id, current_calls_list[call_no].call_id, call_no);
|
||||
|
||||
if(current_calls_list[call_no].call_id != id || current_calls_list[call_no].filter_type != type)
|
||||
call_no++;
|
||||
else
|
||||
break;
|
||||
}else {
|
||||
}else if(current_calls_list[call_no].wine_extra) {
|
||||
todo_wine ok(current_calls_list[call_no].call_id != id || current_calls_list[call_no].filter_type != type,
|
||||
"extra call, got %s(%d)\n", func, id);
|
||||
"extra call, got %s(%d) (%d)\n", func, id, call_no);
|
||||
|
||||
if(current_calls_list[call_no].call_id == id && current_calls_list[call_no].filter_type == type) {
|
||||
call_no++;
|
||||
return;
|
||||
}
|
||||
call_no++;
|
||||
}else if(current_calls_list[call_no].optional) {
|
||||
ok((current_calls_list[call_no].call_id == id && current_calls_list[call_no].filter_type == type) ||
|
||||
broken(current_calls_list[call_no].call_id != id || current_calls_list[call_no].filter_type != type),
|
||||
"unexpected call: %s on %s (%d)\n", func, debugstr_filter_type(type), call_no);
|
||||
|
||||
if(current_calls_list[call_no].call_id != id || current_calls_list[call_no].filter_type != type)
|
||||
call_no++;
|
||||
else
|
||||
break;
|
||||
}else if(current_calls_list[call_no].broken) {
|
||||
ok(broken(current_calls_list[call_no].call_id == id && current_calls_list[call_no].filter_type == type) ||
|
||||
(current_calls_list[call_no].call_id != id || current_calls_list[call_no].filter_type != type),
|
||||
"unexpected call: %s on %s (%d)\n", func, debugstr_filter_type(type), call_no);
|
||||
|
||||
if(current_calls_list[call_no].call_id == id && current_calls_list[call_no].filter_type == type)
|
||||
break;
|
||||
call_no++;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue