перечисление tagAM_SAMPLE_PROPERTY_FLAGS (strmif.h)

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]

Задает значения для структуры AM_SAMPLE2_PROPERTIES . Эти значения описывают свойства примеров мультимедиа.

Синтаксис

typedef enum tagAM_SAMPLE_PROPERTY_FLAGS {
  AM_SAMPLE_SPLICEPOINT = 0x1,
  AM_SAMPLE_PREROLL = 0x2,
  AM_SAMPLE_DATADISCONTINUITY = 0x4,
  AM_SAMPLE_TYPECHANGED = 0x8,
  AM_SAMPLE_TIMEVALID = 0x10,
  AM_SAMPLE_TIMEDISCONTINUITY = 0x40,
  AM_SAMPLE_FLUSH_ON_PAUSE = 0x80,
  AM_SAMPLE_STOPVALID = 0x100,
  AM_SAMPLE_ENDOFSTREAM = 0x200,
  AM_STREAM_MEDIA = 0,
  AM_STREAM_CONTROL = 1
} ;

Константы

 
AM_SAMPLE_SPLICEPOINT
Значение: 0x1
Пример — это точка сплайсов (ее можно декодировать без ссылки на предыдущие данные).
AM_SAMPLE_PREROLL
Значение: 0x2
Пример — это предварительный пример.
AM_SAMPLE_DATADISCONTINUITY
Значение: 0x4
Начальные данные в этом примере являются точкой сплейсов. Данные в предыдущем примере не должны были следовать за данными в этом примере. Дополнительные сведения см. в подразделе "Примечания".
AM_SAMPLE_TYPECHANGED
Значение: 0x8
Тип образца изменен.
AM_SAMPLE_TIMEVALID
Значение: 0x10
Допустимое время.
AM_SAMPLE_TIMEDISCONTINUITY
Значение: 0x40
После этого примера начинается временной интервал в данных. В этом случае структура AM_SAMPLE2_PROPERTIES может иметь значение NULL .
AM_SAMPLE_FLUSH_ON_PAUSE
Значение: 0x80
Только для динамических данных; указывает на отмену в приостановленном состоянии.
AM_SAMPLE_STOPVALID
Значение: 0x100
Допустимое время остановки.
AM_SAMPLE_ENDOFSTREAM
Значение: 0x200
Окончание потока происходит после этого примера. Этот флаг зарезервирован для потоковой передачи ядра. DirectShow в настоящее время не использует его.
AM_STREAM_MEDIA
Значение: 0
Обычный идентификатор потока данных.
AM_STREAM_CONTROL
Значение: 1
Идентификатор потока управления. Значение больше 0x7FFFFFFF указывает на поток, определяемый приложением.

Комментарии

Флаг AM_SAMPLE_DATADISCONTINUITY указывает, что данные в текущем образце носителя не считаются смежными с данными в предыдущих примерах. Фильтр, получающий образец с AM_SAMPLE_DATADISCONTINUITY флагом , не должен удалять необработанные данные в своих буферах. Фильтр, ожидающий входящих данных, прежде чем он сможет обработать буферированные данные, должен немедленно обработать буферированные данные; Таким образом, буферизированные данные могут быть удалены, если они являются неполными.

Например, фильтр распаковки видео может получить образец мультимедиа с флагом AM_SAMPLE_DATADISCONTINUITY , если в буферах есть два полных сжатых видеокадра и один неполный сжатый видеокадр. В этом случае фильтр распаковывает два полных кадра и отменяет неполный третий кадр, прежде чем приступить к обработке данных из текущего примера носителя.

Флаг AM_SAMPLE_DATADISCONTINUITY устанавливается в первом примере, полученном после сброса или остановки. Кроме того, флаг AM_SAMPLE_DATADISCONTINUITY следует использовать при переключении содержимого в источнике, при изменении канала (при изменении формата) или при отсутствии данных из-за прерываний потока.

Флаг AM_SAMPLE_DATADISCONTINUITY эквивалентен методу IMediaSample::IsDiscontinuity , возвращающего S_OK.

Требования

Требование Значение
Заголовок strmif.h (включая DShow.h)

См. также раздел

Перечислимые типы DirectShow