2012-05-21 86 views
3

我想知道哪些MediaFoundation API可以用來控制亮度,對比度,色調和飽和度等? 我發現IMFVideoProcessor :: SetProcAmpValues可以修改這些屬性,但是這些屬性都是在圖形卡中修改的;我想通過捕獲設備或AVStream中的MediaFoundation接口來修改這些設置。 謝謝!如何控制MediaFoundation中的攝像頭捕捉顯示?

回答

3

,這將是一樣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 
     ); 
    } 
}