Ignore:
Timestamp:
Jan 30, 2015, 5:12:31 AM (8 years ago)
Author:
roman
Message:

Suppress exceptions on missing property pages in property frame helper; Suppress exceptions on reading non-implemented properties via IQualProp

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/DirectShowSpy/RunPropertyBag.h

    r348 r359  
    6666                                {
    6767                                        INT nFramesDroppedInRenderer, nFramesDrawn, nAvgFrameRate, nJitter, nAvgSyncOffset, nDevSyncOffset;
    68                                         __C(pQualProp->get_FramesDroppedInRenderer(&nFramesDroppedInRenderer));
    69                                         __C(pQualProp->get_FramesDrawn(&nFramesDrawn));
    70                                         __C(pQualProp->get_AvgFrameRate(&nAvgFrameRate));
    71                                         __C(pQualProp->get_Jitter(&nJitter));
    72                                         __C(pQualProp->get_AvgSyncOffset(&nAvgSyncOffset));
    73                                         __C(pQualProp->get_DevSyncOffset(&nDevSyncOffset));
    74                                         PropertyBagNeeded(pPropertyBag);
    75                                         pPropertyBag->WriteValue(_T("FramesDroppedInRenderer"), CComVariant((LONG) nFramesDroppedInRenderer));
    76                                         pPropertyBag->WriteValue(_T("FramesDrawn"), CComVariant((LONG) nFramesDrawn));
    77                                         pPropertyBag->WriteValue(_T("AvgFrameRate"), CComVariant((DOUBLE) nAvgFrameRate / 100));
    78                                         pPropertyBag->WriteValue(_T("Jitter"), CComVariant((LONG) nJitter));
    79                                         pPropertyBag->WriteValue(_T("AvgSyncOffset"), CComVariant((LONG) nAvgSyncOffset));
    80                                         pPropertyBag->WriteValue(_T("DevSyncOffset"), CComVariant((LONG) nDevSyncOffset));
     68                                        // NOTE: IQualProp methods are not implemented on EVR even though the interface itself is exposed
     69                                        const HRESULT nGetAvgFrameRateResult = pQualProp->get_AvgFrameRate(&nAvgFrameRate);
     70                                        if(SUCCEEDED(nGetAvgFrameRateResult))
     71                                        {
     72                                                __C(pQualProp->get_FramesDroppedInRenderer(&nFramesDroppedInRenderer));
     73                                                __C(pQualProp->get_FramesDrawn(&nFramesDrawn));
     74                                                //__C(pQualProp->get_AvgFrameRate(&nAvgFrameRate));
     75                                                __C(pQualProp->get_Jitter(&nJitter));
     76                                                __C(pQualProp->get_AvgSyncOffset(&nAvgSyncOffset));
     77                                                __C(pQualProp->get_DevSyncOffset(&nDevSyncOffset));
     78                                                PropertyBagNeeded(pPropertyBag);
     79                                                pPropertyBag->WriteValue(_T("FramesDroppedInRenderer"), CComVariant((LONG) nFramesDroppedInRenderer));
     80                                                pPropertyBag->WriteValue(_T("FramesDrawn"), CComVariant((LONG) nFramesDrawn));
     81                                                pPropertyBag->WriteValue(_T("AvgFrameRate"), CComVariant((DOUBLE) nAvgFrameRate / 100));
     82                                                pPropertyBag->WriteValue(_T("Jitter"), CComVariant((LONG) nJitter));
     83                                                pPropertyBag->WriteValue(_T("AvgSyncOffset"), CComVariant((LONG) nAvgSyncOffset));
     84                                                pPropertyBag->WriteValue(_T("DevSyncOffset"), CComVariant((LONG) nDevSyncOffset));
     85                                        }
    8186                                }
    8287                                _ATLCATCHALL()
Note: See TracChangeset for help on using the changeset viewer.