Mein DXVA2-Decoder "löscht", wenn die Mitte des Windows Media Player auf einen sekundären Monitor gezogen (oder gestartet) wird. Das Video wird erneut angezeigt, wenn es zurück zum primären Standort verschoben wird. Hinweis Ich habe D3DPRESENTFLAG_DEVICECLIP nicht festgelegt.DXVA2 Decoder MFT im Windows Media Player mit mehreren Monitordisplays
Obwohl ich viel lieber einen Weg finden würde, damit dies funktioniert, ohne dass ich mich behandeln lassen muss, bekomme ich eine Benachrichtigung von IDirect3DDeviceManager9 :: TestDevice(), die DXVA2_E_NEW_VIDEO_DEVICE zurückgibt.
IDirect3DDeviceManager9 :: CloseDeviceHandle/OpenDeviceHandle nicht schneiden (obwohl MSDN alles, was anzeigt, erforderlich ist), so meine Reset-Handler goe so etwas wie:
ReleaseBuffers(); // free surfaces
SAFE_RELEASE(m_decoderService);
hr = m_pDXManager->CloseDeviceHandle(m_hDevice);
hr = m_pDXManager->OpenDeviceHandle(&m_hDevice);
hr = m_pDXManager->LockDevice(m_hDevice, &pDev, true);
hr = pDev->Reset(d3DPP); // FAILS 0x8876086c !!!!
Also habe ich versucht, ein neues dx Gerät zu erstellen (mit Desktop als Hwnd) dann
m_pDXManager->ResetDevice(new_device, token);
aber noch keine Freude am IDirect3DDevice9 :: (Reset).
Ich habe auch versucht, einen neuen IDirect3DDeviceManager9 mit DXVA2CreateDirect3DDeviceManager9 zu erstellen, aber ohne Erfolg.
BTW verwende ich IDirect3DDevice9 :: Reset() ohne Probleme in meiner Initialisierung, und die gleichen D3DPRESENT_PARAMETERS später verwenden, so glaube nicht, dass diese das Problem sind, aber hier sind sie (nach Aufruf)
d3DPP[n].BackBufferWidth = 1920;
d3DPP[n].BackBufferHeight = 1080;
d3DPP[n].BackBufferCount = 1;
d3DPP[n].BackBufferFormat = D3DFMT_X8R8G8B8;
d3DPP[n].SwapEffect = D3DSWAPEFFECT_DISCARD;
d3DPP[n].hDeviceWindow = NULL;
d3DPP[n].Windowed = true;
d3DPP[n].Flags = D3DPRESENTFLAG_VIDEO;
d3DPP[n].FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT;
d3DPP[n].PresentationInterval = D3DPRESENT_INTERVAL_ONE;
Fehlende sind Null.
Ich habe das gleiche Problem mit win8 und win10.
Jede Hilfe/Zeiger geschätzt.