次の方法で共有


MF_TOPOLOGY_STATIC_PLAYBACK_OPTIMIZATIONS属性

ビデオ パイプラインで静的最適化を有効にします。

データ型

UINT32

取得/設定

この属性を取得するには、 IMFAttributes::GetUINT32 を呼び出します。

この属性を設定するには、 IMFAttributes::SetUINT32 を呼び出します。

適用対象

IMFTopology

注釈

トポロジを読み込む前に、この属性を設定します。 属性が TRUE の場合、トポロジ ローダーは、再生が開始される前にパイプラインの最適化を試みます。

この属性を設定する場合は、次の属性も設定する必要があります。

この属性の GUID 定数は、mfuuid.lib からエクスポートされます。

HRESULT SetPlaybackOptimizations(IMFTopology *pTopology, HWND hwnd)
{
    HRESULT hr = pTopology->SetUINT32(
        MF_TOPOLOGY_STATIC_PLAYBACK_OPTIMIZATIONS, TRUE);

    if (FAILED(hr))
    {
        return hr;
    }

    HMONITOR hCurrentMon = MonitorFromWindow(hwnd, MONITOR_DEFAULTTOPRIMARY);

    if (hCurrentMon)
    {
        MONITORINFO MonitorInfo = {0};
        MonitorInfo.cbSize = sizeof(MONITORINFO);

        BOOL fSucceeded = GetMonitorInfo(hCurrentMon, &MonitorInfo);

        if (fSucceeded )
        {
            const RECT& rcMonitor = MonitorInfo.rcMonitor;

            LONG width = rcMonitor.right - rcMonitor.left;
            LONG height = rcMonitor.bottom - rcMonitor.top;

            hr = MFSetAttributeSize(
                pTopology, 
                MF_TOPOLOGY_PLAYBACK_MAX_DIMS, 
                (UINT32)width, (UINT32)height
                );

            if (FAILED(hr))
            {
                goto done;
            }

            HDC hdc = GetDC(hwnd);

            hr = MFSetAttributeRatio(
                pTopology,
                MF_TOPOLOGY_PLAYBACK_FRAMERATE,
                GetDeviceCaps(hdc, VREFRESH), 1
                );

            ReleaseDC(hwnd, hdc);
        }
    }
done:
    return hr;
}

要件

要件
サポートされている最小のクライアント
Windows 7 [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows Server 2008 R2 [デスクトップ アプリのみ]
Header
Mfidl.h

こちらもご覧ください

Media Foundation 属性のアルファベット順リスト

トポロジ属性

ビデオ品質管理