MEStreamTick-Ereignis
Signalisiert, dass für einen Medienstream keine Daten zu einem bestimmten Zeitpunkt verfügbar sind.
Ereigniswerte
Mögliche Werte, die von IMFMediaEvent::GetValue abgerufen werden, umfassen Folgendes.
VARTYPE | BESCHREIBUNG |
---|---|
VT_I8 |
Zeit, zu der die Lücke auftritt, in 100 Nanosekundeneinheiten. |
Bemerkungen
Dieses Ereignis signalisiert eine Lücke in den Daten. Das Ereignis benachrichtigt downstream-Komponenten, dass sie zum angegebenen Zeitpunkt keine Daten erwarten.
Das Ereignis sollte von dem gesendet werden, von dem das Objekt die Zeitstempel für die Medienbeispiele im Stream generiert. Abhängig vom Format der Daten ist dies entweder:
- Der Medienstream auf der Medienquelle (IMFMediaStream-Schnittstelle ), oder
- Die Decodertransformation (IMFTransform-Schnittstelle ).
Während der Lücke sollte das -Objekt das Ereignis ungefähr so oft senden, wie es normalerweise Beispiele erzeugen würde. Senden Sie für Videos ein Ereignis für jeden fehlenden Frame. Für Audiodaten senden Sie das Ereignis mindestens einmal pro Sekunde während der Lücke. Der Wert des Ereignisses ist der Zeitstempel des fehlenden Beispiels. Senden Sie so viele MEStreamTick-Ereignisse wie erforderlich, um die Lücke in den Daten zu schließen.
Wenn eine Medienquelle über mehrere Streams verfügt und eine Lücke in mehr als einem Stream besteht, sollte jeder Stream MEStreamTick-Ereignisse senden. Wenn beispielsweise eine Lücke in Audio- und Videodaten vorhanden ist, senden beide Streams das Ereignis.
Das MEStreamTick-Ereignis schließt keine IMFMediaStream::RequestSample-Anforderung ab. Die Medienquelle muss weiterhin ein MEMediaSample-Ereignis für jeden Aufruf an RequestSample senden.
Mediensenken können dieses Ereignis nicht direkt nutzen. Um eine Lücke im Stream an eine Mediensenke zu signalisieren, rufen Sie IMFStreamSink::P laceMarker mit einem MFSTREAMSINK_MARKER_TICK Marker auf. Die Media Foundation-Pipeline konvertiert MEStreamTick-Ereignisse bei Bedarf in MFSTREAMSINK_MARKER_TICK Marker.
Legen Sie das Attribut MFSampleExtension_Discontinuity nicht für das nächste Medienbeispiel nach einem MEStreamTick-Ereignis fest. Das MFSampleExtension_Discontinuity-Attribut impliziert, dass der Zeitstempel mit früheren Zeitstempeln diskontinuierlich ist, während MEStreamTick impliziert, dass Zeitstempel kontinuierlich sind, aber einige Daten fehlen.
Hinweis
In einer früheren Version der Dokumentation wurde fälschlicherweise angegeben, dass das Beispiel nach einem MEStreamTick-Ereignis das Attribut MFSampleExtension_Discontinuity aufweisen sollte.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) |
Windows Vista [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) |
Windows Server 2008 [nur Desktop-Apps] |
Header |
|
Siehe auch