Ich bin auf der Suche nach einem Videoplayer innerhalb einer Game-Engine zu implementieren, effektiv eine Videodatei dekodieren und das Ergebnis zu einer Textur in DirectX 11 Rendern. Leider bin ich ein bisschen ratlos, wie das geht Ich habe die ID3D11VideoDevice-Klasse auf MSDN gefunden, aber ich habe keine Ahnung, wie man sie benutzt, und ich kann anscheinend keine brauchbaren Beispiele/Beispiele online finden, die zeigen, wie sie benutzt werden.DirectX 11 Videowiedergabe
Ich habe durch den Versuch abzufragen, um die Schnittstelle oh mein erstellt ID3D11Device mit dem folgenden Code gestartet:
ComPtr<ID3D11VideoDevice> video;
HRESULT hr = device->QueryInterface(__uuidof(ID3D11VideoDevice), &video);
Aber ich den HRESULT E_NOINTERFACE bekommen, so vermute ich, ich das ursprüngliche Gerät erstellt haben in so dass ich es nicht in ein Videogerät umwandeln kann? Entweder das oder das ist völlig falsch. Also meine Fragen wären:
- Wie ich richtig angefangen habe und wenn ja, warum bekomme ich diesen Fehler?
- Kennt irgendjemand irgendeine nützliche Dokumentation/Beispiele online, die erklären können, wie das gemacht wird?
Gerade als Referenz unten ist, wie ich das Original ID3D11Device bin zu schaffen:
std::vector<D3D_FEATURE_LEVEL> feature_levels = {
D3D_FEATURE_LEVEL_11_1,
D3D_FEATURE_LEVEL_11_0,
D3D_FEATURE_LEVEL_10_1,
D3D_FEATURE_LEVEL_10_0,
D3D_FEATURE_LEVEL_9_3,
D3D_FEATURE_LEVEL_9_2,
D3D_FEATURE_LEVEL_9_1
};
UINT flags = 0;
#if defined(DEBUG) || defined(_DEBUG)
flags |= D3D11_CREATE_DEVICE_DEBUG;
#endif
// Create D3D device
HRESULT hr = D3D11CreateDevice(nullptr,
D3D_DRIVER_TYPE_HARDWARE,
0,
flags,
&feature_levels[0],
feature_levels.size(),
D3D11_SDK_VERSION,
&m_device,
&m_featureLevel,
&m_deviceContext);
Vielen Dank im Voraus.
Die Direct3D 11-Videoschnittstellen sind extrem low-level, daher wird die direkte Wiedergabe von Medien nicht empfohlen. Stattdessen sollten Sie Media Foundation oder eine Videolösung von Drittanbietern verwenden. –
Auf welche Windows-Version zielen Sie hier? Windows 10, Windows 8.x, Windows 7? –
@ChuckWalbourn Entschuldigung, es zielt auf Windows 7 mit Visual Studio 2013, ist Media Foundation nicht so niedrig? Verwenden von Decodern, Streams usw.? Mein Verständnis war WMF war der Low-Level-Teil und mit DirectX, um das Ergebnis zu einer Textur zu machen war der höhere Teil? – TheRarebit