rahul_r_jadhav
asked on
How to write a WebCam application using Directshow to preview and capture in portrait and landscape mode?
I have written an application using C Plus Plus and DirectShow that can preview and capture images in landscape mode. I dont know how to change the mode from landscape to portrait. So the application can do preview and capture for resolutions such as 800x600 or 1200x900. But what I need is, the application should also be able to do preview and capture for resolutions such as 900x1200 or 600x800. We thought of rotating the stream by 90 degrees but it isn't actually a solution.
I tried to find the solution over net but unsuccessful. I think the Camera in itself need to support the portrait resolutions such as 900x1200 along with the landscape resolutions but I could not find a justifying referece to confirm it.
Any help in this issue is highly appreciated.
I tried to find the solution over net but unsuccessful. I think the Camera in itself need to support the portrait resolutions such as 900x1200 along with the landscape resolutions but I could not find a justifying referece to confirm it.
Any help in this issue is highly appreciated.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
This may help a bit...
http://msdn.microsoft.com/en-us/library/dd407324(VS.85).aspx
I also found these pages extremely helpful when I was doing some webcam development, but I am not sure if you will be able to find too much on resolutions in there. I think you can enumerate some resolutions you want if you use the first link. It is up to the camera/driver to agree or not though, you can only request what you want, but it has the final word.
http://msdn.microsoft.com/en-us/library/dd407331(VS.85).aspx
http://msdn.microsoft.com/en-us/library/dd407324(VS.85).aspx
I also found these pages extremely helpful when I was doing some webcam development, but I am not sure if you will be able to find too much on resolutions in there. I think you can enumerate some resolutions you want if you use the first link. It is up to the camera/driver to agree or not though, you can only request what you want, but it has the final word.
http://msdn.microsoft.com/en-us/library/dd407331(VS.85).aspx
ASKER
Hi!!
Thanks for your time. I have done all these coding such as - getting the capabilities/ resolutions etc. Other things are working fine, there is no issue in that. Cropping, I dont think will really help. You said "If your camera does not support the resolution you want, you will not be able to get that resolution for your camera stream directly.". My understanding is also same. I think if camera doesnt support it, whatever you do in filter graph etc you can not get portrait mode. But my difficulty is that I could not find any proof that will proove this point. By any chance have you come accross any such statement.
Thanks for your time. I have done all these coding such as - getting the capabilities/ resolutions etc. Other things are working fine, there is no issue in that. Cropping, I dont think will really help. You said "If your camera does not support the resolution you want, you will not be able to get that resolution for your camera stream directly.". My understanding is also same. I think if camera doesnt support it, whatever you do in filter graph etc you can not get portrait mode. But my difficulty is that I could not find any proof that will proove this point. By any chance have you come accross any such statement.
I do not have any proof, other than my own experiences.
ASKER
Hi HalfAsleep,
Still thanks for your time and help.
Still thanks for your time and help.
No problem ;) That is what this is all about, helping each other.
I feel I have answered the question fairly well, although I could not give extensive "proof" other than my experiences. Since noone else have contributed, I feel I should at least get some credit, and my links and code will be helpful for others looking for the same issues regarding webcam development.
Open in new window