DirectShow DirectShow 레퍼런스 DirectShow base class base class 레퍼런스 CSource   [목차열람] [주소복사] [슬롯비우기]
CSource 클래스
 
Microsoft DirectX 9.0

CSource 클래스

CSource 클래스의 계층

CSource 클래스는, 소스 필터를 처리하기 위한 base class이다. CSource 로부터 파생한 필터에는,CSourceStream 클래스로부터 파생한 1 개 또는 복수의 출력 핀이 포함된다. 각각의 출력 핀은, 미디어 샘플을 다운 스트림에 푸쉬 하는 워커 thread를 생성 한다.

출력 핀을 처리 하려면 , 이하를 실행한다.

필터를 처리 하려면 , 이하를 실행한다.

복수의 thread간에 필터 상태를 동기 하려면 ,CSource::pStateLock 메서드를 호출한다. 이 메서드는, 필터 상태의 크리티컬 섹션의 포인터를 돌려준다. CAutoLock 클래스를 사용해, 크리티컬 섹션을 보관 유지한다. 다음과 같이 핀으로부터는 핀의 CBasePin::m_pFilter 멤버 변수로부터 pStateLock 에 액세스 할 수 있다.

CAutoLock lock(m_pFilter->pStateLock());

  CSource 클래스는, 데이터 플로우의 푸쉬 모델을 지원 하도록(듯이) 설계되고 있다. 이 클래스는, 파일 리더 필터의 생성에는 추천 하지 않는다. 파일 리더는,IAsyncReader 인터페이스를 개입시켜, 풀 모델을 지원 할 필요가 있다. 더 자세한 정보는, 「필터 개발자가 사용하는 데이터 플로우」를 참조할것.

요건

헤더 : Source.h 내에서 선언해, Streams.h 를 인클루드 한다.

라이브러리 : Strmbase.lib (리테일 빌드) 또는 Strmbasd.lib (디버그 빌드)를 사용한다.

프로텍트 멤버 변수  
m_iPins 필터의 핀의 수.
m_paStreams 핀의 배열.
m_cStateLock 필터 상태를 보호하는 크리티컬 섹션 개체.
퍼블릭 메서드
CSource 생성자 메서드.
~CSource 소멸자 메서드.
GetPinCount 필터 위에의 핀의 수를 얻어온다.
GetPin 핀을 얻어온다.
pStateLock 필터의 크리티컬 섹션 개체의 포인터를 얻어온다.
AddPin 필터에 새로운 출력 핀을 추가한다.
RemovePin 필터로부터 지정된 핀을 없앤다.
FindPinNumber 필터상으로부터, 지정된 수의 핀을 얻어온다.
IBaseFilter 메서드  
FindPin 지정한 식별자로 핀을 얻어온다.

↑TOP