이 문서에서는 DirectShow에서 사용되는 기본적인 용어와 개념을 소개한다. 이 문서를 읽고 나면 당신은 첫번째 DirectShow 어플리케이션을 만들 준비가 되어있을 것이다.

필터와 필터그래프

DirectShow의 기본 빌딩 블럭은 필터라고 불리는 소프트웨어 컴포넌트이다. 필터는 멀티미디어 스트림에서 몇몇 연산을 연산을 하는 소프트웨어 컴포넌트이다. 예를들어 DirectShow 필터는 아래의 것들을 할 수 있다.

  • 파일 읽기
  • 비디오 캡쳐 장치로부터 비디오 형식 얻기
  • MPEG-1비디오같은 다양한 스트림 형식 해석
  • 그래픽 카드나 사운드로의 데이터 전달

필터는 입력을 받고 출력을 생산한다. 예를들어 만약 필터가 MPEG-1비디오를 디코드할 때 입력은 MPEG로 인코딩된 스트림 그리고 출력은 압축되지않은 비디오 프레임종류들 이다.

in DirectShow an application performs any task by connecting chains of filters together, so that the output from one filter becomes the input for another.  연결된 필터들을 필터 그래프라 부른다.

예를 들어 아래 다이어그램은 AVI 파일을 플레이하는 필터그래프를 보여준다.

 

Filter Graph to play an AVI file

AVI 파일을 재생하는 필터그래프

 

파일 소스 필터는 하드디스크에서 AVI파일을 읽는다. AVI Splitter 필터는 파일을 압축된 비디오 스트림과 오디오스트림 두 개의 스트림으로 분석한다. AVI 압축해제 필터는 비디오 프레임을 디코드한다. 비디오 렌더러 필터는 DirectDraw 또는 GDI를 통하여 프레임을 출력하게된다. 기본 DirectSound 장치 필터는 DirectSound를 사용하여 오디오 스트림을 재생한다.

응용프로그램은 모든 데이터 흐름을 관리할 필요는 없다. 그 대신 필터 그래프 매니저라 불리는 high-level 구성요소에 의해 필터들은 컨트롤된다. 응용프로그램은 각각 "Run" (to move data through the graph) or "Stop" (to stop the flow of data)같은 high-levle API로 만든다. 만약 당신이 스트림 작업을 보다 더 효율적으로 관리하기를 원한다면 당신은 COM인터페이스를 통해 필터에 직접 접근 할 수 있다. 필터 그래프 매니저는 또한 응용프로그램에 이벤트를 통지를 전달 한다.

필터 그래프 관리자는뿐만 아니라 다른 목적을 제공한다: 필터들을 함께 연결하여 필터 그래프를 만드는 어플리케이션의 방법을 제공한다. (DirectShow는 또한 이 작업을 단순화하기위한 다양한 도움을 제공한다. 이것들은 이 문서에서 완벽하게 설명되어있다.)

DirectShow 어플리케이션 작성

넓은 범위에서 어떠한 DirectShow 어플리케이션이라도 세 가지 작업을 수행해야한다. 이것들은 아래 다이어그램에 그려져있다.   

Typical DirectShow application

전형적인 DirectShow 어플리케이션

 

  1. 어플리케이션은 필터 그래프 매니저의 인스턴스를 생성한다.
  2. 어플리케이션은 필터 그래프를 만들기 위해 필터 그래프 매니저를 사용한다. 그래프에서의 정확한 필터 집합은 어플리케이션에 의존적이다.
  3. 어플리케이션은 필터를 통해 필터그래프와 스트림 데이터를 조절하는 필터 그래프 매니저를 사용한다.

작업이 완료되면 응용프로그램은 필터 그래프 매니저와 모든 필터를 해제한다.

DirectShow COM 기반이다; 필터 그래프 매니저 그리고 필터는 모두 COM객체이다. 당신은 DirectShow프로그래밍을 시작하기전에 COM 클라이언트 프로그래밍에 대한 기본 바탕이 있어야한다. 많은 책들을 통해 COM 프로그래밍을 배울 수 있다.

DirectShow를 시작하려면 단순한 콘솔 파일 재생 어플리케이션이 있는 How To Play a File 이라는 글을 읽어라. About DirectShow 섹션은 DirectShow 구조를 더 자세히 설명한다.  섹션  Using DirectShow는 캡쳐와 비디오편집, DVD재생, 그리고 텔레비전 같은 DirectShow에 의해 지원되는 주요 시나리오를 검토한다. 

 

'DirectShow' 카테고리의 다른 글

Introduction to DirectShow Application Programming  (0) 2010.06.29
Audio/Video Playback in DirectShow  (0) 2010.06.28
DirectShow Reference  (0) 2010.06.28
DirectShow Samples  (0) 2010.06.28
Using DirectShow  (0) 2010.06.28
About DirectShow  (0) 2010.06.28
Getting Started  (0) 2010.06.25
Introduction to DirectShow  (0) 2010.06.25
DirectShow  (0) 2010.06.25
DirectShow Editing Services  (0) 2010.06.14
Posted by 큐에이

댓글을 달아 주세요