Umschlagsegmente
[Das dieser Seite zugeordnete Feature DirectShow-ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngineund Audio/Video Capture in Media Foundationersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code MediaPlayer-, IMFMediaEngine und Audio-/Videoaufnahme in Media Foundation anstelle von DirectShow-verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, um die neuen APIs zu verwenden, falls möglich umgeschrieben werden.]
Eine Parameterkurve besteht aus einem oder mehreren Umschlagsegmenten, die mithilfe der MP_ENVELOPE_SEGMENT Struktur definiert sind. Diese Struktur enthält die folgenden Informationen:
- Die Anfangs- und Endzeiten.
- Die Anfangs- und Endwerte.
- Der Kurventyp (linear, quadratisch usw.).
- Optionale Kennzeichnungen, die kurz beschrieben werden.
Der Client fügt umschlagsegmente zu einem Parameter hinzu, indem die IMediaParams::AddEnvelope Methode aufgerufen und ein Array von MP_ENVELOPE_SEGMENT Strukturen übergeben wird. Der Client sollte die Segmente vor dem Aufrufen der Methode in aufsteigender Zeitreihenfolge sortieren. Während die DMO Daten verarbeitet, können Sie sich vorstellen, dass der Parameter, der über jedes Umschlagsegment reist, wie ein Auto, das über eine Reihe von Hügeln fährt. Die IMediaParams::GetParam--Methode gibt den letzten Wert zurück.
Zwei benachbarte Segmente können eine Lücke zwischen ihnen aufweisen. Bei Lücken behält der Parameter den vorherigen Wert wie folgt bei:
- Vor dem ersten Segment ist der Wert der neutrale Wert.
- Zwischen Segmenten ist der Wert der Endwert des vorherigen Segments.
- Nach dem letzten Segment verbleibt der Wert am Endwert dieses Segments.
- Wenn der Client die DMO löscht, wird der Wert auf den neutralen Wert zurückgesetzt.
Sie können ein Segment ändern, indem Sie eines der folgenden Flags festlegen:
- MPF_ENVLP_BEGIN_CURRENTVAL. Die DMO verwendet den letzten Wert des Parameters als Startwert für das Segment. Dies kann der neutrale Wert oder der Endwert aus dem vorherigen Segment sein. Die DMO ignoriert das valStart Member der MP_ENVELOPE_SEGMENT-Struktur.
- MPF_ENVLP_BEGIN_NEUTRALVAL. Die DMO verwendet den neutralen Wert des Parameters als Startwert für das Segment. Es ignoriert valStart.
Sie können sich diese Flags als Ausgangspunkt des Segments vorstellen und ihn nach oben oder unten bewegen, während der Endwert fest bleibt. Das Segment wird entsprechend "gestreckt".
Verwandte Themen