2009. 3. 16. 23:49
프로그래밍/DirectShow
앞에서 본 NULL Rendering의 경우에는 입력 파일에서 곧바로 렌더링을 했지만 필터 추가후 렌더링은 원하는 특정 필터를 먼저 필터 그래프 매니져에 올려놓고 렌더링을 하는 것을 말한다.
이렇게 하면 필터 그래프가 만들어질때 이미 삽입시킨 필터를 최대한 포함시켜 렌더링을 하게 된단다.
1. 필터 그래프 매니저 생성
2. 추가 시키고 싶은 필터 생성
3. 필터를 그래프 매니져에 추가
4. CoCreateInstance에 의해 생성된 필터 COM 객체 Release 시키기
5. Null Rednering 기술 사용
이렇게 하면 필터 그래프가 만들어질때 이미 삽입시킨 필터를 최대한 포함시켜 렌더링을 하게 된단다.
1. 필터 그래프 매니저 생성
JIF(CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void**)&m_pGB);
2. 추가 시키고 싶은 필터 생성
IBaseFilter *pFilterOverlayMixer;
LIF(CoCreateInstance(CLSID_OverlayMixer, NULL, CLSCTX_INPROC_SERVER, IID_IBaseFilter, (void**)&pFilterOverlayMixer));
LIF(CoCreateInstance(CLSID_OverlayMixer, NULL, CLSCTX_INPROC_SERVER, IID_IBaseFilter, (void**)&pFilterOverlayMixer));
3. 필터를 그래프 매니져에 추가
LIF(m_pGB->AddFilter(pFilterOverlayMixer, L"Overlay Mixer");
4. CoCreateInstance에 의해 생성된 필터 COM 객체 Release 시키기
SAFE_RELEASE(pFilterOverlayMixer);
5. Null Rednering 기술 사용
JIF(m_pGB->RenderFile(wFileName, NULL));
'프로그래밍 > DirectShow' 카테고리의 다른 글
DirectShow 필터로 동영상 추출하여 OpenGL로 렌더링 하기 (0) | 2009.05.16 |
---|---|
필터 렌더링 (1) - 자동 & 수동 소스 필터 렌더링 (0) | 2009.03.17 |
Null Rendering (0) | 2009.03.16 |
COM (Component Object Model) 과 DirectShow (2) | 2009.03.14 |
DirectShow 제일 중요한 필터 그래프 관리자 생성 및 해제 (0) | 2008.01.26 |