Не могу заставить IAMStreamConfig.SetFormat () работать с LifeCam Studio

Я новичок в DirectShow и работаю над добавлением видеопотока в свое приложение. Я посмотрел на многие решения там (TouchLess, DirectShow.net и т. Д.) И в итоге пошел с этимнебольшой проект на Code Project В этом нет ничего особенного, поэтому я выбрал его; Я хотел, чтобы с ним работала небольшая база кода, так как мне нужно быстро реализовать эту функцию.

После насыщенного дня чтения, экспериментов и отладки у меня наконец-то все заработало. Есть задержка, которая является обломом, но я могу беспокоиться об этом позже. На данный момент у меня есть проблема в том, чтокамера способна на 1280х720 и я хочу использовать это разрешение. Тем не менее, он, похоже, решил захватить в 640x480. По мере того, как я копал все глубже и глубже, изучая, как установить разрешение, я, наконец, подумал, что понял его. Я также нашел код на этой странице проекта кода в комментариях, которые я использовал в качестве основы.

После 6 часов попыток я не могу заставить эту камеру изменить свое разрешение. Я не получаю никаких ошибок, и HRESULT, возвращенный из SetFormat (), равен 0, но камера не изменит разрешение.

Слишком много кода, чтобы вставить все, но я хотел бы включить раздел, который строит график, так как я думаю, что именно в этом проблема.

Вот код, который устанавливает график

void CameraMethods::StartCamera(int camIndex, interior_ptr<int> width, 
    interior_ptr<int> height)
{
    if (g_pGraphBuilder != NULL)
        throw gcnew ArgumentException("Graph Builder was null");

    IMoniker *pMoniker = GetMoniker(camIndex);
    pMoniker->AddRef();

    HRESULT hr = S_OK;

    // Build all the necessary interfaces to start the capture
    if (SUCCEEDED(hr))
    {
        hr = CoCreateInstance(CLSID_FilterGraph,
            NULL,
            CLSCTX_INPROC,
            IID_IGraphBuilder,
            (LPVOID*)&g_pGraphBuilder);
    }

    if (SUCCEEDED(hr))
        hr = g_pGraphBuilder->QueryInterface(IID_IMediaControl, (LPVOID*)&g_pMediaControl);

    if (SUCCEEDED(hr))
    {
        hr = CoCreateInstance(CLSID_CaptureGraphBuilder2,
            NULL,
            CLSCTX_INPROC,
            IID_ICaptureGraphBuilder2,
            (LPVOID*)&g_pCaptureGraphBuilder);
    }

    // Setup the filter graph
    if (SUCCEEDED(hr))
        hr = g_pCaptureGraphBuilder->SetFiltergraph(g_pGraphBuilder);

    // Build the camera from the moniker
    if (SUCCEEDED(hr))
        hr = pMoniker->BindToObject(NULL, NULL, IID_IBaseFilter, (LPVOID*)&g_pIBaseFilterCam);

    // Add the camera to the filter graph
    if (SUCCEEDED(hr))
        hr = g_pGraphBuilder->AddFilter(g_pIBaseFilterCam, L"WebCam");

    // Create a SampleGrabber
    if (SUCCEEDED(hr))
        hr = CoCreateInstance(CLSID_SampleGrabber, NULL, CLSCTX_INPROC_SERVER, IID_IBaseFilter, 
            (void**)&g_pIBaseFilterSampleGrabber);

    // Configure the Sample Grabber
    if (SUCCEEDED(hr))
        hr = ConfigureSampleGrabber(g_pIBaseFilterSampleGrabber);

    //  Set the resolution - I have NO idea where this should be executed
    SetCaptureFormat(camIndex, *width, *height);

    // Add Sample Grabber to the filter graph
    if (SUCCEEDED(hr))
        hr = g_pGraphBuilder->AddFilter(g_pIBaseFilterSampleGrabber, L"SampleGrabber");

    // Create the NullRender
    if (SUCCEEDED(hr))
        hr = CoCreateInstance(CLSID_NullRenderer, NULL, CLSCTX_INPROC_SERVER, IID_IBaseFilter, 
            (void**)&g_pIBaseFilterNullRenderer);

    // Add the Null Render to the filter graph
    if (SUCCEEDED(hr))
        hr = g_pGraphBuilder->AddFilter(g_pIBaseFilterNullRenderer, L"NullRenderer");

    // Configure the render stream
    if (SUCCEEDED(hr))
        hr = g_pCaptureGraphBuilder->RenderStream(&PIN_CATEGORY_CAPTURE, &MEDIATYPE_Video, 
            g_pIBaseFilterCam, g_pIBaseFilterSampleGrabber, g_pIBaseFilterNullRenderer);

    // Grab the capture width and height
    if (SUCCEEDED(hr))
    {
        ISampleGrabber* pGrabber = NULL;
        hr = g_pIBaseFilterSampleGrabber->QueryInterface(IID_ISampleGrabber, (LPVOID*)&pGrabber);
        if (SUCCEEDED(hr))
        {
            AM_MEDIA_TYPE mt;
            hr = pGrabber->GetConnectedMediaType(&mt);
            if (SUCCEEDED(hr))
            {
                VIDEOINFOHEADER *pVih;
                if ((mt.formattype == FORMAT_VideoInfo) &&
                    (mt.cbFormat >= sizeof(VIDEOINFOHEADER)) &&
                    (mt.pbFormat != NULL) )
                {
                    pVih = (VIDEOINFOHEADER*)mt.pbFormat;
                    *width = pVih->bmiHeader.biWidth;
                    *height = pVih->bmiHeader.biHeight;
                }
                else
                {
                    hr = E_FAIL;  // Wrong format
                }

                // FreeMediaType(mt); (from MSDN)
                if (mt.cbFormat != 0)
                {
                    CoTaskMemFree((PVOID)mt.pbFormat);
                    mt.cbFormat = 0;
                    mt.pbFormat = NULL;
                }
                if (mt.pUnk != NULL)
                {
                    // Unecessary because pUnk should not be used, but safest.
                    mt.pUnk->Release();
                    mt.pUnk = NULL;
                }
            }
        }

        if (pGrabber != NULL)
        {
            pGrabber->Release();
            pGrabber = NULL;
        }
    }

    // Start the capture
    if (SUCCEEDED(hr))
        hr = g_pMediaControl->Run();

    // If init fails then ensure that you cleanup
    if (FAILED(hr))
        StopCamera();
    else
        hr = S_OK;  // Make sure we return S_OK for success

    // Cleanup
    if (pMoniker != NULL)
    {
        pMoniker->Release();
        pMoniker = NULL;
    }

    if (SUCCEEDED(hr))
        this->activeCameraIndex = camIndex;
    else
        throw gcnew COMException("Error Starting Camera", hr);
}

[ОБНОВЛЕНИЕ] Добавлен метод ConfigureSampleGrabber () ниже

HRESULT CameraMethods::ConfigureSampleGrabber(IBaseFilter *pIBaseFilter)
{
    HRESULT hr = S_OK;
    ISampleGrabber *pGrabber = NULL;

    hr = pIBaseFilter->QueryInterface(IID_ISampleGrabber, (void**)&pGrabber);
    if (SUCCEEDED(hr))
    {
        AM_MEDIA_TYPE mt;
        ZeroMemory(&mt, sizeof(AM_MEDIA_TYPE));
        mt.majortype = MEDIATYPE_Video;
        mt.subtype = MEDIASUBTYPE_RGB24;
        mt.formattype = FORMAT_VideoInfo;
        hr = pGrabber->SetMediaType(&mt);
    }

    if (SUCCEEDED(hr))
        hr = pGrabber->SetCallback(new SampleGrabberCB(), 1);

    if (pGrabber != NULL)
    {
        pGrabber->Release();
        pGrabber = NULL;
    }

    return hr;
}

Это в значительной степени точный код из исходного кода CodeProject. Затем я добавил этот метод, чтобы установить разрешение:

void CameraMethods::SetCaptureFormat(int camIndex, int width, int height)
{
    HRESULT hr = S_OK;
    IMoniker* pMoniker = GetMoniker(camIndex);

    IBaseFilter* pCap;
    hr=pMoniker->BindToObject(0,0,IID_IBaseFilter,(void **)&pCap);

    if(!SUCCEEDED(hr))
        return;

    IAMStreamConfig *pConfig = NULL;

    if(g_pCaptureGraphBuilder == NULL)  // no CaptureGraphBuilder initialised
        return;

    hr = g_pCaptureGraphBuilder->FindInterface(
        &PIN_CATEGORY_CAPTURE, // Preview pin.
        0,    // Any media type.
        pCap, // Pointer to the capture filter.
        IID_IAMStreamConfig, (void**)&pConfig);

    if(!SUCCEEDED(hr))
        return;

    int iCount = 0, iSize = 0;
    hr = pConfig->GetNumberOfCapabilities(&iCount, &iSize);

    // Check the size to make sure we pass in the correct structure.
    if (iSize == sizeof(VIDEO_STREAM_CONFIG_CAPS)) {

        // Use the video capabilities structure.
        for (int iFormat = 0; iFormat < iCount; iFormat++)
        {
            VIDEO_STREAM_CONFIG_CAPS scc;
            AM_MEDIA_TYPE *pmt;
            /* Note:  Use of the VIDEO_STREAM_CONFIG_CAPS structure to configure a video device is 
            deprecated. Although the caller must allocate the buffer, it should ignore the 
            contents after the method returns. The capture device will return its supported 
            formats through the pmt parameter. */
            hr = pConfig->GetStreamCaps(iFormat, &pmt, (BYTE*)&scc);
            if (SUCCEEDED(hr))
            {
                /* Examine the format, and possibly use it. */
                if (pmt->formattype == FORMAT_VideoInfo) {
                    // Check the buffer size.
                    if (pmt->cbFormat >= sizeof(VIDEOINFOHEADER))
                    {
                        VIDEOINFOHEADER *pVih =  reinterpret_cast<VIDEOINFOHEADER*>(pmt->pbFormat);
                        BITMAPINFOHEADER *bmiHeader = &pVih->bmiHeader;

                        /* Access VIDEOINFOHEADER members through pVih. */
                        if( bmiHeader->biWidth == width && bmiHeader->biHeight == height && 
                            bmiHeader->biBitCount == 24)
                        {
                            hr = pConfig->SetFormat(pmt);
                        }
                    }
                }

                // Delete the media type when you are done.
                DeleteMediaType(pmt);
            }
        }
    }
}

Я прошел по коду и проверил, что вызов SetFormat () выполнен и возвращает правильный HRESULT. Никаких изменений в захваченных кадрах все же.

Без сообщений об ошибках трудно понять, с чего начать. Я надеюсь, что есть некоторые эксперты DirectShow, которые увидят проблему, я даже был бы доволен хорошим старомодным снисхождением "Ну да, как вы ожидаете, что камера изменит размер кадра, как только буфер будет выделен на стек фильтров и виджет инициализируется в foobar! Pft ... lol ";)

Научи меня, о Боже DirectShow / COM!

[ОБНОВЛЕНИЕ № 2] (К вашему сведению, странно, что мы не можем просто добавить новое сообщение в эту систему и должны отредактировать оригинал следующим образом)

По предложению Романа я использовал GraphStudio, чтобы заглянуть под капот моего графика. Я признаю, что я все еще не понимаю, на что именно я смотрю. Я нашел функцию «текстовый отчет» и подумал, что было бы полезно опубликовать этот отчет здесь, если он показывает некоторую ценную информацию.

--------------------------------------------------
  Filters
--------------------------------------------------
  1. Smart Tee
  2. MJPEG Decompressor
  3. SampleGrabber
  4. NullRenderer
  5. WebCam

--------------------------------------------------
  Connections
--------------------------------------------------
  1. [Smart Tee]/(Capture) -> [MJPEG Decompressor]/(XForm In)
      Major:   MEDIATYPE_Video
      Subtype: MEDIASUBTYPE_MJPG
          bFixedSizeSamples:    TRUE
          bTemporalCompression: FALSE
          lSampleSize:          921600
          cbFormat:             88
      Format:  FORMAT_VideoInfo
      VIDEOINFOHEADER:
          rcSource:             (0,0,0,0)
          rcTarget:             (0,0,0,0)
          dwBitRate:            221184000
          dwBitErrorRate:       0
          AvgTimePerFrame:      333333
      BITMAPINFOHEADER:
          biSize:               40
          biWidth:              640
          biHeight:             480
          biPlanes:             1
          biBitCount:           24
          biCompression:        0x47504A4D
          biSizeImage:          921600
          biXPelsPerMeter:      0
          biYPelsPerMeter:      0
          biClrUsed:            0
          biClrImportant:       0

  2. [MJPEG Decompressor]/(XForm Out) -> [SampleGrabber]/(Input)
      Major:   MEDIATYPE_Video
      Subtype: MEDIASUBTYPE_RGB24
          bFixedSizeSamples:    TRUE
          bTemporalCompression: FALSE
          lSampleSize:          921600
          cbFormat:             88
      Format:  FORMAT_VideoInfo
      VIDEOINFOHEADER:
          rcSource:             (0,0,0,0)
          rcTarget:             (0,0,0,0)
          dwBitRate:            221184221
          dwBitErrorRate:       0
          AvgTimePerFrame:      333333
      BITMAPINFOHEADER:
          biSize:               40
          biWidth:              640
          biHeight:             480
          biPlanes:             1
          biBitCount:           24
          biCompression:        0x00000000
          biSizeImage:          921600
          biXPelsPerMeter:      0
          biYPelsPerMeter:      0
          biClrUsed:            0
          biClrImportant:       0

  3. [SampleGrabber]/(Output) -> [NullRenderer]/(In)
      Major:   MEDIATYPE_Video
      Subtype: MEDIASUBTYPE_RGB24
          bFixedSizeSamples:    TRUE
          bTemporalCompression: FALSE
          lSampleSize:          921600
          cbFormat:             88
      Format:  FORMAT_VideoInfo
      VIDEOINFOHEADER:
          rcSource:             (0,0,0,0)
          rcTarget:             (0,0,0,0)
          dwBitRate:            221184221
          dwBitErrorRate:       0
          AvgTimePerFrame:      333333
      BITMAPINFOHEADER:
          biSize:               40
          biWidth:              640
          biHeight:             480
          biPlanes:             1
          biBitCount:           24
          biCompression:        0x00000000
          biSizeImage:          921600
          biXPelsPerMeter:      0
          biYPelsPerMeter:      0
          biClrUsed:            0
          biClrImportant:       0

  4. [WebCam]/(Capture) -> [Smart Tee]/(Input)
      Major:   MEDIATYPE_Video
      Subtype: MEDIASUBTYPE_MJPG
          bFixedSizeSamples:    TRUE
          bTemporalCompression: FALSE
          lSampleSize:          921600
          cbFormat:             88
      Format:  FORMAT_VideoInfo
      VIDEOINFOHEADER:
          rcSource:             (0,0,0,0)
          rcTarget:             (0,0,0,0)
          dwBitRate:            221184000
          dwBitErrorRate:       0
          AvgTimePerFrame:      333333
      BITMAPINFOHEADER:
          biSize:               40
          biWidth:              640
          biHeight:             480
          biPlanes:             1
          biBitCount:           24
          biCompression:        0x47504A4D
          biSizeImage:          921600
          biXPelsPerMeter:      0
          biYPelsPerMeter:      0
          biClrUsed:            0
          biClrImportant:       0

[Обновление № 3] - Святая корова, что я начал ?! Почему гуглить глубже, чем я когда-либо гуглил, прежде чем янаткнулся на то, что поддерживает&nbsp;Римская теория несоответствующих цветовых пространств. яскачал приложение&nbsp;и сразу же пришлось исправить ошибку с слишком маленьким буфером. После решения этой проблемы я смог создать следующий отчет:

Dump Version:   1.2

Using device:   Microsoft® LifeCam Studio(TM)
Interface:  USB

Pin Name:   Capture
Pin direction:  Output
Pin category:   Capture

IAMVideoCompression:    No
ISpecifyPropertyPages:  Yes
IMediaSeeking:  Yes
IPinConnection: No
IPinFlowControl:    No
IAMDroppedFrames:   No
IAMVideoProcAmp:    No
IAMVideoControlCaps:    0

Major Type  Sub Type    Format Type FixedSamples    Temporal Compression    Sample Size Max Input Size  Min Output Size Max Output Size Min-Max FPS Video Standard
Video   YUY2    VideoInfo   Fixed   NotTemporal 614400  640x480 640x480 640x480 7.50-30.00  {none}
Video   YUY2    VideoInfo2  Fixed   NotTemporal 614400  640x480 640x480 640x480 7.50-30.00  {none}
Video   YUY2    VideoInfo   Fixed   NotTemporal 1843200 1280x720    1280x720    1280x720    7.50-10.00  {none}
Video   YUY2    VideoInfo2  Fixed   NotTemporal 1843200 1280x720    1280x720    1280x720    7.50-10.00  {none}
Video   YUY2    VideoInfo   Fixed   NotTemporal 1044480 960x544 960x544 960x544 7.50-20.00  {none}
Video   YUY2    VideoInfo2  Fixed   NotTemporal 1044480 960x544 960x544 960x544 7.50-20.00  {none}
Video   YUY2    VideoInfo   Fixed   NotTemporal 716800  800x448 800x448 800x448 7.50-30.00  {none}
Video   YUY2    VideoInfo2  Fixed   NotTemporal 716800  800x448 800x448 800x448 7.50-30.00  {none}
Video   YUY2    VideoInfo   Fixed   NotTemporal 460800  640x360 640x360 640x360 7.50-30.00  {none}
Video   YUY2    VideoInfo2  Fixed   NotTemporal 460800  640x360 640x360 640x360 7.50-30.00  {none}
Video   YUY2    VideoInfo   Fixed   NotTemporal 203520  424x240 424x240 424x240 7.50-30.00  {none}
Video   YUY2    VideoInfo2  Fixed   NotTemporal 203520  424x240 424x240 424x240 7.50-30.00  {none}
Video   YUY2    VideoInfo   Fixed   NotTemporal 202752  352x288 352x288 352x288 7.50-30.00  {none}
Video   YUY2    VideoInfo2  Fixed   NotTemporal 202752  352x288 352x288 352x288 7.50-30.00  {none}
Video   YUY2    VideoInfo   Fixed   NotTemporal 153600  320x240 320x240 320x240 7.50-30.00  {none}
Video   YUY2    VideoInfo2  Fixed   NotTemporal 153600  320x240 320x240 320x240 7.50-30.00  {none}
Video   YUY2    VideoInfo   Fixed   NotTemporal 960000  800x600 800x600 800x600 7.50-20.00  {none}
Video   YUY2    VideoInfo2  Fixed   NotTemporal 960000  800x600 800x600 800x600 7.50-20.00  {none}
Video   YUY2    VideoInfo   Fixed   NotTemporal 50688   176x144 176x144 176x144 7.50-30.00  {none}
Video   YUY2    VideoInfo2  Fixed   NotTemporal 50688   176x144 176x144 176x144 7.50-30.00  {none}
Video   YUY2    VideoInfo   Fixed   NotTemporal 38400   160x120 160x120 160x120 7.50-30.00  {none}
Video   YUY2    VideoInfo2  Fixed   NotTemporal 38400   160x120 160x120 160x120 7.50-30.00  {none}
Video   YUY2    VideoInfo   Fixed   NotTemporal 4147200 1920x1080   1920x1080   1920x1080   5.00-5.00   {none}
Video   YUY2    VideoInfo2  Fixed   NotTemporal 4147200 1920x1080   1920x1080   1920x1080   5.00-5.00   {none}
Video   MJPG    VideoInfo   Fixed   NotTemporal 921600  640x480 640x480 640x480 7.50-30.00  {none}
Video   MJPG    VideoInfo2  Fixed   NotTemporal 921600  640x480 640x480 640x480 7.50-30.00  {none}
Video   MJPG    VideoInfo   Fixed   NotTemporal 6220800 1920x1080   1920x1080   1920x1080   7.50-30.00  {none}
Video   MJPG    VideoInfo2  Fixed   NotTemporal 6220800 1920x1080   1920x1080   1920x1080   7.50-30.00  {none}
Video   MJPG    VideoInfo   Fixed   NotTemporal 2764800 1280x720    1280x720    1280x720    7.50-30.00  {none}
Video   MJPG    VideoInfo2  Fixed   NotTemporal 2764800 1280x720    1280x720    1280x720    7.50-30.00  {none}
Video   MJPG    VideoInfo   Fixed   NotTemporal 1566720 960x544 960x544 960x544 7.50-30.00  {none}
Video   MJPG    VideoInfo2  Fixed   NotTemporal 1566720 960x544 960x544 960x544 7.50-30.00  {none}
Video   MJPG    VideoInfo   Fixed   NotTemporal 1075200 800x448 800x448 800x448 7.50-30.00  {none}
Video   MJPG    VideoInfo2  Fixed   NotTemporal 1075200 800x448 800x448 800x448 7.50-30.00  {none}
Video   MJPG    VideoInfo   Fixed   NotTemporal 691200  640x360 640x360 640x360 7.50-30.00  {none}
Video   MJPG    VideoInfo2  Fixed   NotTemporal 691200  640x360 640x360 640x360 7.50-30.00  {none}
Video   MJPG    VideoInfo   Fixed   NotTemporal 1440000 800x600 800x600 800x600 7.50-30.00  {none}
Video   MJPG    VideoInfo2  Fixed   NotTemporal 1440000 800x600 800x600 800x600 7.50-30.00  {none}
Video   MJPG    VideoInfo   Fixed   NotTemporal 311040  432x240 432x240 432x240 7.50-30.00  {none}
Video   MJPG    VideoInfo2  Fixed   NotTemporal 311040  432x240 432x240 432x240 7.50-30.00  {none}
Video   MJPG    VideoInfo   Fixed   NotTemporal 304128  352x288 352x288 352x288 7.50-30.00  {none}
Video   MJPG    VideoInfo2  Fixed   NotTemporal 304128  352x288 352x288 352x288 7.50-30.00  {none}
Video   MJPG    VideoInfo   Fixed   NotTemporal 76032   176x144 176x144 176x144 7.50-30.00  {none}
Video   MJPG    VideoInfo2  Fixed   NotTemporal 76032   176x144 176x144 176x144 7.50-30.00  {none}
Video   MJPG    VideoInfo   Fixed   NotTemporal 230400  320x240 320x240 320x240 7.50-30.00  {none}
Video   MJPG    VideoInfo2  Fixed   NotTemporal 230400  320x240 320x240 320x240 7.50-30.00  {none}
Video   MJPG    VideoInfo   Fixed   NotTemporal 57600   160x120 160x120 160x120 7.50-30.00  {none}
Video   MJPG    VideoInfo2  Fixed   NotTemporal 57600   160x120 160x120 160x120 7.50-30.00  {none}
Video   {3032344D-0000-0010-8000-00AA00389B71}  VideoInfo   Fixed   NotTemporal 460800  640x480 640x480 640x480 7.50-30.00  {none}
Video   {3032344D-0000-0010-8000-00AA00389B71}  VideoInfo2  Fixed   NotTemporal 460800  640x480 640x480 640x480 7.50-30.00  {none}
Video   {3032344D-0000-0010-8000-00AA00389B71}  VideoInfo   Fixed   NotTemporal 1382400 1280x720    1280x720    1280x720    7.50-15.00  {none}
Video   {3032344D-0000-0010-8000-00AA00389B71}  VideoInfo2  Fixed   NotTemporal 1382400 1280x720    1280x720    1280x720    7.50-15.00  {none}
Video   {3032344D-0000-0010-8000-00AA00389B71}  VideoInfo   Fixed   NotTemporal 783360  960x544 960x544 960x544 7.50-30.00  {none}
Video   {3032344D-0000-0010-8000-00AA00389B71}  VideoInfo2  Fixed   NotTemporal 783360  960x544 960x544 960x544 7.50-30.00  {none}
Video   {3032344D-0000-0010-8000-00AA00389B71}  VideoInfo   Fixed   NotTemporal 537600  800x448 800x448 800x448 7.50-30.00  {none}
Video   {3032344D-0000-0010-8000-00AA00389B71}  VideoInfo2  Fixed   NotTemporal 537600  800x448 800x448 800x448 7.50-30.00  {none}
Video   {3032344D-0000-0010-8000-00AA00389B71}  VideoInfo   Fixed   NotTemporal 345600  640x360 640x360 640x360 7.50-30.00  {none}
Video   {3032344D-0000-0010-8000-00AA00389B71}  VideoInfo2  Fixed   NotTemporal 345600  640x360 640x360 640x360 7.50-30.00  {none}
Video   {3032344D-0000-0010-8000-00AA00389B71}  VideoInfo   Fixed   NotTemporal 152640  424x240 424x240 424x240 7.50-30.00  {none}
Video   {3032344D-0000-0010-8000-00AA00389B71}  VideoInfo2  Fixed   NotTemporal 152640  424x240 424x240 424x240 7.50-30.00  {none}
Video   {3032344D-0000-0010-8000-00AA00389B71}  VideoInfo   Fixed   NotTemporal 152064  352x288 352x288 352x288 7.50-30.00  {none}
Video   {3032344D-0000-0010-8000-00AA00389B71}  VideoInfo2  Fixed   NotTemporal 152064  352x288 352x288 352x288 7.50-30.00  {none}
Video   {3032344D-0000-0010-8000-00AA00389B71}  VideoInfo   Fixed   NotTemporal 115200  320x240 320x240 320x240 7.50-30.00  {none}
Video   {3032344D-0000-0010-8000-00AA00389B71}  VideoInfo2  Fixed   NotTemporal 115200  320x240 320x240 320x240 7.50-30.00  {none}
Video   {3032344D-0000-0010-8000-00AA00389B71}  VideoInfo   Fixed   NotTemporal 720000  800x600 800x600 800x600 7.50-30.00  {none}
Video   {3032344D-0000-0010-8000-00AA00389B71}  VideoInfo2  Fixed   NotTemporal 720000  800x600 800x600 800x600 7.50-30.00  {none}
Video   {3032344D-0000-0010-8000-00AA00389B71}  VideoInfo   Fixed   NotTemporal 38016   176x144 176x144 176x144 7.50-30.00  {none}
Video   {3032344D-0000-0010-8000-00AA00389B71}  VideoInfo2  Fixed   NotTemporal 38016   176x144 176x144 176x144 7.50-30.00  {none}
Video   {3032344D-0000-0010-8000-00AA00389B71}  VideoInfo   Fixed   NotTemporal 28800   160x120 160x120 160x120 7.50-30.00  {none}
Video   {3032344D-0000-0010-8000-00AA00389B71}  VideoInfo2  Fixed   NotTemporal 28800   160x120 160x120 160x120 7.50-30.00  {none}
Video   {3032344D-0000-0010-8000-00AA00389B71}  VideoInfo   Fixed   NotTemporal 3110400 1920x1080   1920x1080   1920x1080   7.50-7.50   {none}
Video   {3032344D-0000-0010-8000-00AA00389B71}  VideoInfo2  Fixed   NotTemporal 3110400 1920x1080   1920x1080   1920x1080   7.50-7.50   {none}

Pin Name:   Video Camera Terminal
Pin direction:  Input
Pin category:   {3EBC7959-3310-493B-AA81-C7E132D56F71}

IAMVideoCompression:    No
ISpecifyPropertyPages:  Yes
IMediaSeeking:  No
IPinConnection: No
IPinFlowControl:    No
IAMDroppedFrames:   No
IAMVideoProcAmp:    No
IAMVideoControlCaps:    0

Major Type  Sub Type    Format Type FixedSamples    Temporal Compression    Sample Size