다음을 통해 공유


IAsyncReader::WaitForNext 메서드(strmif.h)

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

메서드는 WaitForNext 보류 중인 다음 읽기 요청이 완료되기를 기다립니다.

구문

HRESULT WaitForNext(
  [in]  DWORD        dwTimeout,
  [out] IMediaSample **ppSample,
  [out] DWORD_PTR    *pdwUser
);

매개 변수

[in] dwTimeout

시간 제한(밀리초)을 지정합니다. INFINITE 값을 사용하여 무기한 대기

[out] ppSample

IMediaSample 인터페이스 포인터를 수신하는 변수의 주소입니다.

[out] pdwUser

IAsyncReader::Request 메서드에 지정된 dwUser 매개 변수의 값을 받는 변수에 대한 포인터입니다.

반환 값

HRESULT 값을 반환합니다. 가능한 값은 다음과 같습니다.

반환 코드 설명
VFW_E_TIMEOUT
제한 시간이 만료되었거나 핀이 플러시되고 있습니다.
VFW_E_WRONG_STATE
핀이 플러시되고 있습니다.
E_FAIL
읽기 오류가 발생했습니다.
S_OK
성공.
S_FALSE
파일의 끝에 도달했습니다. 요청된 것보다 더 적은 바이트를 검색했습니다.

설명

메서드가 성공하면 ppSample 매개 변수에는 버퍼가 요청된 데이터를 보유하는 미디어 샘플에 대한 포인터가 포함됩니다. IMediaSample::GetTime 메서드를 호출하고 결과를 10,000,000으로 나누어 시작 및 중지 바이트를 확인합니다. 샘플이 순서대로 반환될 수 있습니다. 데이터 처리를 마치면 샘플을 해제합니다.

핀이 플러시되는 경우 메서드가 실패합니다. 그러나 ppSample에서 빈 샘플을 반환할 수 있습니다. *ppSampleNULL이 아닌 경우 샘플을 해제하고 삭제합니다. 자세한 내용은 IAsyncReader::BeginFlush를 참조하세요.

읽기 오류가 발생하면 원본 필터는 필터 그래프 관리자에 오류 이벤트를 보냅니다. 호출자가 오류를 신호할 필요가 없습니다.

요구 사항

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

추가 정보

오류 및 성공 코드

IAsyncReader 인터페이스