PERFINFO_DSHOW_STREAMTRACE 구조체

[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngineMedia Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 DirectShow 대신 MediaPlayer, IMFMediaEngine오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

구조체에는 PERFINFO_DSHOW_STREAMTRACE GUID_STREAMTRACE 형식의 DirectShow 추적 이벤트에 대한 데이터가 포함됩니다.

구문

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

멤버

id

이벤트 식별자입니다. 설명 부분을 참조하세요.

reserved

예약되어 있습니다. 0으로 설정됩니다.

dshowClock

이 이벤트의 스트림 시간(100나노초 단위)입니다. 이 값은 선택 사항이며 0일 수 있습니다.

data

4개의 ULONGLONG 값으로 구성된 선택적 이벤트 데이터입니다. 이 데이터의 의미는 이벤트 식별자에 따라 달라집니다.

설명

다음 이벤트 식별자가 정의됩니다.

이벤트 식별자 Description
PERFINFO_STREAMTRACE_MPEG2DEMUX_PTS_TRANSLATION MPEG-2 Demultiplexer 필터가 PTS(프레젠테이션 타임스탬프)를 스트림 시간으로 변환할 때 기록됩니다.
  • data[0]: 변환된 시작 시간입니다.
  • data[1]: 변환된 중지 시간입니다.
  • data[2]. 입력 핀의 스트림 식별자입니다.
  • data[3]: 변환된 PTS입니다.
PERFINFO_STREAMTRACE_MPEG2DEMUX_SAMPLE_RECEIVE MPEG-2 Demultiplexer가 샘플을 수신할 때 기록됩니다.
PERFINFO_STREAMTRACE_VMR_BEGIN_ADVISE VMR이 IReferenceClock::AdviseTime을 호출하기 직전에 VMR이 렌더링 샘플을 예약할 때 기록됩니다.
  • data[0]: 스트리밍이 시작된 참조 시간(스트림 시간 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 VMR이 디인터레이싱 또는 비디오 작성 작업을 완료할 때 기록됩니다. 이벤트 데이터가 없습니다.
PERFINFO_STREAMTRACE_VMR_RECEIVE VMR이 새 샘플을 수신할 때 기록됩니다. 이벤트 데이터가 없습니다.
PERFINFO_STREAMTRACE_VMR_RENDER_TIME VMR이 프레임 렌더링을 완료할 때 기록됩니다.
  • data[0]: 이 프레임을 렌더링하는 데 걸린 시간입니다.
  • data[1]: 프레임 렌더링 시간의 실행 평균입니다.

 

DirectShow 필터에서 이 이벤트를 기록하려면 헤더 파일 Dxmperf.h에 정의된 PERFLOG_STREAMTRACE 함수를 사용합니다. 이 헤더는 DirectShow 기본 클래스에 포함되어 있습니다.

요구 사항

요구 사항
헤더
Perfstruct.h

추가 정보

DirectShow 구조체

DirectShow의 이벤트 추적

추적 이벤트 GUID