DirectShow 를통한 Windows Mobile 멀티미디어어플리케이션제작 By 시삽홍성표
DirectShow 역사 DirectShow 역할 2
Media Foundation (Part of Windows Vista and later) DirectShow (Part of DirectX 8.0 SDK) DirectShow (standard component of Windows Mobile 5.0) Video for Windows ActiveMovie 1.0 (Codenamed Quartz) IE3.0 bundled Component Object Model Media Control Interface Audio Compression Manager ActiveMovie (Part of the DirectX 5) DirectShow (standard component of all Windows 98, CE ) DirectShow 1.0 Windows SDK DirectX 9.0 SDK Update 1997. 7 2005. 2 1996. 3 1997. 3 1998. 6 2000. 11 2005. 4 2006. 11 3
App Wrapper Graph Manager Filter API / Algorithm 4
구성요소 Filter Graph Ecosystem DirectShow 사용방법 COM Helper 5
Filter Graph Manager DirectShow Filters Media Samples Memory Allocators AM_MEDIA_TYPE MajorType SubType Media Types VIDEOINFOHEADER WAVEFORMATEX VIDEOINFOHEADER2 WAVEFORMATEXTENSIBLE 6
Windows Mobile 기본 Filters Filter ACM Wrapper Function ACM 을감싸고, DirectShow 에서 ACM 기능을사용할수있는기능을제공한다. IAMStreamConfig 인터페이스를통해서포멧을셋할수있다. Video/Image Compression Manager AVI 비디오코덱을디코딩하여재생할수있는샘플을출력한다. AVI Filter AVI 파일을파징하여직렬화된압축스트림을스트림별로나누어출력한다. DMO Wrapper DirectShow 내에서 DMO 모듈을사용할수있게한다. File Source (Async) File Source (URL) Stream 타입을갖는로칼파일에대한비동기입출력기능을제공한다. 출력픾은 IAsyncReader 인터페이스를통해서파일의내용에대한접근을제공한다. URL 로식별되고 Stream 타입을갖는원격지파일에대한비동기입출력기능을제공한다. 출력픾은 IAsyncReader 인터페이스를통해서파일의내용에대한접근을제공한다. MPEG-1 Parser/Splitter MPEG-1 Parser/Splitter filter 는 MPEG-1 데이터를순서적인오디오 / 비디오스트림으로나눈다. Overlay Mixer 목적색상키에대한 DirectDraw 하드웨어가속기능을제공하는비디오랜더링픿터. DirectShow Video Renderer 비디오트랜스폼픿터가출력하는디코딩된비디오샘플을출력하는일반적인비디오랜더링픿터. WAVE/AIFF/au/snd File Parser WAVE Parser filter 는 Wave 파일을파징하여 Audio Sample 을출력한다. Smart Tee Filter 하나의비디오스트림을캡쳐스트림과프리뷰스트림으로복제하는픿터. WM ASF Writer Filter Color Space Converter Filter Windows Media Format 의 Writer 객체를 Wrapping 하는 Filter. 복수개의입력스트림을받아서 ASF 파일을생성한다. 비디오샘플의색상타입간변홖을지원하는픿터. RGB, CLJR, Y41P, YUY2, YV12, YVU9 와같은픽셀을입력받아서 RGB, YV12 형식을출력한다. Image Sink Filter 입력되는비디오샘플을지정된이미지모멧의파일로저장한다. 픿터내부적으로 Imaging API 를사용한다. Audio Renderer Filter 오디오트랜스폼픿터가출력하는디코딩된오디오샘플을출력하는일반적인오디오랜더링픿터. 7
Filter Graph Manager Graph 생성 / 운영 / 소멸 Process 의기본단위 : Media Sample Windows Message 기반상태통지 Filter is COM + Filter Graph Ecosystem FilterGraph Ecosystem Of the Filter By the Filter For the Filter Filter 를통한 모듈재사용성 기능확장 Method Calls RenderFile() AddSourceFilter() Render() ConnectDirect() 8
Multimedia Process 변경 MP3Player AudioTranscoder : mp3 => wma Merge Audio/Video 9
Install Windows Mobile SDK DirectShow Header #include <dshow.h> Library Strmiids.lib Class ID Interface ID Strmbase.lib Filter Base Classes Library Document http://msdn.microsoft.com/en-us/library/ms940098.aspx 10
Class Factory Smart Pointer Class Method CoCreateInstance() Method QueryInterface() Manage Reference Count Return value Macro SUCCEEDED(r) return TRUE. Success : S_OK Not Success : S_FALSE Macro FAILED(r) return TRUE. False : E_FAIL 11
Mood Self Camera 12
In Grabber Out In Video Renderer Video Capture Source Capture Pin Preview Pin Still Pin In Smart Tee Capture Preview In Grabber Out In Image Sink Source Filter Transform Filters Renderer Filters 13
14
15
스마트폰모바일랩 의싞규기능 공개 / 비공개프로젝트협업공간제공 공작소의기능 커뮤니케이션툴 모니위키 포럼 이슈트래킹 소스형상관리 cvs, svn, git 팩키지배포 16
감사합니다 17