我想知道我可以使用哪个 MediaFoundation API 来控制亮度、对比度、色调和饱和度等?我发现 IMFVideoProcessor::SetProcAmpValues 可以修改这些属性,但是这些属性是在显卡中修改的;我想通过捕获设备或 AVStream 中的 MediaFoundation 接口来修改这些。谢谢你!
问问题
1335 次
1 回答
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
);
}
}
于 2013-02-27T15:39:12.517 回答