Compartilhar via


estrutura PERFINFO_DSHOW_STREAMTRACE

[O recurso associado a esta página, DirectShow, é um recurso herdado. Foi substituído por MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Audio/Video Capture in Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]

A PERFINFO_DSHOW_STREAMTRACE estrutura contém dados para um evento de rastreamento DirectShow do tipo GUID_STREAMTRACE.

Sintaxe

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

Membros

id

Identificador de evento. Consulte Observações.

reserved

Reservado. Defina como zero.

dshowClock

Tempo de fluxo para esse evento, em unidades de 100 nanossegundos. Esse valor é opcional e pode ser zero.

data

Dados de evento opcionais que consistem em quatro valores ULONGLONG . O significado desses dados depende do identificador de evento.

Comentários

Os identificadores de evento a seguir são definidos.

Identificador de evento Descrição
PERFINFO_STREAMTRACE_MPEG2DEMUX_PTS_TRANSLATION Registrado quando o filtro MpEG-2 Demultiplexer converte um PTS (carimbo de data/hora de apresentação) em tempo de fluxo.
  • data[0]: hora de início convertida.
  • data[1]: tempo de parada convertido.
  • data[2]. Identificador de fluxo para o pino de entrada.
  • data[3]: PTS que foi convertido.
PERFINFO_STREAMTRACE_MPEG2DEMUX_SAMPLE_RECEIVE Registrado quando MPEG-2 Demultiplexer recebe uma amostra.
PERFINFO_STREAMTRACE_VMR_BEGIN_ADVISE Registrado quando a VMR agenda um exemplo para renderização, imediatamente antes que a VMR chame IReferenceClock::AdviseTime.
  • data[0]: hora de referência quando o streaming começou, que corresponde ao tempo de fluxo zero.
PERFINFO_STREAMTRACE_VMR_BEGIN_DECODE Registrado quando a VMR inicia uma operação de decodificação, ou seja, quando o decodificador chama IAMVideoAccelerator::BeginFrame. Nenhum dado do evento.
PERFINFO_STREAMTRACE_VMR_BEGIN_DEINTERLACE Registrado quando a VMR inicia uma operação de desinterlacagem ou composição de vídeo. Nenhum dado do evento.
PERFINFO_STREAMTRACE_VMR_DROPPED_FRAME Registrado quando a VMR descarta um quadro; por exemplo, se uma amostra estava atrasada.
  • data[0]: hora de início de exemplo.
  • data[1]: Hora de término de exemplo.
PERFINFO_STREAMTRACE_VMR_END_ADVISE Registrado quando a VMR recebe uma notificação de aviso do relógio de referência. Nenhum dado do evento.
PERFINFO_STREAMTRACE_VMR_END_DECODE Registrado quando a VMR encerra uma operação de decodificação, ou seja, quando o decodificador chama IAMVideoAccelerator::EndFrame. Nenhum dado do evento.
PERFINFO_STREAMTRACE_VMR_END_DEINTERLACE Registrado quando a VMR conclui uma operação de desinterlacização ou composição de vídeo. Nenhum dado do evento.
PERFINFO_STREAMTRACE_VMR_RECEIVE Registrado quando a VMR recebe um novo exemplo. Nenhum dado do evento.
PERFINFO_STREAMTRACE_VMR_RENDER_TIME Registrado quando a VMR termina de renderizar um quadro.
  • data[0]: tempo necessário para renderizar esse quadro.
  • data[1]: média de execução de tempos de renderização de quadro.

 

Para registrar esse evento em um filtro DirectShow, use a função PERFLOG_STREAMTRACE , que é definida no arquivo de cabeçalho Dxmperf.h. Esse cabeçalho está incluído nas classes base do DirectShow.

Requisitos

Requisito Valor
parâmetro
Perfstruct.h

Confira também

Estruturas do DirectShow

Rastreamento de eventos no DirectShow

GUIDs de evento de rastreamento