Freigeben über


ID3D11VideoContext::D ecoderBeginFrame-Methode (d3d11.h)

Startet einen Decodierungsvorgang zum Decodieren eines Videoframes.

Syntax

HRESULT DecoderBeginFrame(
  [in] ID3D11VideoDecoder           *pDecoder,
  [in] ID3D11VideoDecoderOutputView *pView,
  [in] UINT                         ContentKeySize,
  [in] const void                   *pContentKey
);

Parameter

[in] pDecoder

Ein Zeiger auf die ID3D11VideoDecoder Schnittstelle. Rufen Sie zum Abrufen dieses Zeigers ID3D11VideoDevice::CreateVideoDecoderauf.

[in] pView

Ein Zeiger auf die ID3D11VideoDecoderOutputView Schnittstelle. Diese Schnittstelle beschreibt die Ressource, die den decodierten Frame empfängt. Rufen Sie zum Abrufen dieses Zeigers ID3D11VideoDevice::CreateVideoDecoderOutputViewauf.

[in] ContentKeySize

Die Größe des Inhaltsschlüssels, der in pContentKey-angegeben wird. Wenn pContentKey- NULL ist, legen Sie ContentKeySize auf Null fest.

[in] pContentKey

Ein optionaler Zeiger auf einen Inhaltsschlüssel, der zum Verschlüsseln der Framedaten verwendet wurde. Wenn kein Inhaltsschlüssel verwendet wurde, legen Sie diesen Parameter auf NULL-fest. Wenn der Aufrufer einen Inhaltsschlüssel bereitstellt, muss der Aufrufer den Sitzungsschlüssel verwenden, um den Inhaltsschlüssel zu verschlüsseln.

Rückgabewert

Wenn diese Methode erfolgreich ist, wird S_OKzurückgegeben. Andernfalls wird ein HRESULT- Fehlercode zurückgegeben. D3DERR_WASSTILLDRAWING oder E_PENDING wird zurückgegeben, wenn die Hardware ausgelastet ist. In diesem Fall sollte der Decoder versuchen, den Anruf erneut auszuführen.

Bemerkungen

Rufen Sie nach dem Aufrufen dieser Methode ID3D11VideoContext::SubmitDecoderBuffers auf, um Decodierungsvorgänge auszuführen. Wenn alle Decodierungsvorgänge ausgeführt wurden, rufen Sie ID3D11VideoContext::D ecoderEndFrameauf.

Jeder Aufruf von DecoderBeginFrame muss über einen übereinstimmenden Aufruf DecoderEndFrameverfügen. In den meisten Fällen können Sie DecoderBeginFrame Aufrufe nicht verschachteln, aber einige Codecs wie VC-1 können DecoderBeginFrame Aufrufe für spezielle Vorgänge wie die Nachbearbeitung geschachtelt haben.

Die folgenden Verschlüsselungsszenarien werden über den Inhaltsschlüssel unterstützt:

  • Der Decoder kann sich entscheiden, nicht jeden Frame zu verschlüsseln, z. B. kann er nur die I-Frames verschlüsseln und die P/B-Frames nicht verschlüsseln. In diesem Szenario gibt der Decoder "pContentKey = NULL" und "ContentKeySize = 0" für die Frames an, die nicht verschlüsselt werden.
  • Der Decoder kann die komprimierten Puffer mithilfe des Sitzungsschlüssels verschlüsseln. In diesem Szenario gibt der Decoder einen Inhaltsschlüssel an, der alle Nullen enthält.
  • Der Decoder kann die komprimierten Puffer mithilfe eines separaten Inhaltsschlüssels verschlüsseln. In diesem Szenario verschlüsselt der Decoder den Inhaltsschlüssel mithilfe des Sitzungsschlüssels und übergibt den verschlüsselten Inhaltsschlüssel.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 8 [Desktop-Apps | UWP-Apps]
mindestens unterstützte Server- Windows Server 2012 [Desktop-Apps | UWP-Apps]
Zielplattform- Fenster
Header- d3d11.h

Siehe auch

ID3D11VideoContext-