DoProcessOutput im Beispielvideo-DSP-Plug-In
Da ein Video-DSP-Plug-In in der Regel mehrere Videoformate unterstützt, ist es praktisch, den Code für die Verarbeitungsimplementierung in eine separate Funktion für jedes Format zu trennen. Dies bedeutet, dass die Implementierung von DoProcessOutput für Video-DSP-Plug-Ins relativ einfach ist.
Die Implementierung im Beispiel-Plug-In testet zunächst, ob der Benutzer das Plug-In aktiviert hat. Wenn das Plug-In deaktiviert ist, kopiert der Code die im Eingabepuffer bereitgestellten Daten in den Ausgabepuffer, ohne sie zu ändern. Dies wird im folgenden Code veranschaulicht:
// Test whether the plug-in has been disabled by the user.
if (!m_bEnabled)
{
// Just copy the data without changing it. You should
// also do any necessary format conversion here.
memcpy(pbOutputData, pbInputData, m_dwBufferSize);
*cbBytesProcessed = m_dwBufferSize;
return S_OK;
}
Wenn das Plug-In aktiviert ist, führt der Code einfach eine Reihe von Überprüfungen für den Untertyp des Eingabemedientyps durch, um das aktuelle Videoformat zu bestimmen. Wenn eine Übereinstimmung gefunden wird, ruft der Code die entsprechende Verarbeitungsfunktion auf.