2009. 3. 16. 23:39
프로그래밍/DirectShow
DirectShow에서 Null Rendering 하는 방법
1. 우선 설명서 (CLSID_)와 기능 (IID_) 정의 해주고 CoCreateInstance 실행 하면 m_pGB 멤버 변수에 포인터 리턴됨. 이로써 필터 그래프 관리자 생성됨.
2. 미리 가지고 있는 파일 이름을 넘겨주고 RenderFile() 명령 수행.
참 쉽죠잉~
JIF(CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void**)&m_pGB));
2. 미리 가지고 있는 파일 이름을 넘겨주고 RenderFile() 명령 수행.
JIF(m_pGB->RenderFile(wFileName, NULL));
참 쉽죠잉~
재생중인 스트림이 있을경우 재생 중지 하고 필터 매니저 그래프 종료하기
1. IMediaControl interface를 QueryInterface 함수를 이용해 포인터 얻어오기.
2. 재생중인 스트림이 있으면 정지 시키고 pMC 와 필터 그래프 관리자 해제
IMediaControl * pMC;
JIF(m_pGB->QueryInterface(IID_IMediaControl, (void**)&pMC);
JIF(m_pGB->QueryInterface(IID_IMediaControl, (void**)&pMC);
2. 재생중인 스트림이 있으면 정지 시키고 pMC 와 필터 그래프 관리자 해제
if(pMC != NULL)
LIF(pMC->Stop()); // 재생하고 싶은 경우는 LIF(pMC->Run());
SAFE_RELEASE(pMC);
SAFE_RELEASE(m_pGB);
LIF(pMC->Stop()); // 재생하고 싶은 경우는 LIF(pMC->Run());
SAFE_RELEASE(pMC);
SAFE_RELEASE(m_pGB);
'프로그래밍 > DirectShow' 카테고리의 다른 글
필터 렌더링 (1) - 자동 & 수동 소스 필터 렌더링 (0) | 2009.03.17 |
---|---|
필터 추가후 렌더링 하기 (0) | 2009.03.16 |
COM (Component Object Model) 과 DirectShow (2) | 2009.03.14 |
DirectShow 제일 중요한 필터 그래프 관리자 생성 및 해제 (0) | 2008.01.26 |
DS에서 알아야 할 각종 멀티미디어 관련 단어들... (0) | 2008.01.24 |