| 67 | // IKsPropertySet |
| 68 | |
| 69 | STDMETHODIMP CVideoInputPin::Set(REFGUID PropSet, ULONG Id, LPVOID pInstanceData, ULONG InstanceLength, |
| 70 | LPVOID pPropertyData, ULONG DataLength) |
| 71 | { |
| 72 | if (PropSet != AM_KSPROPSETID_TSRateChange) |
| 73 | { |
| 74 | return __super::Set(PropSet, Id, pInstanceData, InstanceLength, pPropertyData, DataLength); |
| 75 | } |
| 76 | |
| 77 | switch (Id) |
| 78 | { |
| 79 | case AM_RATE_SimpleRateChange: { |
| 80 | AM_SimpleRateChange *p = (AM_SimpleRateChange *)pPropertyData; |
| 81 | if (!m_CorrectTS) |
| 82 | { |
| 83 | return E_PROP_ID_UNSUPPORTED; |
| 84 | } |
| 85 | CAutoLock cAutoLock(&m_csRateLock); |
| 86 | m_ratechange = *p; |
| 87 | } |
| 88 | break; |
| 89 | case AM_RATE_UseRateVersion: { |
| 90 | WORD *p = (WORD *)pPropertyData; |
| 91 | if (*p > 0x0101) |
| 92 | { |
| 93 | return E_PROP_ID_UNSUPPORTED; |
| 94 | } |
| 95 | } |
| 96 | break; |
| 97 | case AM_RATE_CorrectTS: { |
| 98 | LONG *p = (LONG *)pPropertyData; |
| 99 | m_CorrectTS = *p; |
| 100 | } |
| 101 | break; |
| 102 | default: return E_PROP_ID_UNSUPPORTED; |
| 103 | } |
| 104 | |
| 105 | return S_OK; |
| 106 | } |
| 107 | |
| 108 | STDMETHODIMP CVideoInputPin::Get(REFGUID PropSet, ULONG Id, LPVOID pInstanceData, ULONG InstanceLength, |
| 109 | LPVOID pPropertyData, ULONG DataLength, ULONG *pBytesReturned) |
no outgoing calls
no test coverage detected