如何在媒体基金会中控制相机捕获显示

How to control camera capture display in MediaFoundation?

本文关键字:相机 显示 控制 媒体 基金会      更新时间:2023-10-16

我想知道我可以使用哪个MediaFoundation API来控制亮度,对比度,色调和饱和度等?我发现 IMFVideoProcessor::SetProcAmpValues 可以修改这些属性,但这些属性在显卡中被修改;我想通过捕获设备或AVStream中的MediaFoundation界面来修改这些内容。谢谢!

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
       );
    }
 }