DirectShow DirectShow 레퍼런스 DirectShow base class base class 레퍼런스 CSource [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
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 | 지정한 식별자로 핀을 얻어온다. |