| 3181 | // IMFVideoProcessor |
| 3182 | |
| 3183 | STDMETHODIMP CDX9VideoProcessor::SetProcAmpValues(DWORD dwFlags, DXVA2_ProcAmpValues *pValues) |
| 3184 | { |
| 3185 | CheckPointer(pValues, E_POINTER); |
| 3186 | if (m_srcParams.cformat == CF_NONE) { |
| 3187 | return MF_E_TRANSFORM_TYPE_NOT_SET; |
| 3188 | } |
| 3189 | |
| 3190 | if (dwFlags & DXVA2_ProcAmp_Mask) { |
| 3191 | CAutoLock cRendererLock(&m_pFilter->m_RendererLock); |
| 3192 | |
| 3193 | if (dwFlags & DXVA2_ProcAmp_Brightness) { |
| 3194 | m_DXVA2ProcAmpValues.Brightness.ll = std::clamp(pValues->Brightness.ll, m_DXVA2ProcAmpRanges[0].MinValue.ll, m_DXVA2ProcAmpRanges[0].MaxValue.ll); |
| 3195 | } |
| 3196 | if (dwFlags & DXVA2_ProcAmp_Contrast) { |
| 3197 | m_DXVA2ProcAmpValues.Contrast.ll = std::clamp(pValues->Contrast.ll, m_DXVA2ProcAmpRanges[1].MinValue.ll, m_DXVA2ProcAmpRanges[1].MaxValue.ll); |
| 3198 | } |
| 3199 | if (dwFlags & DXVA2_ProcAmp_Hue) { |
| 3200 | m_DXVA2ProcAmpValues.Hue.ll = std::clamp(pValues->Hue.ll, m_DXVA2ProcAmpRanges[2].MinValue.ll, m_DXVA2ProcAmpRanges[2].MaxValue.ll); |
| 3201 | } |
| 3202 | if (dwFlags & DXVA2_ProcAmp_Saturation) { |
| 3203 | m_DXVA2ProcAmpValues.Saturation.ll = std::clamp(pValues->Saturation.ll, m_DXVA2ProcAmpRanges[3].MinValue.ll, m_DXVA2ProcAmpRanges[3].MaxValue.ll); |
| 3204 | } |
| 3205 | |
| 3206 | m_DXVA2VP.SetProcAmpValues(m_DXVA2ProcAmpValues); |
| 3207 | if (!m_DXVA2VP.IsReady()) { |
| 3208 | SetShaderConvertColorParams(); |
| 3209 | } |
| 3210 | } |
| 3211 | |
| 3212 | return S_OK; |
| 3213 | } |
| 3214 | |
| 3215 | // IMFVideoMixerBitmap |
| 3216 |
no test coverage detected