我想知道哪些MediaFoundation API可以用来控制亮度,对比度,色调和饱和度等? 我发现IMFVideoProcessor :: SetProcAmpValues可以修改这些属性,但这些属性在显卡中被修改;我想通过捕获设备或AVStream中的MediaFoundation接口来修改它们。 谢谢!
答案 0 :(得分:4)
与DirectShow中的相同: 获取视频捕获设备的IMFMediaSource,然后查询IAMVideoProcAmp接口:
IMFMediaSource * pSource = NULL;
...
IAMVideoProcAmp *pProcAmp = NULL;
hr = pSource->QueryInterface(IID_PPV_ARGS(&pProcAmp));
if (SUCCEEDED(hr))
{
long lMin, lMax, lStep, lDefault, lCaps;
hr = pProcAmp->GetRange(
VideoProcAmp_Brightness,
&lMin,
&lMax,
&lStep,
&lDefault,
&lCaps
);
if (SUCCEEDED(hr))
{
hr = pProcAmp->Set(
VideoProcAmp_Brightness,
lMax,
VideoProcAmp_Flags_Manual
);
}
}