Videobeispiele

Das Videobeispielobjekt ist eine spezielle Implementierung der IMFSample-Schnittstelle zur Verwendung mit dem Enhanced Video Renderer (EVR). Um eine instance dieses Objekts zu erstellen, rufen Sie die MFCreateVideoSampleFromSurface-Funktion auf. Die Funktion nimmt einen Zeiger auf eine Direct3D-Oberfläche und gibt einen Zeiger auf die IMFSample-Schnittstelle zurück. Die folgenden Objekttypen sollten Beispiele mithilfe dieser Funktion zuordnen:

Das Videobeispielobjekt implementiert die folgenden Schnittstellen:

Wenn der pUnkSurface-Parameter von MFCreateVideoSampleFromSurface ungleich NULL ist, enthält das resultierende Videobeispiel einen einzelnen Medienpuffer, der die Direct3D-Oberfläche kapselt. Dieses Pufferobjekt verfügt über eingeschränkte Funktionen:

Die einzige Möglichkeit, über den Puffer auf die Oberfläche zuzugreifen, besteht darin, IMFGetService::GetService mit dem Dienstbezeichner MR_BUFFER_SERVICE aufzurufen.

Wenn der pUnkSurface-ParameterNULL ist, wird das Videobeispiel mit null Medienpuffern erstellt. Gehen Sie wie folgt vor, um dem Beispiel einen Puffer hinzuzufügen:

  1. Erstellen Sie eine Direct3D-Oberfläche.

  2. Erstellen Sie einen Oberflächenpuffer, indem Sie MFCreateDXSurfaceBuffer aufrufen. Weitere Informationen finden Sie unter DirectX Surface Buffer.

  3. Fügen Sie dem Beispiel den Puffer hinzu, indem Sie IMFSample::AddBuffer aufrufen.

Verwenden Sie diesen Ansatz, wenn Sie benötigen, dass der Oberflächenspeicher über die IMF2DBuffer-Schnittstelle zugänglich ist.

Medienpuffer

Medienbeispiele