I am writing a wdm video capture driver that streams RGB24 video frames, and
it should support the following frame sizes: 160x120, 320x240 and 640x480.
How/where do I tell the user application that the driver supports those -
and only those - frame sizes?
Currently I know how to define the smallest frame size - 160x120 - and the
largest frame size - 640x480.
The AmCap application then lets the user choose from several output sizes in
that range: 160x120, 176x144, 240x176, 240x180,…,640x480.
Is it possible to somewhere define that I only support the above three frame
sizes so that AmCap and other applications only displays those choices to
the user?
When receiving an open stream request for any of the nonsupported frame
sizes I currently responds with STATUS_INVALID_PARAMETER. Is this the
best/only way to handle this?
Thanks,
Johan
Hitta rätt på nätet med MSN Sök http://search.msn.se/
Hi!
How/where do I tell the user application that the driver supports those -
and only those - frame sizes?
Check out the following fields of KS_VIDEO_STREAM_CONFIG_CAPS
(this is a part of KS_DATARANGE_VIDEO):
MinOutputSize;
MaxOutputSize;
OutputGranularityX;
OutputGranularityY;
S.Y.
Igor
>>How/where do I tell the user application that the driver supports those -
>and only those - frame sizes?
Check out the following fields of KS_VIDEO_STREAM_CONFIG_CAPS
(this is a part of KS_DATARANGE_VIDEO):
MinOutputSize;
MaxOutputSize;
OutputGranularityX;
OutputGranularityY;
Thanks Igor 
I want to support 80x60, 160x120, 320x240 and 640x480.
I now have
MinOutPutSize = 80x60
MaxOutPutSize = 640x480
OutputGranularityX = 80
OutPutGranularityY = 60
which in AMCap results in the following user choices:
80x60,160x120, 240x180,320x240, 640x240 and 640x480.
Seems there is no way to let the user choose only from the four sizes that I
actually want to support?
How are you handling this in your driver? Are you supporting every frame
size that can be constructed by the outputsize and granularity parameters
you provide or do you perhaps return STATUS_INVALID_PARAMETER for the ones
you do not actually support? (The latter choice is perhaps not all that
pretty though…)
Btw, did you start writing your video capture driver from scratch or did you
perhaps use the testcap sample? If so, are you using all the parts of it or
did you remove any of the functionality successfully ( crossbar, tvaudio,
tvtuner)?
Thanks again,
Johan
Chat: Ha en fest på Habbo Hotel
http://habbohotel.msn.se/habbo/sv/channelizer Checka in här!
Hi, again!
IMHO there are three ways:
- Use OutputGranularityX, OutputGranularityY.
- Define more mediatypes (one for 640X480, another for 320X240, etc.)
- Return STATUS_DEVICE_INVALID_REQUEST in Pin Intersect hanlder (I’m
talking about AVStream model) if you are unable to use this format.
For reference please find out free bt848 drivers (I’m not sure but try
www.sourceforge.net).
Btw, did you start writing your video capture driver from scratch or did
you
perhaps use the testcap sample?
I was studying avshws sample driver about a month (since I had had to
complete some other pending jobs). I’ve found that I had have to write my
own driver since we have different
hardware model.
S.Y.
Igor
>IMHO there are three ways:
- Use OutputGranularityX, OutputGranularityY.
- Define more mediatypes (one for 640X480, another for 320X240, etc.)
- Return STATUS_DEVICE_INVALID_REQUEST in Pin Intersect hanlder (I’m
talking about AVStream model) if you are unable to use this format.
No 2 seems the best way to do handle if it can be used seamlessly by all
applications.
Thanks,
Johan
Hitta rätt på nätet med MSN Sök http://search.msn.se/