DirectShow DirectShow 레퍼런스 인터페이스 IAsyncReader BeginFlush   [목차열람] [주소복사] [슬롯비우기]
IAsyncReader::BeginFlush
 
Microsoft DirectX 9.0

IAsyncReader::BeginFlush

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();

참조

↑TOP