目录 1
第1部分 DirectShow基础知识 1
第1章 系统概述 1
1.1 DirectX大家族 1
1.2 DirectShow简介 2
1.2.1 DirectShow系统 2
1.2.2 播放第一个媒体文件 3
1.3 COM编程基础 4
2.1 Filter概述 8
第2章 Filter原理 8
2.2 Filter的注册 9
2.3 Filter的媒体类型 13
2.3.1 majortype 13
2.3.2 subtype 14
2.3.3 formattype 15
2.4 Filter的连接 15
2.4.1 连接过程 15
2.4.2 智能连接 22
2.4.3 动态重建技术 26
5.3.1 加入一个指定CLSID的Filter 1 30
2.5 Filter的数据传送 32
2.5.1 推模式 33
2.5.2 拉模式 34
2.6 Filter的状态转换 35
2.7 媒体定位的实现 39
2.8 质量控制的实现 41
2.9 音视频同步解决方案 44
2.10 对硬件的支持 47
2.11 VMR-9的发布 49
2.11.1 VMR的新特性 49
2.11.2 VMR的结构 50
2.11.3 VMR使用策略 51
第3章 DirectX媒体对象(DMO) 53
3.1 DMo概述 53
3.2 DMO的使用 54
3.2.1 在应用程序中使用DMO 54
3.2.2 在DirectShow中使用DMO 60
3.3 DMO的开发要点 61
3.3.1 DMO中的媒体类型 62
3.3.2 DMO的ATL实现 63
3.3.3 DMO的注册 64
第2部分 DirectShow开发与应用 66
第4章 Filter组件的开发 66
4.1 开发环境的配置 66
4.2 SDK基类分析 67
4.2.1 CBaseObjeet 68
4.2.2 CUnknown 68
4.2.3 CBaseFilter 68
4.2.4 CBasePin 69
4.2.5 CBaselnputPin和CBase-OutputPin 71
4.2.6 CSource 72
4.2.7 CSourceStream 73
4.2.8 CTransformFilter 74
4.2.9 CTransInPlaceFilter 75
4.2.10 CVideoTransformFi1ter 80
4.2.11 CBaseRenderer 80
4.2.12 CBaseVideoRenderer 81
4.2.13 CPullPin 82
4.2.14 COutputQueue 83
4.2.15 CSourceSeeking 83
4.2.16 CEnumPins 84
4.2.17 CEnumMediaTypes 85
4.2.18 CMemAllocator 86
4.2.19 CMediaSample 87
4.2.20 CBaseReferenceClock 88
4.2.22 CBasePropertyPage 89
4.2.21 CMediaFype 89
4.3 Filter项目的功能分析 90
4.3.1 功能分析的一般过程 91
4.3.2 字符叠加Filter之功能分析 92
4.4 Filter的设计 93
4.4.1 选择一个合适的父类 93
4.4.2 应用结构设计 94
4.5 编码实现 95
4.5.1 Filter注册信息 95
4.5.2 框架函数的实现 98
4.5.3 逻辑控制类的实现 101
4.5.4 自定义接口的实现 109
4.5.5 属性页的实现 115
4.5.6 产权保护 119
4.6 Filter的调试 120
4.7 MFC Filter 122
第5章 DireCtShow应用开发过程 127
5.1 开发环境的配置 127
5.1.1 需要包含的头文件 127
5.1.2 需要连接的库文件 127
5.1.3 VC的系统编译环境 128
5.2 一般开发过程 128
5.3 通用Filter Graph构建技术 130
5.3.2 得到Filter上的未连接Pin 131
5.3.3 连接两个Filter 132
5.3.4 查找Filter或Pin上的接口 134
5.3.5 遍历Filter链路 136
5.3.6 成批删除Filter 137
5.4 事件交互的实现 140
5.5 进度条的实现 143
5.6 Filter属性页的显示 145
5.7 系统设备的枚举 145
5.8 图片的抓取 148
5.9 一个简单的媒体文件播放器 152
第6章 音频采集 156
6.1 应用分析 156
6.1.1 应用方案 156
6.1.2 开发要点 159
6.2 实例解剖 160
6.2.1 实现的功能 160
6.2.2 实现要点 161
第7章 视频采集 166
7.1 应用分析 166
7.1.1 WDM与VFW 167
7.1.2 构建Filter Graph 170
7.1.3 模拟电视接收 172
7.1.4 输入端子的选择 178
7.1.5 视频参数的设置 182
7.1.6 热插拔的支持 185
7.2.1 实现的功能 188
7.2 实例解剖 188
7.2.2 实现要点 189
第8章 数码摄像机的支持 195
8.1 应用分析 195
8.1.1 磁带的播放 197
8.1.2 磁带的录像 203
8.1.3 DV的采集 205
8.2 实例解剖 208
8.2.1 实现的功能 208
8.2.2 实现要点 208
第9章 非线性编辑DES 214
9.1 DES概述 214
9.1.1 时间线模型 214
9.1.2 时间概念 217
9.1.3 媒体源 219
9.1.4 音、视频效果与过渡 223
9.1.5 输出控制引擎 226
9.1.6 错误日志 230
9.1.7 DES 项目管理 232
9.2 DES剖析 233
9.3 DES新特性 238
9.3.1 视频缩放器的定制 238
9.3.2 解码器的选择 238
9.4 实例解剖 240
9.4.1 实现的功能 240
9.4.2 实现要点 241
10.1 DVD基础知识 247
第10章 DVD播放 247
10.2 应用分析 248
10.2.1 支持MPEG2 248
10.2.2 DVD导航器 250
10.3 实例解剖 253
10.3.1 实现的功能 253
10.3.2 实现要点 253
第11章 Windows Media应用 259
11.1 应用分析 259
11.2 实例解剖 261
11.2.1 实现的功能 261
11.2.2 实现要点 262
12.1.1 实现的功能 267
12.1 拉模式例子 267
第3部分 SDK典型源码分析 267
第12章 Source Filter例子 267
12.1.2 实现要点 268
12.2 推模式例子 275
12.2.1 实现的功能 275
12.2.2 实现要点 276
第13章 Transform Filter例子 281
13.1 Transform例子 281
13.1.1 实现的功能 281
13.1.2 实现要点 282
13.2 Trans-1n-Place例子 287
13.2.1 实现的功能 287
13.2.2 实现要点 288
第14章 RenderrFilter例子 292
14.1 Video Renderer例子 292
14.1.1 实现的功能 292
14.1.2 实现要点 293
14.2 基于CBaseFilter例子 296
14.2.1 实现的功能 297
14.2.2 实现要点 297
第15章 DMO例子 304
15.1 实现的功能 304
15.2 实现要点 304
16.1.2 实现要点 313
16.1.1 实现的功能 313
第16章 枚举例子 313
16.1 系统枚举例子 313
16.2 Filter映射例子 317
16.2.1 实现的功能 317
16.2.2 实现要点 318
16.3 DMO枚举例子 322
16.3.1 实现的功能 322
16.3.2 实现要点 323
第17章 媒体播放器例子 325
17.1 实现的功能 325
17.2 实现要点 325
18.2 解决方案 336
18.2.1 Windows Socket网络传输技术 336
第18章 MPEG流的网络客户端播放 336
18.1 需求定义 336
第4部分 开放源码分析 336
18.2.2 DirectShow技术应用 337
18.2.3 一种双缓冲队列技术 337
18.3 源码分析 338
18.4 问题会诊 347
第19章 MPEG2视频解码器 349
19.1 需求定义 349
19.2 开放源码分析 349
19.3 Filter设计 355
19.4 Filter编码 355