No pins on AVStream crossbar filter?

I have an AVStream driver for a video capture card which is working
fine. The client now wants to be able to select which video input
(composite or S-Video) gets fed to the capture pin. So, using the
Europa sample as a model, I implemented a crossbar filter with two input
pins (composite and SVideo) and an output pin. Then I added an input
pin on the existing filter, with the media type matching the crossbar
output.

When I add my crossbar filter (in GraphEdt), the filter is there, but no
pins appear (all I get is a box with no pins). The weird thing is that
in the “Insert Filter” dialog, the pins *do* show up underneath the filter.

I’ve double- and triple-checked the pin descriptors, the filter
definition, and the media types, and the INF file which registers
everything. Clearly I’m missing something; can anyone suggest where I
should look next (or what I need to quadruple-check)?

Cheers,

– mkj


//
// Michael K. Jones
// Stone Hill Consulting, LLC
// http://www.stonehill.com
//_______________________________________________

I don’t know what you might have omitted or missed but I suggest you try
using KSStudio as an alternate tool to explore the problem. I have found
that it is quite handy at revealing details about a filters and provides
much better error reporting when stuff goes wrong. Perhaps it will help you
find the issue.

-dave

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Michael Jones
Sent: Sunday, July 29, 2007 9:26 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] No pins on AVStream crossbar filter?

I have an AVStream driver for a video capture card which is working fine.
The client now wants to be able to select which video input (composite or
S-Video) gets fed to the capture pin. So, using the Europa sample as a
model, I implemented a crossbar filter with two input pins (composite and
SVideo) and an output pin. Then I added an input pin on the existing
filter, with the media type matching the crossbar output.

When I add my crossbar filter (in GraphEdt), the filter is there, but no
pins appear (all I get is a box with no pins). The weird thing is that in
the “Insert Filter” dialog, the pins *do* show up underneath the filter.

I’ve double- and triple-checked the pin descriptors, the filter definition,
and the media types, and the INF file which registers everything. Clearly
I’m missing something; can anyone suggest where I should look next (or what
I need to quadruple-check)?

Cheers,

– mkj


//
// Michael K. Jones
// Stone Hill Consulting, LLC
// http://www.stonehill.com
//_______________________________________________


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer

Thanks for the suggestion. I did spend some time with it last night
after posting. The pins do appear when I instantiate the filter, but
they show 0 for number of instances necessary (whereas I set them all to
1 in the descriptor). So that’s a puzzle.

It also complains that I don’t have an intersect handler, which is true;
neither does the sample in the DDK. Probably that’s just KSStudio being
a little whiney, but maybe not?

Apart from those two things, everything else looks good.

–mkj

David R. Cattley wrote:

I don’t know what you might have omitted or missed but I suggest you try
using KSStudio as an alternate tool to explore the problem. I have found
that it is quite handy at revealing details about a filters and provides
much better error reporting when stuff goes wrong. Perhaps it will help you
find the issue.

-dave

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Michael Jones
Sent: Sunday, July 29, 2007 9:26 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] No pins on AVStream crossbar filter?

I have an AVStream driver for a video capture card which is working fine.
The client now wants to be able to select which video input (composite or
S-Video) gets fed to the capture pin. So, using the Europa sample as a
model, I implemented a crossbar filter with two input pins (composite and
SVideo) and an output pin. Then I added an input pin on the existing
filter, with the media type matching the crossbar output.

When I add my crossbar filter (in GraphEdt), the filter is there, but no
pins appear (all I get is a box with no pins). The weird thing is that in
the “Insert Filter” dialog, the pins *do* show up underneath the filter.

I’ve double- and triple-checked the pin descriptors, the filter definition,
and the media types, and the INF file which registers everything. Clearly
I’m missing something; can anyone suggest where I should look next (or what
I need to quadruple-check)?

Cheers,

– mkj


//
// Michael K. Jones
// Stone Hill Consulting, LLC
// http://www.stonehill.com
//_______________________________________________


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer


//
// Michael K. Jones
// Stone Hill Consulting, LLC
// http://www.stonehill.com
//_______________________________________________

Have you implemented PROPSETID_VIDCAP_CROSSBAR? I didn’t see pins on the
filter graph (in GraphEdit) until I added the automation table.

Stan Mitchell
SourceQuest, Inc.

Yes, I did; or so I thought. The interface does show up in KSStudio,
but all of the properties are crossed out. Clearly, it doesn’t like
something I’ve done (or not done). I’m currently comparing my code with
the Europa crossbar sample from DDK 3790.1830.

Cheers,

–mkj

Stan Mitchell wrote:

Have you implemented PROPSETID_VIDCAP_CROSSBAR? I didn’t see pins on the
filter graph (in GraphEdit) until I added the automation table.

Stan Mitchell
SourceQuest, Inc.


//
// Michael K. Jones
// Stone Hill Consulting, LLC
// http://www.stonehill.com
//_______________________________________________

Hmm; in my INF, I don’t include bda.inf, and so I don’t have a
“NEEDS=BDA.Registration, BDA.Installation, BDACAP.Installation” line. I
assumed I didn’t need these since I was only doing crossbar filter, not
a full BDA thing. Was that a valid assumption? Is there something in
the BDA INF that is needed for crossbar support?

–mkj

Michael Jones wrote:

I have an AVStream driver for a video capture card which is working
fine. The client now wants to be able to select which video input
(composite or S-Video) gets fed to the capture pin. So, using the
Europa sample as a model, I implemented a crossbar filter with two input
pins (composite and SVideo) and an output pin. Then I added an input
pin on the existing filter, with the media type matching the crossbar
output.

When I add my crossbar filter (in GraphEdt), the filter is there, but no
pins appear (all I get is a box with no pins). The weird thing is that
in the “Insert Filter” dialog, the pins *do* show up underneath the filter.

I’ve double- and triple-checked the pin descriptors, the filter
definition, and the media types, and the INF file which registers
everything. Clearly I’m missing something; can anyone suggest where I
should look next (or what I need to quadruple-check)?

Cheers,

– mkj


//
// Michael K. Jones
// Stone Hill Consulting, LLC
// http://www.stonehill.com
//_______________________________________________


//
// Michael K. Jones
// Stone Hill Consulting, LLC
// http://www.stonehill.com
//_______________________________________________

DOH! I had sizeof(PKSPROPERTY_CROSSBAR_CAPS_S) instead of
KSPROPERTY_CROSSBAR_CAPS_S in the KSPROPERTY_ITEM (and similarly for all
of the properties). Makes all the difference…

Cheers,

–mkj

Michael Jones wrote:

I have an AVStream driver for a video capture card which is working
fine. The client now wants to be able to select which video input
(composite or S-Video) gets fed to the capture pin. So, using the
Europa sample as a model, I implemented a crossbar filter with two input
pins (composite and SVideo) and an output pin. Then I added an input
pin on the existing filter, with the media type matching the crossbar
output.

When I add my crossbar filter (in GraphEdt), the filter is there, but no
pins appear (all I get is a box with no pins). The weird thing is that
in the “Insert Filter” dialog, the pins *do* show up underneath the filter.

I’ve double- and triple-checked the pin descriptors, the filter
definition, and the media types, and the INF file which registers
everything. Clearly I’m missing something; can anyone suggest where I
should look next (or what I need to quadruple-check)?

Cheers,

– mkj


//
// Michael K. Jones
// Stone Hill Consulting, LLC
// http://www.stonehill.com
//_______________________________________________


//
// Michael K. Jones
// Stone Hill Consulting, LLC
// http://www.stonehill.com
//_______________________________________________