Событие MEStreamTick
Сигнализирует о том, что в потоке мультимедиа нет данных, доступных в указанное время.
Значения событий
Возможные значения, полученные из IMFMediaEvent::GetValue , включают следующие.
VARTYPE | Описание |
---|---|
VT_I8 |
Время возникновения разрыва в 100-наносекундных единицах. |
Комментарии
Это событие сигнализирует о разрыве данных. Событие уведомляет подчиненные компоненты не ожидать каких-либо данных в указанное время.
Событие должно быть отправлено тем объектом, который создает метки времени для примеров мультимедиа в потоке. В зависимости от формата данных это может быть:
- Поток мультимедиа в источнике мультимедиа (интерфейс IMFMediaStream ) или
- Преобразование декодера (интерфейс IMFTransform ).
Во время разрыва объект должен отправлять событие примерно так же часто, как он обычно создает образцы. Для видео отправьте одно событие для каждого недостающего кадра. Для звука отправляйте событие по крайней мере один раз в секунду во время разрыва. Значением события является метка времени отсутствующих выборок. Отправьте столько событий MEStreamTick, сколько необходимо, чтобы заполнить пробел в данных.
Если источник мультимедиа содержит несколько потоков и существует разрыв в нескольких потоках, каждый поток должен отправлять события MEStreamTick. Например, если есть разрыв в аудио- и видеоданных, то оба потока отправляют событие.
Событие MEStreamTick не завершает запрос IMFMediaStream::RequestSample . Источник мультимедиа по-прежнему должен отправлять событие MEMediaSample для каждого вызова RequestSample.
Приемники мультимедиа не могут использовать это событие напрямую. Чтобы сообщить о разрыве в потоке для медиа-приемника, позвоните IMFStreamSink::P laceMarker с маркером MFSTREAMSINK_MARKER_TICK . Конвейер Media Foundation преобразует события MEStreamTick в маркеры MFSTREAMSINK_MARKER_TICK при необходимости.
Не устанавливайте атрибут MFSampleExtension_Discontinuity для следующего примера мультимедиа после события MEStreamTick. Атрибут MFSampleExtension_Discontinuity подразумевает, что метка времени несовпадает с предыдущими метками времени, тогда как MEStreamTick подразумевает, что метки времени являются непрерывными, но некоторые данные отсутствуют.
Примечание
В более ранней версии документации неправильно указывалось, что образец после события MEStreamTick должен иметь атрибут MFSampleExtension_Discontinuity .
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows Vista [только классические приложения] |
Минимальная версия сервера |
Windows Server 2008 [только классические приложения] |
Заголовок |
|
См. также раздел