다음을 통해 공유


IAMStreamControl::StartAt 메서드(strmif.h)

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

메서드는 StartAt 데이터 배달을 시작할 때 핀에 알릴 수 있습니다.

구문

HRESULT StartAt(
  [in] const REFERENCE_TIME *ptStart,
  [in] DWORD                dwCookie
);

매개 변수

[in] ptStart

핀이 데이터 배달을 시작해야 하는 시기를 지정하는 REFERENCE_TIME 값에 대한 포인터입니다. 값이 MAXLONGLONG (0x7FFFFFFFFFFFFFFF)이면 메서드는 이전 시작 요청을 취소합니다. psStartNULL이면 그래프가 실행되면 핀이 즉시 시작됩니다.

미리 보기 핀의 경우 미리 보기 핀이 제공하는 샘플에 타임스탬프를 지정하지 않으므로 NULLMAXLONGLONG 값만 유효합니다.

[in] dwCookie

시작 알림과 함께 보낼 값을 지정합니다. 설명 부분을 참조하세요.

반환 값

메서드가 성공하면 반환 값이 S_OK. 그렇지 않으면 실패의 원인을 나타내는 HRESULT 값을 반환합니다.

설명

기본적으로 핀은 필터 그래프가 실행되는 즉시 데이터를 제공합니다. 메서드를 StartAt 사용하면 핀이 데이터 배달을 시작하기 전에 그래프가 실행된 후 지정된 시간까지 핀이 대기합니다.

dwCookie 매개 변수가 0이 아닌 경우 핀은 데이터 배달을 시작할 때 EC_STREAM_CONTROL_STARTED 이벤트를 보냅니다. 첫 번째 이벤트 매개 변수는 핀의 IPin 인터페이스에 대한 포인터이고 두 번째는 dwCookie 값입니다.

이 메서드는 다음과 같은 특수한 경우를 구현합니다.

  • ptStartNULL이면 그래프가 실행되는 즉시 핀이 시작됩니다. 이벤트가 전송되지 않고 dwCookie 값이 무시됩니다.
  • ptStartMAXLONGLONG 값이 포함되어 있고 보류 중인 중지 요청이 있는 경우 그래프가 실행되면 핀이 시작됩니다. 보류 중인 중지 요청이 없으면 핀이 중지된 상태로 유지됩니다. 두 경우 모두 시작 이벤트가 전송되지 않고 dwCookie 값이 무시됩니다.
이 메서드는 다음 경계 조건도 처리합니다.
  • 시작 시간이 샘플의 시작 시간과 중지 시간 사이에 속하는 경우 핀은 해당 샘플을 제공합니다.
  • 시작 시간이 중지 시간과 같으면 핀은 하나의 샘플을 제공합니다.
MAXLONGLONG 은 가능한 가장 큰 REFERENCE_TIME 값입니다. 기본 클래스 라이브러리에서는 상수 MAX_TIME 정의됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 strmif.h(Dshow.h 포함)
라이브러리 Strmiids.lib

추가 정보

오류 및 성공 코드

IAMStreamControl 인터페이스