Skip to content

Resolution of WebCam #1

@chris-evans

Description

@chris-evans

Hi Sam,

I have found this code sample / library really useful, but have been struggling to add one feature to the code base. I am trying to add support for detecting resolutions supported by the WebCam. I have some code previously that was leveraging DirectShowLib, but I much prefer the simplicity of this code base (I feel like I can understand it). Any ideas/thoughts would be greatly appreciated.

Code Sample:: so after getting the capture pin from the output filter... I am calling the below method I wrote. All looks good, but the data I get back from GetNumberOfCapabilities makes no sense. capabilitiesCount is random (but huge) and capabilitiesResultStructureSize is zero. Also, GetStreamCaps throws a memory error.
private void SelectWebcamResolution(IPin sourcePin)
{
var cfg = sourcePin as IAMStreamConfig;

int capsCount = 0;
int capsStructSize = 0;
var result = cfg.GetNumberOfCapabilities(out capsCount, out capsStructSize);

if (result == 0 && capabilitiesResultStructureSize > 0)
{
    var ptr = Marshal.AllocCoTaskMem(capabilitiesResultStructureSize);
    try
    {
        for (int i = 0; i != capabilitiesCount; ++i)
        {
            AMMediaType capabilityInfo = null;
            result = cfg.GetStreamCaps(0, out capabilityInfo, ptr); // this throws mem error
        }
    }
    finally
    { Marshal.Release(ptr); }
}

}

Thanks in advance,
Chris Evans

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions