DirectShow DirectShow 레퍼런스 인터페이스 IAsyncReader BeginFlush [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
BeginFlush 메서드는, 플래시 처리를 시작 한다.
구문
HRESULT BeginFlush(void);
파라미터
이 메서드는, 인수를 취하지 않는다.
반환값
성공했을 경우는 S_OK 를 돌려준다. 그 이외의 경우는 S_FALSE 를 돌려준다.
주의
이 메서드는, 미처리의 읽기 요구를 모두 중단한다. 핀이 플래시 하고 있을 때는,IAsyncReader::Request 메서드는 실패해,IAsyncReader::WaitForNext 메서드에서는 아마 VFW_E_TIMEOUT 의 반환 코드로 즉석에서 호출해 원래로 제어가 돌아온다.
다운 스트림 입력 핀은, 다운 스트림 필터가 필터 그래프를 플래시 할 때는 반드시 이 메서드를 호출할 필요가 있다. 이 메서드를 호출한 후는,WaitForNext 메서드를 ppSample 인수에 의해 NULL 가 돌려주어질 때까지 호출해, 큐로부터 미처리의 샘플 큐를 소거한다. 에러 코드는 무시해, 각 샘플은 릴리즈 하는 것. 다음에,IAsyncReader::EndFlush 메서드를 호출해, 플래시 처리를 종료한다.
더 자세한 정보는, 「플래시」를 참조할것.
샘플 코드
이하의 예는, 다운 스트림 입력 핀이 이 메서드를 호출하는 방법을 나타낸 것이다.
m_pReader->BeginFlush();
while (1) {
IMediaSample *pSample;
DWORD_PTR dwUnused;
m_pReader->WaitForNext(0, &pSample, &dwUnused);
if(pSample) {
pSample->Release();
}
else { // 이후 샘플 없음.
break;
}
}
m_pReader->EndFlush();
참조