Dateneingabe und -ausgabe
Windows Media Player stellt Audio- oder Videodaten für DSP-Plug-Ins über einen Eingabepuffer zur Windows Media Player. DSP-Plug-Ins geben verarbeitete Daten an Windows Media Player Ausgabepuffer zurück, der auch von einem Windows Media Player. Windows Media Player verwaltet den Prozess der Übergabe von Daten zwischen sich selbst und dem DSP-Plug-In durch Aufrufen von Methoden, die vom Plug-In implementiert werden. Für ein Plug-In, das als DirectX Media Object (DMO) verwendet wird, funktioniert der Prozess wie folgt:
- Windows Media Player IMediaObject::P rocessInput auf, und über gibt einen Zeiger auf ein IMediaBuffer-Objekt an das DSP-Plug-In weiter.
- Das DSP-Plug-In behält eine Verweisanzahl für das Eingabepufferobjekt bei. Das DSP-Plug-In gibt ein entsprechendes Erfolgreiches oder Fehler-HRESULT zurück.
- Windows Media Player ruft IMediaObject::P rocessOutput auf und über gibt einen Zeiger auf ein Array von DMO OUTPUT DATA _ _ _ BUFFER-Strukturen (die Ausgabepuffer enthalten) an das DSP-Plug-In weiter.
- Das DSP-Plug-In verarbeitet die Daten im Eingabepuffer und kopiert die Daten dann in den entsprechenden Ausgabepuffer. Das DSP-Plug-In gibt die Verweisanzahl für das Eingabepufferobjekt frei, wenn alle Daten im Puffer verarbeitet wurden. Das DSP-Plug-In gibt dann ein entsprechendes Erfolgreiches oder Fehler-HRESULT zurück.
- Windows Media Player rendert den Inhalt im Ausgabepuffer.
Für ein Plug-In, das als Media Foundation Transform (MFT) agiert, funktioniert der Prozess wie folgt:
- Windows Media Player ruft DIETTRANSFORM::P rocessInput auf, und überträgt einen Zeiger auf ein NSSAMPLE-Schnittstellenobjekt an das DSP-Plug-In.
- Das DSP-Plug-In behält eine Verweisanzahl für die NSBSample-Schnittstelle bei. Das DSP-Plug-In gibt ein entsprechendes Erfolgreiches oder Fehler-HRESULT zurück.
- Windows Media Player ruft DIEBTRANSFORM::P rocessOutput auf und überträgt einen Zeiger auf ein Array von MFT _ OUTPUT DATA _ _ BUFFER-Strukturen (die Ausgabepuffer enthalten) an das DSP-Plug-In.
- Das DSP-Plug-In verarbeitet die Daten im Eingabepuffer und kopiert die Daten dann in den entsprechenden Ausgabepuffer. Das DSP-Plug-In gibt die Verweisanzahl für das Eingabepufferobjekt frei, wenn alle Daten im Puffer verarbeitet wurden. Das DSP-Plug-In gibt dann ein entsprechendes Erfolgreiches oder Fehler-HRESULT zurück.
- Windows Media Player rendert den Inhalt im Ausgabepuffer.
Dieser Vorgang wird kontinuierlich wiederholt, während das Plug-In aktiviert ist und Windows Media Player Inhalt zu rendern hat.
Hinweis
Schreiben Sie keinen Code, der Daten in den Eingabepuffer schreibt oder Daten aus dem Ausgabepuffer liest. Falscher Zugriff auf Datenpuffer kann zu unerwarteten Ergebnissen führen.