在MicrosoftMedia Foundation视频播放中,用Scrub定位到某一位置后,IMFVideoDisplayControl::RepaintVideo() 无法正常刷新,为什么,如何修改?

使用Microsoft Media Foundation,基于(https://docs.microsoft.com/zh-cn/windows/win32/medfound/how-to-play-unprotected-media-files)
“如何使用Media Foundation播放媒体文件”的例子。我希望定位到某一帧(或某个时间)并且定格在这一帧(或这个时间)。
我是这样做的:首先正常播放,然后暂停,然后使用了微软例程中的HRESULT SkipToPosition(MFTIME SeekTime),进行视频跳转到指定位置后,这样可以暂停在指定位置,但是视频窗口需要刷新时,使用IMFVideoDisplayControl::RepaintVideo() 返回值为S_OK,但无刷新效果。这是什么原因?如何修改?

HRESULT SkipToPosition (MFTIME SeekTime, IMFMediaSession *pMediaSession)
{
    PROPVARIANT var;
    PropVariantInit(&var);

    IMFRateControl *pRateControl = NULL;

    // Get the rate control service.
    HRESULT hr = MFGetService(pMediaSession, MF_RATE_CONTROL_SERVICE, IID_PPV_ARGS(&pRateControl));

    // Set the playback rate to zero without thinning.
    if(SUCCEEDED(hr))
    {
        hr = pRateControl ->SetRate( FALSE, 0.0F); 
    }

    // Create the Media Session start position.
    if( SeekTime == PRESENTATION_CURRENT_POSITION )
    {
        var.vt = VT_EMPTY;
    }
    else
    {
        var.vt = VT_I8;
        var.hVal.QuadPart = SeekTime;
    }

    // Start the Media Session.
    if(SUCCEEDED(hr))
    {
        hr = pMediaSession->Start( NULL, &var);
    }

// Clean up.
    SafeRelease(&pRateControl);
    PropVariantClear(&var)
    return hr;
}
   初始:

图片说明

需刷新:

图片说明

未正确刷新:

图片说明

把你的显示卡的视频加速,directx设置中的2d 3d加速都先关闭了试试看。