3

明るさ、コントラスト、色相、彩度などを制御するために、どの MediaFoundation API を使用できるのでしょうか? IMFVideoProcessor::SetProcAmpValues でこれらの属性を変更できることがわかりましたが、これらの属性はグラフィック カードで変更されます。これらをキャプチャ デバイスまたは AVStream 内の MediaFoundation インターフェイスで変更したいと考えています。ありがとう!

4

1 に答える 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 に答える