- 博客(0)
- 资源 (7)
- 收藏
- 关注
用DirectShow开发的详细说明文档
内容非常详尽,是一个公司的内部培训资料,详细说明了如何使用DirectShow开发视频。绝对超值!!!
1 ABOUT DIRECTSHOW 基础..............................................................................................................7
1.1 设置DSHOW的开发环境.................................................................................................................7
1.2 先演示一下DSHOW 使用的一个例子.............................................................................................8
1.3 DIRECSHOW概述...............................................................................................................................8
1.4 FILTER GRAPH 及其组成...................................................................................................................8
1.5 构建一个FILTER GRAPH 图............................................................................................................15
1.6 数据流在FILTER GRAPH 里的流动(DATA FLOW) .....................................................................15
1.7 事件通知机制(EVENT NOTIFICATION).......................................................................................19
1.8DIRECTSHOW中的时钟(TIME AND CLOCKS IN DSHOW).............................................................21
1.9 动态删除或增加FILTER(DYNAMIC GRAPH BUILDING).............................................................23
1.10 PLUG-IN DISTRIBUTORS .................................................................................................................25
2 DIRECTSHOW 的应用(USING DIRECTSHOW)......................................................................25
2.1 在GRAPHEDIT 中模拟构建GRAPH(SIMULATING GRAPH BUILDING) .......................................25
2.2DIRECTSHOW基本应用(BASIC TASKS).......................................................................................33
2.2.1 视频提交(Video Rendering) ...............................................................................................33
2.2.2 如何处理事件通知(Event Notification) ............................................................................36
2.2.3 如何枚举系统的设备和过虑器..............................................................................................37
2.2.4 如何枚举Graph 图中的对象(filter,pin) .........................................................................41
2.2.5 构建Graph 图常用技术.........................................................................................................43
2.2.5.1 如何根据CLSID 向graph 中添加filter..............................................................................43
2.2.5.2 如何查找filter 空闲的pin。...............................................................................................44
2.2.5.3 如何连接两个Filter.............................................................................................................45
2.2.5.4 如何获得filter 或者pin 的接口指针..................................................................................47
2.2.5.5 如何查找和某个filter 的上下相连的filter.........................................................................49
2.2.5.6 如何删除graph 中的所有filter...........................................................................................52
2.2.5.7 如何利用Capture Graph Builder 构建Graph 图表...........................................................53
2.2.6 Seeking Filter graph.................................................................................................................55
2.2.7 如何设置Graph 时钟(Setting Graph Clock) ....................................................................57
2.2.8 在Dshow 中如何调试.............................................................................................................58
2.3 音频的捕捉....................................................................................................................................58
2.4 视频的捕捉(VIDEO CAPTURE)...................................................................................................59
2.4.1 关于视频捕捉(About Video Capture in Dshow).................................................................59
2.4.2 选择一个视频捕捉设备(Select capture device) ................................................................63
2.4.3 预览视频(Previewing Video) ..............................................................................................65
2.4.4 如何捕捉视频流并保存到文件(Capture video to File) ....................................................65
2.4.5 如何控制Capture Graph(Controlling Capture Graph) .....................................................69
2.4.6 视频捕捉的任务(Video Capture Tasks) .............................................................................71
2.4.6.1 如何配置一个视频捕捉设备...............................................................................................71
2.4.6.2Working With Crossbars .........................................................................................................74
DirectShow SDK 学习笔记作者:智慧的鱼 中华视频网整理
- 3 -
2.4.6.3 将设备从系统中移走时的事件通知(Device remove Notify) .........................................74
2.4.6.4 从静止图像pin 中捕捉图片................................................................................................75
2.4.7 数字视频DV(Digital Video in Direcshow) ........................................................................78
2.4.7.1 关于Directshow 中的DV 应用...........................................................................................78
2.4.7.2 如何将DV 捕捉到一个文件中............................................................................................78
2.4.7.3 如何将文件中的DV 读入到盘中........................................................................................78
2.4.7.4 DVINFO Field Settings in the MSDV Driver ........................................................................78
2.4.8 如何控制DV 便携式摄像机(Controlling a DV Camcorder) ...........................................78
2.4.9 模拟电视的视频捕捉(Analog Television)..........................................................................78
2.4.10 视频捕捉的高级话题............................................................................................................78
2.4.10.1 处理视频重画事件.............................................................................................................78
2.4.10.2 如何确定pin 的种类(Pin Categories) ..........................................................................79
2.4.10.3 如何使用一个SmartTee Filer ............................................................................................81
2.4.10.4 如何使用一个重叠混合器(Overlay Mixer in Video Capture) ......................................81
2.4.10.5Video Port Pins.....................................................................................................................81
2.4.10.6VideoInfo2 Format Type .......................................................................................................81
2.4.10.7 手动添加WDM类驱动filter.............................................................................................81
2.4.10.8 如何创建内核filter ............................................................................................................83
2.5DIRECTSHOW EDITING SERVICES ......................................................................................................85
2.6DVD 应用(DVDAPPLICATION) ..................................................................................................85
2.7MPEP_2 支持.................................................................................................................................85
2.8WINDOWS MEDIA 应用.....................................................................................................................85
2.9 TV 应用..........................................................................................................................................85
2.10 使用视频混合RENDER.................................................................................................................86
2.11 USING THE STREAM BUFFER ENGINE .............................................................................................86
2.12 开发自己的FILTER.......................................................................................................................86
1 如何开发自己的filter ..................................................................................................................86
2filter 的连接...................................................................................................................................95
3filter 间的数据流动........................................................................................................................98
4pin 连接时数据格式的动态改变.................................................................................................101
4 Threads and Critical Sections ......................................................................................................101
5 质量控制管理..............................................................................................................................107
6dshow 和com...............................................................................................................................107
7 如何写Transform Filter ..............................................................................................................120
8 如何写视频播放过滤器Video Renderer Filter ..........................................................................131
9 如何写捕捉filter(源) .............................................................................................................137
10 创建filter 属性页.....................................................................................................................141
11 capture and compression formats ...............................................................................................148
12Graph 如何定位filter 的位置并加载........................................................................................150
2.13 ENCODER AND DECODER 开发.....................................................................................................150
3DIRECTSHOW 的基类学习..............................................................................................................150
3.1 DSHOW的基类简介......................................................................................................................150
3.2 FILTER 和PIN 的基类....................................................................................................................153
3.2.1CBaseFilter .............................................................................................................................153
DirectShow SDK 学习笔记作者:智慧的鱼 中华视频网整理
- 4 -
3.2.2CBasePin................................................................................................................................159
3.2.3CBaseInputPin ........................................................................................................................168
3.2.4CBaseOutputPin.....................................................................................................................172
3.3 几种常用FILTER 的基类..............................................................................................................176
3.3.1CSource ..................................................................................................................................176
3.3.2CSourceStream.......................................................................................................................178
3.3.3CTransformFilter ....................................................................................................................182
3.3.4CTransformInputPin...............................................................................................................188
3.3.5CTransformOutputPin............................................................................................................189
3.3.6CTransInPlaceFilter...............................................................................................................191
3.3.7 CTransInPlaceInputPin..........................................................................................................193
3.3.8CTransInPlaceOutputPin.......................................................................................................193
3.3.4CVideoTransformFilter ...........................................................................................................193
3.3.9CBaseRenderer.......................................................................................................................194
3.3.10CRendererInputPin ...............................................................................................................205
3.3.11CBaseVideoRenderer .............................................................................................................206
3.3.12 CBaseAllocator ....................................................................................................................210
3.3.13 CMediaSample .....................................................................................................................212
3.4FILTER 和PIN 经常用到的类.........................................................................................................214
3.4.1CPullPin.................................................................................................................................214
3.4.2COutputQueue........................................................................................................................216
3.4.3CSourceSeeking......................................................................................................................216
3.4.4CEnumPins.............................................................................................................................216
3.4.5CEnumMediaTypes.................................................................................................................216
3.4.6CMemAllocator .......................................................................................................................216
3.4.7CMediaSample ........................................................................................................................216
3.4.8CBaseReferenceClock .............................................................................................................219
3.4.9CMediaType ............................................................................................................................219
3.5 几个比较重要的类.......................................................................................................................219
4DIRECSHOW 提供的接口学习.........................................................................................................220
5DIRECTSHOW TUTORIALS...........................................................................................................220
5.1IMPLEMENTING A SEEK BAR............................................................................................................220
5.2DISPLAYING A FILTER'S PROPERTY PAGES .......................................................................................220
5.3GRABBING A POSTER FRAME...........................................................................................................220
5.4USING THE SAMPLE GRABBER ........................................................................................................220
5.5RECOMPRESSING AN AVI FILE.........................................................................................................220
6C++在电视开发中的应用....................................................................................................................220
6.1TV RATINGS REFERENCE ................................................................................................................220
6.2VIDEO CONTROL C++ REFERENCE..................................................................................................220
6.3MICROSOFT UNIFIED TUNING MODEL C++ REFERENCE .................................................................220
6.4TRANSPORT INFORMATION INTERFACES ..........................................................................................220
6.5BDAFILTER INTERFACES................................................................................................................220
DirectShow SDK 学习笔记作者:智慧的鱼 中华视频网整理
- 5 -
6.6MPEG-2 SECTIONS AND TABLES FILTER REFERENCE .....................................................................220
7DIRECSHOW 提供的FILTER .........................................................................................................220
2011-05-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人