Parameterinformationen
[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]
Die IMediaParamInfo::GetParamInfo-Methode gibt eine MP_PARAMINFO-Struktur zurück, die einen Parameter beschreibt. Diese Struktur enthält die folgenden Informationen:
- Das mpType-Element gibt den Datentyp des Parameterwerts an. Aus Effizienzgründen werden alle Parameter als 32-Bit-Gleitkommawerte implementiert. Die MP_TYPE-Enumeration definiert, ob der Wert als ganze Zahl, Gleitkommawert, Boolescher Wert oder Enumeration (Ganzzahlreihe) interpretiert werden soll.
- Der mopCaps-Member gibt an, welche Kurven dieser Parameter unterstützt. Wenn der Datentyp boolean oder Enumeration ist, ist die einzige Kurve, die der Parameter unterstützen kann, "Jump".
- Die Member mpdMinValue und mpdMaxValue definieren die minimalen und maximalen Werte für diesen Parameter. Alle Kurven für diesen Parameter müssen innerhalb dieses Bereichs liegen.
- Das mpdNeutralValue-Element ist der Standardwert des Parameters.
- Das szLabel-Element ist der Name des Parameters, und das szUnitText-Element ist der Name für die Maßeinheit für den Parameter. Beispiele hierfür sind "Volume" und "Dezibel" oder "Frequency" und "kHz". Beide Zeichenfolgen sind englisch und werden nie lokalisiert. Der DMO kann lokalisierte Versionen über die IMediaParamInfo::GetParamText-Methode bereitstellen.
Die Informationen für jeden Parameter bleiben während der gesamten Lebensdauer des DMO festgelegt. Daher kann der Client diese Informationen einmal abfragen und dann zwischenspeichern.
Zeitformate
Der Client muss die Eingabedaten zeitstempeln, damit der DMO die entsprechenden Parameterwerte berechnen kann. Standardmäßig stellen Zeitstempel Einheiten von 100 Nanosekunden dar, die auch als Referenzzeit bezeichnet werden. Diese Zeiteinheit ist jedoch nicht für jede Anwendung geeignet, sodass ein DMO die Möglichkeit hat, andere Zeitformate zu unterstützen. Zeitformate werden durch GUID identifiziert.
GUID | BESCHREIBUNG |
---|---|
GUID_TIME_REFERENCE | Referenzzeit |
GUID_TIME_MUSIC | Parts per Quarter Note (PPQN) |
GUID_TIME_SAMPLES | Beispiele pro Sekunde |
Dritten wird empfohlen, bei Bedarf eigene Zeitformate zu definieren. Alle DMOs müssen jedoch die Referenzzeit unterstützen. Dies stellt eine Standardbaseline bereit, die jeder verwenden kann. Um zu bestimmen, wie viele Zeitformate ein DMO unterstützt, rufen Sie die IMediaParamInfo::GetNumTimeFormats-Methode auf. Rufen Sie die IMediaParamInfo::GetSupportedTimeFormat-Methode auf, um die unterstützten Formate aufzulisten.
Um das Zeitformat festzulegen, rufen Sie IMediaParams::SetTimeFormat auf. Diese Methode gibt die Zeitformat-GUID und die Zeitdaten an, d. h. die Anzahl der Einheiten pro Takttakt. Wenn das Zeitformat beispielsweise Stichproben pro Sekunde ist und die Zeitdaten 32 sind, entspricht ein Zeitstempelwert von 10 320 Stichproben.
Zugehörige Themen