Umschlagsegmente
[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde durch MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation ersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]
Eine Parameterkurve besteht aus einem oder mehreren Umschlagsegmenten, die mithilfe der MP_ENVELOPE_SEGMENT-Struktur definiert werden. Diese Struktur enthält die folgenden Informationen:
- Die Start- und Endzeiten.
- Die Anfangs- und Endwerte.
- Der Kurventyp (linear, quadratisch usw.).
- Optionale Flags, kurz beschrieben.
Der Client fügt einem Parameter Umschlagsegmente hinzu, indem er die IMediaParams::AddEnvelope-Methode aufruft und ein Array von MP_ENVELOPE_SEGMENT Strukturen übergibt. Der Client sollte die Segmente vor dem Aufrufen der Methode in aufsteigende Zeitreihenfolge sortieren. Während die DMO Daten verarbeitet, können Sie sich vorstellen, dass der Parameter über jedes Umschlagsegment fährt, wie ein Auto, das über eine Reihe von Hügeln fährt. Die IMediaParams::GetParam-Methode gibt den neuesten Wert zurück.
Zwei benachbarte Segmente können eine Lücke zwischen ihnen aufweisen. Während lücken behält der Parameter seinen 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 leert, 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 neuesten Wert des Parameters als Startwert für das Segment. Dies kann der neutrale Wert oder der Endwert aus dem vorherigen Segment sein. Das DMO ignoriert das valStart-Element der MP_ENVELOPE_SEGMENT-Struktur .
- MPF_ENVLP_BEGIN_NEUTRALVAL. Der DMO verwendet den neutralen Wert des Parameters als Startwert für das Segment. ValStart wird ignoriert.
Sie können sich diese Flags so vorstellen, dass Sie den Anfangspunkt des Segments erfassen und es nach oben oder unten verschieben, während der Endwert fest bleibt. Das Segment wird entsprechend "gestreckt".
Zugehörige Themen