структура PERFINFO_DSHOW_STREAMTRACE

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

Структура PERFINFO_DSHOW_STREAMTRACE содержит данные для события трассировки DirectShow типа GUID_STREAMTRACE.

Синтаксис

typedef struct _PERFINFO_DSHOW_STREAMTRACE {
  ULONG     id;
  ULONG     reserved;
  ULONGLONG dshowClock;
  ULONGLONG data[4];
} PERFINFO_DSHOW_STREAMTRACE, *PPERFINFO_DSHOW_STREAMTRACE;

Члены

идентификатор

Идентификатор события. См. заметки.

Защищены

Зарезервировано. Задайте нулевое значение.

dshowClock

Время потоковой передачи для этого события в 100 наносекундных единицах. Это значение является необязательным и может быть равно нулю.

data

Необязательные данные события, состоящие из четырех значений ULONGLONG . Значение этих данных зависит от идентификатора события.

Комментарии

Определяются следующие идентификаторы событий.

Идентификатор события Описание
PERFINFO_STREAMTRACE_MPEG2DEMUX_PTS_TRANSLATION Регистрируется, когда фильтр демультиплексера MPEG-2 преобразует метку времени презентации (PTS) в потоковое время.
  • data[0]: преобразованное время начала.
  • data[1]: преобразованное время остановки.
  • data[2]. Идентификатор потока для входного закрепления.
  • data[3]: преобразованные PTS.
PERFINFO_STREAMTRACE_MPEG2DEMUX_SAMPLE_RECEIVE Регистрируется, когда MPEG-2 Demultiplexer получает образец.
PERFINFO_STREAMTRACE_VMR_BEGIN_ADVISE Регистрируется, когда VMR планирует образец для отрисовки, непосредственно перед вызовом VMR IReferenceClock::AdviseTime.
  • data[0]: время начала потоковой передачи, которое соответствует нулевому времени потока.
PERFINFO_STREAMTRACE_VMR_BEGIN_DECODE Регистрируется, когда VMR начинает операцию декодирования, то есть когда декодер вызывает IAMVideoAccelerator::BeginFrame. Нет данных события.
PERFINFO_STREAMTRACE_VMR_BEGIN_DEINTERLACE Регистрируется, когда vmr начинает операцию деинтерлейсинга или создания видео. Нет данных события.
PERFINFO_STREAMTRACE_VMR_DROPPED_FRAME Регистрируется, когда VMR удаляет кадр; например, если выборка была запоздна.
  • data[0]: пример времени начала.
  • data[1]: пример времени окончания.
PERFINFO_STREAMTRACE_VMR_END_ADVISE Регистрируется, когда VMR получает уведомление о совете от эталонных часов. Нет данных события.
PERFINFO_STREAMTRACE_VMR_END_DECODE Регистрируется, когда VMR завершает операцию декодирования, т. е. когда декодер вызывает IAMVideoAccelerator::EndFrame. Нет данных события.
PERFINFO_STREAMTRACE_VMR_END_DEINTERLACE Регистрируется при завершении виртуальной машины операции деинтерлейсинга или создания видео. Нет данных события.
PERFINFO_STREAMTRACE_VMR_RECEIVE Регистрируется, когда VMR получает новый пример. Нет данных события.
PERFINFO_STREAMTRACE_VMR_RENDER_TIME Регистрируется, когда VMR завершает отрисовку кадра.
  • data[0]: время, необходимое для отрисовки этого кадра.
  • data[1]: среднее время отрисовки кадра.

 

Чтобы записать это событие в журнал из фильтра DirectShow, используйте функцию PERFLOG_STREAMTRACE , которая определена в файле заголовка Dxmperf.h. Этот заголовок включен в базовые классы DirectShow.

Требования

Требование Значение
Заголовок
Perfstruct.h

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

Структуры DirectShow

Трассировка событий в DirectShow

Идентификаторы GUID событий трассировки