vc定制文件打开对话框,实现文本预览.visual c++



-
vc定制打开文件对话框,实现文本预览.zip
8.66MB
visual c++实例精通张军著源码
2018-07-03配合visual c++实例精通书籍的源码,找了很久最后才找到,对学习帮助非常大的一本书,欢迎下载。第1章 认识Visua0C++6.0 1.1 第一个控制台应用程序实例 1.2 第一个Windows应用程序实例 1.3 基于对话框的MFC应用程序实例 1.4 单文档MFC应用程序实例 1.5 多文档MFC应用程序实例 1.6 宏的使用实例 第2章 使用常用W8n32控件 2.1 静态文本、文本框和按钮使用实例 2.2 复选框和单选按钮使用实例 2.3 组合框(ComboBox)和列表框(ListBox)使用实例 2.4 滚动条(ScrollBar)使用实例 2.5 数值调节按钮(Spin)
205.14MB
visual c++实例精通张军著
2018-07-03非常不错的一本vc开发的书籍,找了很久最后才找到,对学习帮助非常大的一本书,欢迎下载。第1章 认识Visua0C++6.0 1.1 第一个控制台应用程序实例 1.2 第一个Windows应用程序实例 1.3 基于对话框的MFC应用程序实例 1.4 单文档MFC应用程序实例 1.5 多文档MFC应用程序实例 1.6 宏的使用实例 第2章 使用常用W8n32控件 2.1 静态文本、文本框和按钮使用实例 2.2 复选框和单选按钮使用实例 2.3 组合框(ComboBox)和列表框(ListBox)使用实例 2.4 滚动条(ScrollBar)使用实例 2.5 数值调节按钮(Spin)使用实例 2.6 进度条(Progress)使用实例 2.7 滑块控件(Slider)使用实例 2.8 热键控件(HotKey)使用实例 2.9 列表控件(ListContr01)使用实例 2.10 树形控件(yreeContr01)使用实例 2.11 格式文本框(RicEdit)使用实例 2.12 属性页(TabContr01)使用实例 2.13 动画控件(Animate)使用实例 2.14 日期时间选择控件(Date置imePicker)使用实例 2.15 日历控件(MonthCalendar)使用实例 2.16 IP输输入框(IPAddress)使用实例 第3章 使用高级W5n32控件丰富界面 3.1 窗体菜单使用实例 3.2 弹出式菜单使用实例 3.3 工具栏使用实例 3.4 256色工具栏使用实例 3.5 状态栏输出信息实例 3.6 状态栏彩色渐变进度条实例 3.7 Tooltip显示即时提示实例 第4章 窗体 4.1 创建和显示窗体实例 4.2 让窗体保持在最顶层实例 4.3 创建半透明宙体实例 4.4 创建椭圆窗体实例 4.5 创建文字宙体实例 4.6 利用图片生成异形窗体实例 4.7 以动画方式显示和隐藏宙体实例 4.8 控件自动适应窗体大小实例 4.9 多个控件改变大小时防止闪烁实例 4.10 限制窗体的最大和最小尺寸实例 4.11 让窗体具有停靠效果实倒 4.12 枚举系统中的窗口实例 第5章 对话框 5.1 显示模式对话框实倒 5.2 显示非模式对话框实例 5.3 打开文件对话框使用实例 5.4 保存文件对话框使用实例 5.5 字体对话框使用实例 5.6 颜色对话框使用实例 5.7 为打开文件对话框增加预览功能实例 5.3 从内存创建对话框实倒 第6章 深入了解Windows消息 6.1 传递并响应Windows消息实例 6.2 发送Windows消息实例 6.3 在MFC中映射消息实例 6.4 自定义消息使用实例 6.5 拦截并处理Win32控件的消息实例 第7章 系统和外壳编程 7.1 定时器使用实例 7.2 访问系统注册表实例 7.3 用随机数生成强力密码实例 7.4 打开和程序相关联的文档实例 7.5 访问Windows剪切板实例 7.6 监视剪切板内容变化实例 7.7 使用系统托盘图标实例 第8章 基本输入设备 第9章 进程 第11章 图形图像开发 第12章 文件IO开发 第13章 数据库开发 第14章 网络开发 第15章 Windows高级编程 第16章 多媒体开发 第17章 AcliveX应用 第18章 发布应用程序
83.12MB
Visual C++音频视频处理技术及工程实践(含源码2/2)
2012-11-19本书共16章,分为4篇,详细讲解了使用各种软件和平台进行音、视频多媒体编程的技术,以案例为对象展示实现过程、分析技术难点。主要内容包括软件Visual C++2005的开发技术、DirectSound开发音频、DirectShow/VFW开发视频、MMX/SSE进行多媒体汇编编程、DM642 DSP进行音视频算法优化和主流视频算法MPEG-4/H.264的编码原理及工程实践。本书系统地介绍Visual C++ 2005进行流媒体编程的基本思路和方法,采用案例为主的叙述方式,将大量的技术理论融入具体的案例剖析中。采用的案例均来源于作者实际开发工作,具有很好的实用价值,可以帮助读者在开发中进行参考或直接应用。 第1篇 开发基础 1 第1章 数字音视频开发技术基础 3 1.1 数字音视频基本概念 4 1.1.1 数字音频技术基础 4 1.1.2 各种数字音频文件格式基础 4 1.1.3 视频的相关基础概念 8 1.1.4 常见的视频文件格式 8 1.2 数字音视频数据的编解码技术 10 1.2.1 音频数据的编解码 11 1.2.2 视频数据的编解码 13 1.2.3 音视频编码的相关标准 13 1.3 音视频处理平台的选择 15 1.3.1 个人多媒体计算机 15 1.3.2 嵌入式处理器ARM 16 1.3.3 数字媒体处理器DSP 16 1.4 音视频开发的典型应用 16 1.4.1 个人消费类电子产品 16 1.4.2 公共领域的音视频应用 18 1.5 常用音视频开发工具 21 1.5.1 DirectSound音频开发 21 1.5.2 DirectShow视频开发 21 1.5.3 DSP CCS算法开发 22 1.6 本章小结 23 第2章 Visual C++ 2005开发基础 25 2.1 Visual C++ 2005新增特性 26 2.1.1 句柄(Handles) 26 2.1.2 类型的声明 26 2.1.3 对代码编辑的改进 27 2.2 VC能做的事情 27 2.2.1 生成传统的控制台应用程序 27 2.2.2 生成基于MFC的应用程序 32 2.2.3 生成静态链接库 40 2.2.4 生成动态链接库 41 2.3 利用向导完成基本开发 46 2.3.1 生成应用程序 46 2.3.2 生成应用库LIB/DLL 53 2.4 MFC编程基础 56 2.4.1 Windows消息与事件 56 2.4.2 消息与事件的响应 63 2.4.3 常用消息 66 2.5 基于对话框的编程 68 2.5.1 创建和编辑对话框 68 2.5.2 对话框种类 75 2.6 常用控件使用技巧 79 2.6.1 按钮类控件的使用 80 2.6.2 文本可编辑类控件的使用 81 2.6.3 静态类控件的使用 82 2.6.4 其他控件 83 2.7 Visual 2005开发技术资源 84 2.7.1 MSDN在线帮助 84 2.7.2 丰富的网络资源 86 2.8 Visual 2005开发的常见问题 86 2.8.1 如何使用volatile和const_cast 86 2.8.2 如何构造unicode版本的程序 87 2.8.3 如何使用.def文件 87 2.8.4 如何正确编写Win32 DLL 87 2.8.5 如何编写和使用资源DLL 88 2.8.6 如何实现对话框的数据交换 88 2.9 本章小结 89 第2篇 音频开发 91 第3章 DirectSound开发基础 93 3.1 Microsoft DirectSound SDK 94 3.1.1 比较DirectSound与DirectMusic 94 3.1.2 DirectSound SDK能做什么 95 3.1.3 如何获取DirectSound SDK 96 3.1.4 DirectSound SDK的基本结构 98 3.1.5 Directsound SDK安装 100 3.1.6 选择最适合用户的DirectSound SDK 100 3.1.7 用DirectSound进行编程的必要步骤 102 3.2 DirectSound的详细使用方法 103 3.2.1 DirectSound设备对象 104 3.2.2 DirectSound缓冲区对象 107 3.2.3 使用WAV数据 114 3.2.4 使用音效 116 3.3 开发环境配置 118 3.3.1 Visual C++基本开发环境配置 119 3.3.2 DirectSound应用程序的开发环境配置 119 3.3.3
14.30MB
Visual C++ 程序开发范例宝典光盘源码 (第二版) 2/7
2011-01-11第1章 窗体与界面设计 1.1 菜单应用实例 实例001 在系统菜单中添加菜单项 实例002 带图标的程序菜单 实例003 根据表中数据动态生成菜单 实例004 浮动的菜单 1.2 弹出菜单应用实例 实例005 在控件上单击右键弹出菜单 实例006 个性化的弹出菜单 实例007 任务栏托盘弹出菜单 1.3 工具栏应用实例 实例008 带背景的工具栏 实例009 带图标的工具栏 实例010 带下拉菜单的工具栏 实例011 可调整按钮位置的工具栏 实例012 XP风格工具栏 实例013 动态设置是否显示工具栏按钮文本 实例014 具有提示功能的工具栏 1.4 状态栏应用实例 实例015 带进度条的状态栏 实例016 动画效果的状态栏 实例017 滚动字幕的状态栏 1.5 导航界面应用实例 实例018 Outlook导航界面 实例019 树状导航界面 实例020 按钮导航界面 实例021 图片导航界面 1.6 界面窗体应用实例 实例022 使用位图设计畸形界面 实例023 椭圆形的程序界面 实例024 自绘窗体界面 实例025 以时钟显示界面 实例026 窗体融合技术 实例027 限制对话框最大时的窗口大小 实例028 分割视图窗口 实例029 对话框全屏显示 1.7 多媒体宣传光盘应用实例 实例030 多媒体宣传光盘主界面 实例031 自动运行的多媒体宣传光盘 1.8 多媒体触摸屏程序应用实例 实例032 采购中心多媒体触摸屏程序 实例033 为触摸屏程序添加虚拟键盘 1.9 窗体位置应用实例 实例034 不可移动的窗体 实例035 始终在最上面的窗体 实例036 以动画形式显示窗体 实例037 磁性窗体 1.10 窗体标题栏应用实例 实例038 闪烁的窗体标题栏 实例039 拖动没有标题栏的窗体 实例040 禁用标题栏上的最大化、最小化或关闭按钮 1.11 窗体形状及应用 实例041 半透明窗体 实例042 创建字型窗体 实例043 设计桌面精灵 1.12 通用对话框的应用 实例044 打开位图预览对话框 实例045 打开Windows新型对话框 实例046 同时选择多个文件 实例047 文本替换对话框 实例048 字体选择对话框 第2章 控件应用 2.1 按钮控件典型实例 实例049 AVI动画按钮 实例050 GIF动画按钮 实例051 图文按钮 实例052 不规则按钮 实例053 热点按钮 2.2 编辑框控件典型实例 实例054 为编辑框设置新的系统菜单 实例055 为编辑框控件添加列表选择框 实例056 多彩边框的编辑框 实例057 改变编辑框文本颜色 实例058 不同文本颜色的编辑框 实例059 位图背景编辑框 2.3 静态文本控件典型实例 实例060 电子计时器 实例061 使用静态文本控件设计群组框 实例062 制作超链接控件 2.4 列表框控件典型实例 实例063 利用列表框控件实现标签式数据选择 实例064 具有水平滚动条的列表框控件 实例065 列表项的提示条 实例066 位图背景列表框控件 2.5 组合框控件典型实例 实例067 将数据表中的字段添加到组合框控件 实例068 带查询功能的组合框控件 实例069 自动调整组合框的宽度 实例070 颜色组合框 实例071 多列显示的组合框 实例072 带图标的组合框 实例073 显示系统盘符组合框 2.6 列表视图控件典型实例 实例074 Windows资源管理器 实例075 利用列表视图控件浏览数据 实例076 利用列表视图控件制作导航界面 实例077 在列表视图中拖动视图项 实例078 具有排序功能的列表视图控件 实例079 具有文本录入功能的列表视图控件 实例080 使用列表视图设计登录界面 2.7 树视图控件典型实例 实例081 多级数据库树状结构数据显示 实例082 节点拖动功能的树控件 实例083 带复选功能的树状结构 实例084 三态效果树控件 实例085 修改树控件节点连线颜色 实例086 位图背景树控件 实例087 显示磁盘目录 实例088 树型提示框 2.8 RichEdit控件典型实例 实例089 利用RichEdit显示Word文档 实例090 利用RichEdit控件实现文字定位与标识 实例091 利用RichEdit控件显示图文数据 实例092 在RichEdit中显示不同字体和颜色的文本 实例093 在RichEdit中显示GIF动画 2.9 滚动条控件典型实例 实例094 自定义滚动条控件 2.10 进度条控件典型实例 实例095 进度条百分比显示 实例096 渐变颜色的进度条 2.11 工具提示控件典型实例 实例097 应用工具提示控件 2.12 滑块控件典型实例 实例098 使用滑块控件设置颜色值 实例099 绘制滑块控件 2.13 标签控件典型实例 实例100 应用标签控件 实例101 自定义标签控件 2.14 控件数组典型实例 实例102 向窗体中动态添加控件 实例103 公交线路模拟 第3章 图形技术 第4章 多媒体技术 第5章 文件系统 第6章 操作系统与Windows相关程序 第7章 注册表 第8章 数据库技术 第9章 SQL查询相关技术 第10章 打印与报表技术 第11章 硬件相关开发技术 第12章 网络开发技术 第13章 Web编程 第14章 加密、安全与软件注册 第15章 实用工具 附录 技术要点对应实例位置
45.86MB
Visual C++程序员实用大全(精华版).(水利水电.邓劲生.张晓明译).part4
2016-06-21书名:《Visual C++程序员实用大全(精华版)》(水利水电出版社.(美)Charles Wright等著.邓劲生.张晓明译) PDF格式扫描版,全书分为38章,共863页。2005年5月出版。 全书压缩打包成4部分,这是第4部分。 内容简介 本书深入浅出地讲述Visual C++各种编程诀窍,以高屋建瓴的眼光看待MFC编程的技巧和思想,详尽分析了具体实现中的技术内幕。本书以其翔实知识面的覆盖、大量实用的示例和作者自身丰富的编程经验,阐述了从C语言编程基础、C++面向对象语法、MFC类库、控件及高级应用、进程和线程到异常处理等各个方面的诀窍,是一本系统而全面的编程经典图书。 全书面向实例进行阐述,讲解透彻独到。本书既可作为计算机软件开发人员的技术参考书,也可作为初学者和大专院校师生的自学参考书 目 录 第一章 编程基础 1 理解计算机是怎么运行程序的 2 运行一个已解释的程序 3 运行一个已编译的程序 4 C++在哪里 5 理解Visual c++中的程序文件 6 创建源代码文件 7 理解并创建头文件 第二章 结构和语法 8 理解计算机语言 9 理解计算机语言的句法 10 理解“标记” 11 空白在c和C++中的使用 12 理解变量 13 对变量命名 14 理解表达式 15 C/C++中的语句 16 理解程序流 17 深入程序流:理解goto语句 18 深入程序流:理解调用函数 19 理解程序的结构 20 理解C/C++中的函数 21 在函数中书写可重用代码 22 使用库函数 第三章 C编程语言 23 C/C++中的数据类型 24 定义自己的数据类型 25 理解运算符 26 赋值运算符 27 理解一元运算符 28 理解算术运算符 29 其他运算符 30 编译器是怎样计算表达式的 31 使用括号组合运算符 32 理解C/C++的关键字 33 编译程序引导语句 34 介绍结构和联合 35 介绍C++类 36 C和C++怎样处理结构和联合 第四章 C和C++概念 37 理解命名规则 38 声明和定义的区别 39 理解声明:对变量的声明 40 理解声明:在函数调用中声明一个变量 41 理解声明:函数的原型化 42 理解#define编译器指令:定义常数 43 理解#define编译器指令:定义宏 44 理解存储类变量:自动变量 45 理解存储类变量:寄存器变量 46 理解存储类变量:静态变量 47 理解存储类变量:类的静态变量 48 引入递归 49 理解循环:排序的问题 50 理解递归:数学问题 51 理解指针 52 理解指针:间接操作 53 理解数组 54 理解字符串作为char类型的数组 55 代码注释 第五章 文件——基本类型 56 Visual C++IDE使用的文件类型 57 理解文本文件和文档文件 58 创建并使用源文件 59 创建并使用头文件 60 使用保护:避免头文件多次被包含 61 理解makefile 62 理解可执行文件 第六章 理解字符 63 理解字符:ASCII码字符 64 理解字符:转换ASCII码或称扩展字符集 65 C/C++的转义序列:嵌入不可打印的字符 66 C/C++转义序列:使用反斜线 67 C/C++转义序列:使用百分号来对文本进行格式化 68 使用printf 69 C++I/O流:cout、cin和cerr 第七章 探索Visual c++环境 70 创建工程项目 71 Visual Studio菜单:File菜单 72 Visual Studio菜单:Eidt菜单 73 Visual Studio菜单:View菜单 74 Visual Studio菜单:Insert菜单 75 Visual Studio菜单:Proiect菜单 76 Visual Studio菜单:Build和Tools菜单 77 自定义Visual Studio菜单 78 向Tools菜单中添加命令 79 弹出式(或上下文式)菜单 80 使用全屏编辑器 81 使用调试窗口 82 完成程序编辑器 第八章 开始编程 83 从命令行运行编译器 84 创建源文件 85 main()函数 86 向程序中添加头文件 87 使用printf输出文件 88 “Hello,World”:一个简单的命令行C++程序 89 格式化输出族 90 格式化输入 91 三个标准文件:stdin、stdout和stderr 92 使用C++流函数cout、cin和celT 93 重定向标准输出stdout到一个文件 94 main()的参数:argc和argV 95 使用if语句控制输出 96 打开文件 97 使用文件I/O函数 98 加入while循环 99 向程序中加入函数 100 使用for循环 101 编译命令行选项 102 加入第二个源文件 103 加入头文件 104 创建makefile 105 运行nmake.exe来编译程序 第九章 C++运算符 106 理解运算符类型 107 理解一元运算符:间接运算符(*) 108 理解一元运算符:地址运算符(&) 109 理解一元运算符:自增和自减运算符(++和--) 110 理解一元运算符:取反运算符和补码运算符 111 理解一元运算符:加法和减法运算符 112 理解算术运算符:倍数运算符(*、/和%) 113 理解算术运算符:加运算符(+和-) 114 理解关系运算符:等于运算符(==和!=) 115 理解关系运算符:小于和大于运算符(<和>) 116 理解关系运算符:小于等于和大于等于运算符(<=和>=) 117 理解位运算符:位移运算符(<<和>>) 118 理解位运算符:与运算符(&) 119 理解位运算符:或运算符(f) 120 理解位运算符:异或运算符(n) 121 理解逻辑运算符:与运算符(&&) 122 理解逻辑运算符:或运算符(11) 123 理解赋值运算符:等号运算符(:) 124 理解其他赋值运算符(+=,一,}=,/==,%。,>>=,<<=,&:,^-,I:) 125 其他运算符:条件运算符(?:) 126 其他运算符:逗号运算符 127 其他运算符:圆括号 128 其他运算符:引用运算符 129 注意&符号 130 理解C++如何给表达式赋值 第十章 编写条件语句 131 在C/C++中编写语句 132 流程控制介绍 133 使用if关键字 134 使用else关键字 135 执行一条单一语句 136 执行作为if语句目标的多条语句 137 组合使用if和else关键字 138 使用多个if条件控制 139 使用条件运算符 140 作用域介绍 141 理解条件语句中的作用域 142 条件语句的一些常见错误 第十一章 程序循环 143 循环介绍 144 用条件语句和goto语句构造循环 145 介绍while循环 146 使用continue和break语句 147 介绍do while循环 148 介绍for循环 149 理解循环内的作用域 第十二章 switch语句 150 理解switch语句 151 使用case和default语句 152 在switch语句内部声明变量 153 在case语句内部声明变量 第十三章 C++语言简介 154 理解C语言的结构 155 介绍C++的类 156 理解类与结构的相同点和不同点 157 在C和C++中声明变量 158 理解函数原型 第十四章 C/C++中的数组 159 理解数组 160 声明数组变量 161 使用字符串数组 162 使用对象数组 163 理解指向数组的指针 164 访问数组元素 165 理解数组运算 166 递增和递减数组变量 167 声明多维数组 第十五章 宏、常量和预处理命令:定义及使用常量 168 理解常量 169 使用预处理命令#define 170 注意#define语句中的分号 171 声明数值常量 172 声明无值常量 173 理解字符串常量 174 定义数字常量 175 用变量定义常量 176 取消定义常量 177 理解sizeof操作符 178 理解const关键字 179 理解何时使用const和#define 180 用指针修改const常量的值 181 理解volatile关键字 第十六章 头文件 182 理解#include预处理命令 183 理解INCLUDE路径环境变量 184 理解#include<file.h>和#include file.h的区别 185 在头文件中使用卫式定义 186 在大的工程中使用通用头文件 187 把头文件添加到makefile的关联列表中 188 理解当头文件改变时发生什么 第十七章 条件编译 189 理解#if预处理指令 190 理解#endif预处理指令 191 理解#ifdef预处理指令 192 使用#else和#elif预处理指令 193 在命令行中定义常量 第十八章 定义和使用宏 194 理解C/C++中的宏 195 定义宏——又是#define指令 196 理解宏替换 197 用变量定义宏 198 理解编译器对宏的解释 199 理解运行库中的宏 200 示例:求一个数的平方 第十九章 C/C++中的字符串 201 理解字符变量类型 202 理解C和C++语言存储字符串的方式 203 理解NUL字符(\0) 204 理解和使用字符串指针 205 获取字符串的大小 第二十章 声明字符串 206 声明字符型变量 207 定义字符型数组变量 208 定义字符串数组 209 理解动态字符串:new操作 210 理解动态字符串:delete操作 第二十一章 字符串函数 211 理解字符串库函数 212 理解字符串加载函数 213 理解字符串信息函数 214 使用字符串函数复制指定数目的字符 215 在字符串中查找一个字符 216 在字符串中查找一个子串 217 查找字符串中的标记 218 使用strtokf)解析一个字符串 219 扩展strtok函数以实现对空标记的解析 220 理解不区分大小写的函数 第二十二章 操作字符串 221 理解sizeof操作符 222 使用sizeof操作来判断字符串的有效长度 223 使用sizeof判断数组中字符串的数量 224 访问字符串中的单个字符 225 动态分配字符串 226 示例:反转一个字符串中的字符 第二十三章 函数和变量 227 理解函数 228 理解c和c++中的函数声明 229 理解函数定义 230 理解函数原型 231 声明和定义返回一个值的函数 232 声明和定义带参数的函数 233 理解函数的默认值 234 理解内联函数 235 理解引用调用和值调用 236 引用调用和值调用的优缺点 237 C/C++中的函数调用 238 理解函数的作用域 239 在函数调用中使用指针 240 理解引用运算符(&) 241 利用引用运算符修改变量 242 函数重载简介 243 理解函数重载 244 理解函数模板 245 使用函数模板和重载函数的选择 246 理解函数指针 247 获取重载函数的地址 248 理解引用函数 249 理解函数和宏之间的区别 250 函数和宏使用上的选择 251 理解变量 252 理解变量类型 253 更改变量类型 254 理解局部变量 255 理解全局变量 256 C++允许在函数体中说明变量 257 理解存储类型 258 理解静态变量 259 定义全局静态变量 260 在程序中定义静态变量 261 创建自己的变量类型:typedef关键字 262 理解变量的作用域 263 理解左值(1value) 264 理解NULL 265 理解void类型 266 理解指向变量的指针 267 声明和初始化指向变量的指针 268 理解间接操作:获得指针所指向的值 269 理解指针数组:指向指针的指针 270 初始化指针数组 271 理解转换:暂时修改变量类型 272 自动类型转换:混合int和char类型的变量 273 转换指针:危险的迹象 第二十四章 开始C++:面向对象编程 274 面向对象编程 275 C++:C语言的进一步发展 276 OOP的三个原则 277 理解封装 278 将结构理解成一种封装设备 279 理解C++中的类 280 理解多态性 281 理解多态性的示例:函数重载 282 使用类作为多态性的对象 283 理解继承 284 从上至下的继承 285 使用对象 286 将程序划分成对象 287 一个面向对象编程的示例 第二十五章 C++类 288 理解类的元素 289 理解构造函数 290 把参数传递给构造函数 291 在类中使用多个构造函数 292 理解析构函数 293 理解类中的访问关键字 294 使用访问关键字实施封装 295 保持数据成员为私有的 296 理解基类 297 从基类派生一个新类 298 理解多重继承 299 使用基类 300 理解成员函数 301 理解友元类 302 理解友元函数 303 理解虚函数 304 理解抽象类 305 理解嵌套数据类型 306 理解静态成员 307 理解静态函数 308 理解静态数据成员 309 使用静态成员 310 理解作用域分辨 311 理解回调函数 312 理解操作符重载 313 重载操作符 第二十六章 C++I/O 314 使用cin、cout和cerr 315 理解插入符 316 理解提取符 317 理解文件流 318 理解顺序流函数 319 理解随机流函数 320 理解width()、precision0和fill() 321 理解I/O操纵器 322 创建自己的插入符 323 创建自己的提取符 第二十七章 C++数组和指针 324 理解对象指针 325 理解类指针 326 this指针 327 使用malloc()和free() 328 使用new操作符 329 使用delete操作符 330 理解内存泄漏 331 使用派生类指针 332 理解对象指针运算 第二十八章 图形设备接口 333 理解图形设备接口 334 理解设备环境 335 设备环境和输出设备 336 使用Microsoft Foundation Class的设备环境 337 利用GDI绘图 338 理解屏幕坐标 339 理解客户坐标 340 理解打印机设备环境 341 GDI对象:字体 342 理解字体家族 343 GDI对象:画笔 344 GDl对象:刷子 345 GDI对象:位图 346 GDI对象:调色板 347 GDI对象:区域 348 理解映射 349 理解映射模式 350 理解设备坐标 351 理解逻辑坐标 352 理解绘图模式 353 理解图形和点 354 理解路径 355 使用函数BeginPath()和EndPath() 356 解释WM PAINT消息 357 使用函数SetPixel() 358 绘制一系列点 359 绘线 360 使用函数MoveToEx() 361 使用函数LineTo() 362 用一系列直线绘制曲线 363 绘制弧线 364 绘制圆和椭圆 365 绘制封闭区域 366 使用笔 367 使用刷子 368 填充一个封闭区域 369 了解Windows字体类型 370 理解像素尺寸 371 理解字符宽度 372 理解字符属性 373 理解文本对齐方式 374 使用MFC的CFont类 375 理解创建字体的CFont函数 376 理解文本输出函数 377 使用DrawText()函数 378 使用TextOut()和ExtTextOut()函数 379 使用TabbedTextOut 380 理解GrayString()函数 381 理解文本输出的背景模式 382 旋转文本 383 设置文本和背景颜色 384 用CEdit和CStatic派生出来的类设置文本属性 385 GDI示例:绘制一个字符镜像 第二十九章 Microsoft Foundation Class库 386 了解类库 387 使用类库来创建程序 388 引入Microsoft基础类库 389 MFC是如何在Visual Studio中实现的 390 调用Visual Studio向导创建一个基于MFC的程序 391 引入Cobiect 392 应用程序结构类 393 使用对象类 394 文件服务类 395 使用设备场景类 396 绘图对象类 397 控件、支持、数据库、菜单、命冬行、同步和Socket类 398 数组、列表和映射类 399 Intemet服务类 400 窗口类:CWnd介绍 401 理解CWnd子孙类 402 框架窗口类 403 使用CFrameWnd类:单文档界面 404 使用CFrameWnd类:多文档界面 405 使用CSplitterWnd类 406 控件栏类 407 属性表类 408 使用对话框类 409 理解通用对话框类 410 理解属性页类 411 理解用户对话框类 412 理解视图类 413 MFC视图类介绍 414 调用Visul Studio向导创建视图类程序 415 调用Visual Studio向导创建基于对话框的程序 416 文件服务类介绍 417 使用CFile及其子孙类 418 使用内存文件 419 使用Socket文件 420 使用CStdioFile 421 理解CRecentFileList类 422 理解控件类 423 非Cobject派生类 424 理解CString 425 理解CPoint 426 理解Crect 427 理解CSize 428 理解支持类 429 理解同步(锁)类 430 使用CIntemetConnection 431 使用CFtpConnection 432 理解CRuntimeClass 433 理解文档类 434 理解异常类 435 使用工具栏类 436 用MFC类实现打印和打印预览 437 理解线程类 438 理解命令操作器:CCmdUI类 439 理解CWaitCursor类 440 使用ClmageList类 441 从MFC类库派生自定义类 第三十章 Developers Studio向导:创建工程 442 理解New菜单命令 443 创建文件 444 创建工作区 445 创建其他文档 446 创建工程 447 理解小工程 448 理解MFC AppWizard 449 创建MFC EXE工程 450 在工程中加入多文档支持 451 理解文档/视图支持 452 理解数据库支持 453 在工程中加入复合文档支持、ActiveX和Automation 454 选择工程特色 455 理解工具栏选项 456 理解高级选项 457 其他工程选项 458 最后一步:为类命名和选择视图类 459 创建基于对话框的工程 460 为基于对话框的工程选择特色和支持选项 461 选择对话框选项 462 使用MFC创建DLL工程 463 创建Win32库 第三十一章 文档和视图 464 理解文档/视图结构 465 理解文档对象 466 理解视图对象 467 理解文档/视图结构中的窗口框架 468 理解文档管理器 469 理解文档模板 470 在工程中加入多文档类型 471 理解文档/视图中的Windows消息路径 472 理解默认消息 473 重载框架消息处理函数 474 理解CArchive类 475 使用串行化函数 476 理解CView 477 重载OnPaint消息处理函数 478 在CView中显示文本 479 在CView中绘制图形对象 480 使用CScrollView类 481 使用CEditView类 482 在编辑视图中插入文本 483 理解插入和覆盖模式 484 在编辑视图中加入覆盖模式 485 使用编辑视图保存和恢复文本文件 486 使用CRichEditView类 487 使用CRichEditView创建工程 488 理解复合文档支持 489 理解OLE容器支持 490 理解服务器和最小服务器支持 491 添加菜单和工具栏项以支持多文本 492 理解多文本编辑控件中的字符属性 493 理解CHARFORMAT和CHARFORMAT2结构 494 改变字体 495 改变多文本编辑文档视图中的默认字体 496 为文本设置粗体 497 为文本设置斜体、下划线和删除线 498 设置字体和背景颜色 499 设置段落对齐 500 在格式栏中添加字体和字号框 501 在多文本编辑视图中添加用户和文件信息 502 使用串行化保存与恢复用户信息和文件信息 503 使用CListView类 504 理解带CListView的Clmagelist类 505 创建图像列表 506 在列表控件中显示不同的样式 507 增加工具栏来改变显示样式 508 使用LVS OWNERDRAWFIXED样式 509 使用自主绘图属性产生整行选择 510 使用CTreeView类 511 组合CTreeView、CListView和CSplitterWnd创建一个资源管理器类型的应用程序 512 在资源管理器类型的应用程序右面板里使用其他代替视图 513 使用CFormView类 514 创建基于表单的应用程序 515 向程序中插入新的表单 516 在程序中使用多重视图 517 向文档中添加视图 518 从文档中删除视图 519 创建其他视图类:CCtrlView 520 使用CSplitterWnd实现多重视图 521 切分一个分割窗口 522 联合使用CSplitterWnd和文档视图 523 通过改写lnitlnstance函数避免创建初始化文档 524 理解永久保存数据机制 525 保存状态栏中的信息 526 更新与同一文档关联的多个视图 第三十二章 调试技术 527 使用Visual Studio Debugger 528 设置工程项目选项 529 使用调试窗口 530 设置和使用断点 531 单步执行程序 532 调试命令行程序 533 使用Edit and Continue进行调试 534 输出到Output窗口 535 理解远程调试 536 建立远程调试器 537 在远程和本地调试间切换 538 理解实时调试 539 有用的调试技术 540 使用CMemoryState类来检查内存泄漏 第三十三章 Windows通用控件 541 理解Windows环境下的控件 542 理解通用控件 543 理解通用控件窗口类 544 理解通用控件样式 545 通用控件的Windows通知消息 546 通用控件使用的宏 547 通用控件库使用的结构 548 使用通用控件 549 确定通用控件DLL的修订版本 550 Windows通用控件列表 551 从MFC控件类派生自定义类 第三十四章 基本通用控件 552 理解静态文本控件 553 从CStatic派生自定义类以获取功能 554 使用CStatic类 555 理解编辑框控件 556 使用CEdit类 557 从CEdit派生自定义类 558 添加编辑框控件的消息处理 559 理解按钮控件 560 使用CButton类 561 添加按钮控件的消息处理 562 使用命令更新启用或禁用按钮 563 理解复选框 564 使用下压按钮式复选框 565 理解单选按钮 566 将单选按钮分组 567 使用下压式单选按钮 568 在复选框和单选按钮中使用位图和图标 569 理解分组框控件 570 理解列表框控件 571 使用CListBox类 572 理解列表框消息 573 使用列表框字符串函数 574 使用列表框Dir()函数 575 理解组合框控件 576 使用CComboBox类 577 理解组合框样式 578 理解组合框消息 579 理解滚动条控件 580 在视图中添加滚动条 581 在控件中添加滚动条 582 理解SCROLLINFO结构 583 理解CScrollBar类 584 隐藏和显示滚动条 585 解释滚动条消息 586 使用滚动条作为输入控件 第三十五章 Windows 95及后继版本的通用控件 587 理解32位控件 588 理解图像列表控件 589 建立图像列表 590 在控件中添加图像列表 591 绘制图像列表中的图像 592 管理并操作图像列表 593 理解扩展组合框控件 594 使用CComboBoxEx类 595 在扩展组合框中添加项目 596 在CComboBoxEx中使用ClmageList 597 理解CComboBoxEx操作 598 理解Rich Edit控件 599 理解CRichEditCtrl类 600 在Rich Edit控件中进行字符格式化 601 在Rich Edit控件中设置颜色 602 理解Rich Edit事件屏蔽 603 理解Rich Edit控件通知消息 604 理解进度条控件 605 使用CProgressCtl类 606 理解进度条样式 607 设置进度条值域和位置 608 理解进度条操作 609 理解滑动条控件 610 理解CSliderCtrl类 611 使用滑动条控件 612 解释滑动条控件消息 613 理解滑动条控件样式 614 设置Tick Mark 615 使用CSliderCtrl成员函数 616 理解微调控件 617 理解CSpinButtonCtrl类 618 理解微调按钮样式 619 使用CSpinButtonCtrl的成员函数 620 解释微调按钮控件消息 621 理解标头控件 622 使用CHeaderCtrl类 623 动态重排列标头域的使用 624 在标头中使热键追踪功能有效 625 在标头中使用图像列表 626 理解列表控件 627 使用CListCtrl类 628 理解列表控件样式 629 在报表视图模式中启用整行选取 630 为列表控件添加项目 631 使用带图像列表的列表控件 632 理解LPSTR_TEXTCALLBACK和I IMAGECALLBACK样式 633 根据标头域的选择对列表控件排序. 634 理解树状控件 635 理解CTreeCtrl类 636 为树状控件添加分支 637 理解树状控件样式 638 在树状控件中使用图像列表 639 展开和折叠分支 640 理解动画控件 641 使用CAnimateCtrl类 642 理解CAnimateCtrl类的成员函数 643 创建动画文件 644 在工程中添加一个AVl动画文件 645 动画的播放、暂停和停止 646 理解标签控件 647 理解CTabCtri类 648 向标签控件中添加页面 649 在标签控件中使用图像列表 650 在空白标签控件页面上添加控件 651 解释标签控件消息 652 理解状态栏控件 653 使用CStatusBarCtrl类 654 在状态栏控件上设置指示 655 向状态栏中添加控件 656 理解工具栏控件 657 使用CToolBar类 658 在工具栏控件中使用图像列表 659 理解工具提示控件 660 使用CToolTipCtrl类 661 理解热键控件 662 使用CHotKeyCtrl类 663 设置和使用热键 664 理解日期和时间采集控件 665 使用CDateTimeCtrl类 666 理解日期和时间控件样式 667 理解日期和时间格式 668 理解日历控件 669 使用CMonthCalCtrl类 670 定制日历控件 671 理解日历控件属性 672 使用日历消息 673 MFC库中的其他控件类 674 理解位图按钮控件 675 理解IP地址控件 第三十六章 进程和线程 676 理解程序和进程 677 理解exec和sDawn 678 处理不成功的exec 679 理解线程 680 使用MFC线程类 681 理解Windows如何调度线程 682 理解线程优先级 683 使用工人线程 684 使用用户接口线程 685 终止和挂起线程 686 从另一个线程终止线程 687 获取线程返回代码 688 挂起和恢复线程 689 在线程之间共享对象 690 同步线程 691 理解互斥量和信号量 692 理解关键段 693 理解事件 694 等待单个事件 695 等待多个事件 696 使用多线程c运行时库 第三十七章 高级专题:异常处理 697 理解ASSERT宏 698 理解异常 699 抛出异常 700 理解trycatch块 701 理解throw语句 702 捕获异常 703 使用多条catch语句 704 处理错误 705 使用异常通知失败的对象 706 理解TRY、CATCH和END—CATCH宏 707 理解CATCH_ALL和END—CATCH ALL宏 708 理解MFC异常类 709 获取和解释异常类错误信息 710 删除异常对象 711 创建自己的异常类 712 嵌套trycatch块 第三十八章 进程间通信 713 理解进程问通信 714 理解句柄 715 理解进程控制例程 716 理解信号 717 在进程之间使用Windows消息 718 理解排队和非排队消息 719 理解管道 720 使用无名管道进行进程问通信 721 使用CreatePipe() 722 使用命名管道进行进程问通信 723 理解管道操作 724 连接和断开管道 725 关闭管道 726 使用popen函数 727 理解事件作为IPC设备 728 创建命名事件 729 理解信号量作为IPC设备 730 创建和删除信号量 731 使用MFC信号量类 732 锁定和解锁信号量 733 理解映射文件 734 理解内存映射文件 735 理解共享内存
24.0MB
Visual C++音频/视频处理技术及工程实践 (分卷1)
2011-03-08本书共16章,分为4篇,详细讲解了使用各种软件和平台进行音、视频多媒体编程的技术,以案例为对象展示实现过程、分析技术难点。主要内容包括软件Visual C++2005的开发技术、DirectSound开发音频、DirectShow/VFW开发视频、MMX/SSE进行多媒体汇编编程、DM642 DSP进行音视频算法优化和主流视频算法MPEG-4/H.264的编码原理及工程实践。本书系统地介绍Visual C++ 2005进行流媒体编程的基本思路和方法,采用案例为主的叙述方式,将大量的技术理论融入具体的案例剖析中。采用的案例均来源于作者实际开发工作,具有很好的实用价值,可以帮助读者在开发中进行参考或直接应用。 第1篇 开发基础 1 第1章 数字音视频开发技术基础 3 1.1 数字音视频基本概念 4 1.1.1 数字音频技术基础 4 1.1.2 各种数字音频文件格式基础 4 1.1.3 视频的相关基础概念 8 1.1.4 常见的视频文件格式 8 1.2 数字音视频数据的编解码技术 10 1.2.1 音频数据的编解码 11 1.2.2 视频数据的编解码 13 1.2.3 音视频编码的相关标准 13 1.3 音视频处理平台的选择 15 1.3.1 个人多媒体计算机 15 1.3.2 嵌入式处理器ARM 16 1.3.3 数字媒体处理器DSP 16 1.4 音视频开发的典型应用 16 1.4.1 个人消费类电子产品 16 1.4.2 公共领域的音视频应用 18 1.5 常用音视频开发工具 21 1.5.1 DirectSound音频开发 21 1.5.2 DirectShow视频开发 21 1.5.3 DSP CCS算法开发 22 1.6 本章小结 23 第2章 Visual C++ 2005开发基础 25 2.1 Visual C++ 2005新增特性 26 2.1.1 句柄(Handles) 26 2.1.2 类型的声明 26 2.1.3 对代码编辑的改进 27 2.2 VC能做的事情 27 2.2.1 生成传统的控制台应用程序 27 2.2.2 生成基于MFC的应用程序 32 2.2.3 生成静态链接库 40 2.2.4 生成动态链接库 41 2.3 利用向导完成基本开发 46 2.3.1 生成应用程序 46 2.3.2 生成应用库LIB/DLL 53 2.4 MFC编程基础 56 2.4.1 Windows消息与事件 56 2.4.2 消息与事件的响应 63 2.4.3 常用消息 66 2.5 基于对话框的编程 68 2.5.1 创建和编辑对话框 68 2.5.2 对话框种类 75 2.6 常用控件使用技巧 79 2.6.1 按钮类控件的使用 80 2.6.2 文本可编辑类控件的使用 81 2.6.3 静态类控件的使用 82 2.6.4 其他控件 83 2.7 Visual 2005开发技术资源 84 2.7.1 MSDN在线帮助 84 2.7.2 丰富的网络资源 86 2.8 Visual 2005开发的常见问题 86 2.8.1 如何使用volatile和const_cast 86 2.8.2 如何构造unicode版本的程序 87 2.8.3 如何使用.def文件 87 2.8.4 如何正确编写Win32 DLL 87 2.8.5 如何编写和使用资源DLL 88 2.8.6 如何实现对话框的数据交换 88 2.9 本章小结 89 第2篇 音频开发 91 第3章 DirectSound开发基础 93 3.1 Microsoft DirectSound SDK 94 3.1.1 比较DirectSound与DirectMusic 94 3.1.2 DirectSound SDK能做什么 95 3.1.3 如何获取DirectSound SDK 96 3.1.4 DirectSound SDK的基本结构 98 3.1.5 Directsound SDK安装 100 3.1.6 选择最适合用户的DirectSound SDK 100 3.1.7 用DirectSound进行编程的必要步骤 102 3.2 DirectSound的详细使用方法 103 3.2.1 DirectSound设备对象 104 3.2.2 DirectSound缓冲区对象 107 3.2.3 使用WAV数据 114 3.2.4 使用音效 116 3.3 开发环境配置 118 3.3.1 Visual C++基本开发环境配置 119 3.3.2 DirectSound应用程序的开发环境配置 119 3.3.3 DirectSound Filter开发环境配置 121 3.4 调试音频处理程序 125 3.4.1 Visual C++调试器 125 3.4.2 DirectSound中常用的调试技术 128 3.5 DirectSound开发的常见问题 130 3.6 本章小结 131 第4章 打造自己的音频播放器 133 4.1 系统设计和分析 134 4.2 缓冲区和通知基础 135 4.2.1 缓冲区的概念 135 4.2.2 缓冲区的通知 136 4.3 播放文件 137 4.3.1 创建DirectSound对象 137 4.3.2 创建播放缓冲区 138 4.3.3 调用方法播放声音 145 4.3.4 结束播放 146 4.4 系统效果演示 146 4.4.1 新建基于对话框的程序框架 147 4.4.2 添加控件及变量 147 4.4.3 封装CDirectSound类实现DirectSound声音播放 148 4.4.4 与对话框界面相关操作实现 156 4.4.5 程序运行结果 159 4.5 DirectSound开发常见问题 160 4.6 本章小结 161 第5章 语音3D特效器制作 163 5.1 系统设计和分析 164 5.2 DirectSound 3D缓冲区 164 5.2.1 获取3D缓冲区对象 165 5.2.2 最大距离和最小距离 166 5.2.3 处理模式 167 5.2.4 声音圆锥 167 5.3 DirectSound 3D虚拟听众 168 5.3.1 获得3D听众 168 5.3.2 听众的空间参数 169 5.3.3 距离因子与Doppler效应 171 5.3.4 滚降因子与延迟设置 173 5.4 系统效果演示 174 5.4.1 具体的实现步骤 174 5.4.2 程序的实现代码 176 5.4.3 程序运行结果 186 5.5 DirectSound 3D开发常见问题 187 5.6 本章小结 188 第6章 对拾音设备录制自己的语音文件 189 6.1 系统分析和设计 190 6.2 管理捕获缓冲区 191 6.2.1 创建捕获缓冲区 191 6.2.2 启动缓冲区 197 6.2.3 封锁缓冲区 197 6.2.4 解锁缓冲区 198 6.2.5 中止捕获 199 6.3 系统效果演示 199 6.3.1 声音类的封装 199 6.3.2 声音管理函数的实现 202 6.3.3 程序运行结果 214 6.4 DirectSound录制语音文件开发常见问题 215 6.5 本章小结 216 第3篇 视频开发 217 第7章 DirectShow开发基础 219 7.1 Microsoft DirectShow SDK 220 7.1.1 DirectX及成员组成 220 7.1.2 DirectShow SDK能做什么 221 7.1.3 如何获取DirectShow SDK 221 7.1.4 安装Direshow SDK 222 7.2 开发环境配置 224 7.2.1 生成DirectShow SDK开发库 224 7.2.2 Visual C++开发环境配置 229 7.2.3 常见问题解析集锦 232 7.3 DirectShow SDK基本架构 234 7.3.1 DirectShow SDK总体架构 234 7.3.2 DirectShow SDK简单应用程序案例 236 7.3.3 滤波器链表Filer Graph及各种组件 244 7.3.4 构建滤波器链表(Building Filer Graph) 252 7.3.5 滤波器链表中的数据流动Data Flow 257 7.3.6 DirectShow中的事件通知机制 261 7.3.7 常用DirectShow SDK接口 267 7.4 DirectShow SDK常用开发案例 267 7.4.1 通用开发流程 268 7.4.2 系统初始化 268 7.4.3 媒体播放方法 268 7.4.4 消息处理方法 270 7.4.5 视频采集技术 271 7.4.6 音频采集案例 282 7.5 本章小结 293 第8章 打造自己的媒体播放器 295 8.1 系统分析与设计 296 8.1.1 FilterGraph结构设计 297 8.1.2 GraphEdit模拟实现 297 8.1.3 界面设计 299 8.2 实现媒体控制类 307 8.2.1 CDXGraph类初始化 308 8.2.2 创建Graph滤波器链表 309 8.2.3 图像窗口设计 311 8.2.4 媒体播放控制 312 8.2.5 全屏显示及抓图存盘实现 315 8.3 实现一个简单的媒体播放器 317 8.4 升级你的播放器 321 8.4.1 添加控制功能 321 8.4.2 添加拖放功能 325 8.4.3 添加音量调节功能 326 8.4.4 添加欢迎背景图片 328 8.5 系统效果展示 328 8.6 如何播放更多的文件格式 329 8.7 本章小结 330 第9章 自制DV实现视频采集 331 9.1 系统分析与设计 332 9.1.1 采集设备的枚举 332 9.1.2 使用Capture Graph Builder 335 9.1.3 采集参数的设置 336 9.2 使用经典采集技术实现视频捕获 338 9.2.1 GraphEdit模拟实现 338 9.2.2 视频捕获类CCaptureClass的实现 340 9.2.3 界面设计 345 9.3 使用VMR技术实现视频图像捕获 350 9.3.1 VMR技术基础 350 9.3.2 GraphEdit模拟实现视频捕获预览 350 9.3.3 视频图像捕获类CVMR_Capture的实现 353 9.3.4 界面设计 361 9.4 系统效果演示 366 9.4.1 实例一 系统效果演示 367 9.4.2 实例二 系统效果演示 368 9.5 本章小结 369 第10章 VFW技术实现视频处理通用平台 371 10.1 VFW开发技术流程分析 372 10.1.1 技术概述 372 10.1.2 VFW采集开发流程图 373 10.2 使用VFW实现视频捕获和预览 373 10.2.1 建立单文档应用程序 373 10.2.2 创建视频窗口 375 10.2.3 设计回调函数 376 10.2.4 视频图像显示设置 378 10.2.5 捕获预览视频 379 10.2.6 配置视频格式及图像参数 381 10.3 使用系统插件实现视频编解码 382 10.3.1 使用系统视频编解码插件 383 10.3.2 视频编码码流写AVI文件 385 10.3.3 关闭平台 387 10.4 使用XviD CODEC算法实现视频编解码 388 10.4.1 生成XviD算法静态库(编译过程) 388 10.4.2 实现XviD CODEC视频编码算法函数 389 10.4.3 实现XviD CODEC视频解码算法函数 393 10.4.4 使用XviD CODEC编解码算法 395 10.5 平台应用效果展示 398 10.6 本章小结 399 第4篇 编解码技术 401 第11章 纵览音视频编解码技术 403 11.1 数字音视频基础 404 11.2 音视频编解码及方法 406 11.2.1 音频编码方法 406 11.2.2 视频编码方法 410 11.3 编解码技术标准 417 11.3.1 静态图像编码标准 418 11.3.2 MPEG-4/H.264视频算法 424 11.3.3 AVS国产视频编码标准 430 11.4 编解码产业及发展 431 11.4.1 编解码资源一览 431 11.4.2 编解码发展前景 432 11.5 本章小结 433 第12章 使用MMX/SSE 2进行多媒体编程 435 12.1 MMX/SSE 2技术基础 436 12.2 MMX/SSE 2指令剖析 439 12.2.1 MMX媒体扩展指令 439 12.2.2 MMX程序设计 444 12.2.3 SSE/SSE 2媒体扩展指令 455 12.2.4 SSE程序设计详细解析 457 12.3 使用MMX/SSE 2进行音视频开发 463 12.3.1 开发前技术准备 464 12.3.2 MMX/SSE 2视频编解码编程 465 12.3.3 使用VC调试MMX/SSE 2程序 470 12.4 MMX/SSE 2开发常见问题 472 12.4.1 制订计划 472 12.4.2 哪部分代码可使用MMX技术改进 473 12.4.3 代码是浮点型还是整型 473 12.4.4 EMMS准则 474 12.4.5 CPUID的检测MMX技术的用法 474 12.4.6 数据对齐 474 12.4.7 数据安排 475 12.4.8 应用程序最后的调整 476 12.5 本章小结 476 第13章 用DM642实现视频编解码技术 477 13.1 数字媒体处理器TMS320DM642DSP概述 478 13.2 DSP软件开发环境CCS 481 13.2.1 安装CCS 481 13.2.2 CCS主要部件 482 13.2.3 使用CCS优化工具实现算法优化 488 13.3 用C语言进行视频算法框架编程 492 13.3.1 C编程规则和参考 492 13.3.2 DSP关键字与CMD文件使用 493 13.3.3 算法系统资源剖析 495 13.4 DM642实现视频算法优化 497 13.4.1 并行算法指令和建立软件流水 497 13.4.2 使用intrinsic指令完成核心模块的优化 499 13.4.3 使用DSP线性汇编优化核心模块 500 13.4.4 使用Cache技术实现算法优化 507 13.4.5 使用乒乓式EDMA实现算法优化 508 13.5 DM642优化视频算法常见问题 513 13.6 本章小结 518 第14章 XviD CODEC实现MPEG-4编解码 519 14.1 MPEG-4编解码概述 520 14.1.1 基于对象的MPEG-4视频编码 520 14.1.2 XviD格式文件播放 520 14.2 XviD CODEC编解码分析 521 14.2.1 MPEG-4编解码设计与剖析 521 14.2.2 MMX/SSE 2实现XviD CODEC 549 14.2.3 DM642下XviD CODEC优化 553 14.3 运行XviD CODEC系统 559 14.3.1 YUV原始视频数据及其显示 559 14.3.2 VC平台下编译和运行XviD CODEC 559 14.3.3 CODEC在DSP下软仿真和硬仿真 562 14.4 系统效果展示 562 14.5 本章小结 563 第15章 X264实现H.264/AVC视频编码 565 15.1 H.264/AVC编码概要 566 15.1.1 开源代码工程管理软件 566 15.1.2 获取开源算法工程 566 15.1.3 H.264/AVC新特性 567 15.2 X264视频编码分析 568 15.2.1 H.264/AVC关键技术要点 569 15.2.2 X264视频编码设计与剖析 577 15.2.3 X264核心模块MMX/DSP汇编优化 599 15.3 运行X264编码系统 606 15.3.1 VC平台下编译和运行X264 606 15.3.2 JM验证X264码流 610 15.3.3 ffmpeg中的H.264视频解码 611 15.4 系统效果展示 611 15.4.1 X264实现H.264/AVC视频编码 611 15.4.2 ffmpeg-h264-vc工程实现H.264视频解码 612 15.5 本章小结 613 第16章 打造自己的DVR监控系统 615 16.1 DVR监控系统分析与设计 616 16.1.1 监控系统分类 616 16.1.2 监控系统组成 617 16.1.3 基于压缩板卡的SDK软件开发包 619 16.2 DVR监控系统主界面软件设计 621 16.2.1 对话框应用程序开发 621 16.2.2 位图按钮设计 622 16.3 模拟DVR视频采集 636 16.3.1 基于DirectShow的视频采集回放 636 16.3.2 基于DirectShow的影音文件回放 638 16.4 系统效果展示 643 16.5 本章小结 644 附录A 旧版VC升级到VC 2005程序安全的10点注意事项 645 附录B 开发常见问题 (附源码) 由于文件过大所以本文件采用分卷压缩的,需要安装好压,并下载完全部压缩分卷。共12个分卷
3.67MB
Visual C++ 编程资源大全(源码 控件)
2007-10-191,WINAPI_OCX.zip<br>封装了部分Windows API的控件(92KB)<END><br>2,HeaderCtrl.zip<br>多行标题的CListCtrl(19KB)<END><br>3,RoundBut.zip<br>你需要圆形的按钮吗?这个类已经替你做好了,它可是有正常、平面、下推几种风格的,快使用它吧(25KB)<END><br>4,TransBut.zip<br>实现背景透明的按钮类(306KB)<END><br>5,AviButton.zip<br>这个类库可以在按钮上显示AVI动画,很酷的(68KB)<END><br>6,cirbutton.zip<br>一个圆形的可下推按钮,还不错,可以试试看(50KB)<END><br>7,anibutton.zip<br>这是一个可以使用DIB显示动画的按钮类库,值得一试(186KB)<END><br>8,bitbutton.zip<br>这个类库允许你在按钮上使用位图和文字(9KB)<END><br>9,CButtonST.zip<br>只要你的程序中使用按钮,这个类库就使你可以轻松做出图文并茂的按钮来(133KB)<END><br>10,hoverbut.zip<br>这个类库是对鼠标敏感的按纽,你用它可以做出象Office助手提示选项那样的东东来(24KB)<END><br>11,menubut.zip<br>当用户单击一个按钮时弹出一个菜单(5KB)<END><br>12,TrackBut.zip<br>也是一个位图按钮。不过可比MFC提供的那个好多了!(222KB)<END><br>13,Stranbut.zip<br>你需要不规则形状的按钮吗?这个类已经替你做好了,使用它吧(67KB)<END><br>14,tributton.zip<br>你需要三角形的按钮吗?这个类已经替你做好了,使用它吧(31KB)<END><br>15,butpicker.zip<br>你想有一个选择颜色的下拉列表吗?胜至你想有一个选择图形的下拉列表吗?这个类是你所需的,下载一个回去试试,分析分析一定会有收获(85KB)<END><br>16,flat_comb.zip<br>你有没有想过在你的应用程序中加入"浮动"的组合框,就象Microsoft Office中的那样?用这个类就能轻松搞定(21KB)<END><br>17,fontcombo.zip<br>这是一个用于选择字体的组合框类库,而且直接可以预览(46KB)<END><br>18,icon_comb.zip<br>这是一个选择图标的组合框的类(2KB)<END><br>19,mrucombo.zip<br>这个聪明的组合框具有IE那样的自动纪录历史的功能,你最近使用过的文件它会个个记在帐上。需要设计"History"功能的朋友赶快下载一个吧!(21KB)<END><br>20,mulcombo2.zip<br>这是一个具有多列功能的组合框,如果你的选择项需要多列显示的话一定需要这个东东(44KB)<END><br>21,autocomp.zip<br>这个聪明的组合框可以根据你的部分输入和可选项替你自动完成,就像IE的地址栏一样。是不是很好?快下载一个吧(24KB)<END><br>22,ColorSel.zip<br>一个用于颜色选择的组合框的例子(41KB)<END><br>23,DriveBox.zip<br>一个用于选择驱动器的组合框,告诉你如何实现自画控件以及如何通过Windows Shell得到驱动器的图标(128KB)<END><br>24,mccombobox.zip<br>这是一个多列的组合框类库(22KB)<END><br>25,mlistbox.zip<br>这个例子讨论了列表框的单/复选问题,值得一看(22KB)<END><br>26,checklist.zip<br>这是一个多列且具有检查框的列表框。使用它,你可以制作诸如安装程序中的自定义安装明细表等等。(50KB)<END><br>27,ListBoxEx.zip<br>你知道怎么让列表框水平滚动吗?这个类会向你解释一切(85KB)<END><br>28,FlatBox.zip<br>浮动效果的列表框,很酷的!(3KB)<END><br>29,ColorBox.zip<br>这是一个可以以不同颜色显示列表项目的列表框类库(17KB)<END><br>30,iconpick.zip<br>一个图标选择的列表框(32KB)<END><br>31,hexedit.zip<br>这是一个从Cedit派生的十六进制的编辑框类库(30KB)<END><br>32,histedit.zip<br>注意过Visual C++的Output窗口吗?就是那个在编译的时候会自动滚动显示信息的窗口,这个类库就是一个类似那样的东东(14KB)<END><br>33,ip_addr.zip<br>这是一个专为输入IP地址用的编辑框,如果你要做因特网程序的话,这个东西少不了(30KB)<END><br>34,maskedit.zip<br>这是用于时间、日期、电话号码、IP地址、邮政编码的编辑框(37KB)<END><br>35,NumEdit.zip<br>这是一个支持带e符号(如-12E4)的数字编辑控制(28KB)<END><br>36,rangeedit.zip<br>这是一个只允许输入既定范围数字的编辑控制(28KB)<END><br>37,smartedit.zip<br>SmartEdit控制,和滑杆滚动条一起精确确定输入(17KB)<END><br>38,Eureka.zip<br>据说在这个例子中拖动放大镜到密码输入框能得到密码的内容,不过在我的Win2000上不行(120KB)<END><br>39,CEditEx.zip<br>这个类库包括编辑框扩展类、静态文本扩展类,使你可以以自定义的颜色显示文字。如果你厌倦了白底黑字的话,试试这个类吧。(23KB)<END><br>40,dragedit.zip<br>这个编辑器扩展类库使你能够在不同的文本编辑器(甚至是Word、Wordpad)之间拖动文本,酷极了。(35KB)<END><br>41,flatedit.zip<br>浮动效果的编辑框,再配上浮动效果的列表框、组合框,你的界面一定不同凡响。(3KB) <END><br>42,PRINTCLASS.ZIP<br>这个示例不仅提供了列表控件打印的方法,而且也提供了一个很好的打印管理类,读了它打印技巧尽在手中。(95KB)<END><br>43,drivepicker.zip<br>一个用于驱动器选择的列表框,可以按大图标、小图标模式显示,支持多选。(17KB)<END><br>44,DragList.zip<br>这是一个从CListCtrl派生的类,使你可以方便地在你的列表控件中加入Drag & Drop支持。可以支持单行和多行。快试一试吧(16KB)<END><br>45,fullrow.zip<br>这是一个从CListCtrl派生的类,使你可以方便地选择一整行,并可设有提示框。(10KB)<END><br>46,treestore.zip<br>将树的结构存入一个文本文件,可以读出及写入数的结构。(41KB)<END><br>47,MultControl.zip<br>这是一个多列的树/列表控制类库(87KB)<END><br>48,printctrl.zip<br>一个支持打印的树控制(35KB)<END><br>49,treext.zip<br>如果你的树控制需加入的数据是固定的,你也许会想到把添加数据作为一个单独的线程以提高速度。这个类就是为此目的而设计的。(29KB)<END><br>50,DirTree.zip<br>这个派生的TreeCtrl类使你能够在自己的程序中方便地加入浏览目录、文件的功能,就像Windows Explore一样。缺陷:重画时有闪烁。总的说来不错。(42KB)<END><br>51,CTreeList.zip<br>这是一个TreeCtrl的派生类,与众不同的是它在项目较多的场合下重画很快。如果你对手头的控件不太满意的话,试试这个。(28KB)<END><br>52,treelist.zip<br>这个控件类库结合了树状控件与列表视图控件,使用起来自然功能更加强大(60KB)<END><br>53,Wizard.zip<br>在安装程序中,向导是必不可少的。你有没有对现在那些通用的界面感到平淡?看看这个Wizard 97 Property Sheets 的例子吧,你会满意的。(65KB)<END><br>54,progress.zip<br>这是一个弹出的进程窗口,使你可以方便的显示当前的进度。(28KB)<br>55,BCGTimeControls.zip<br>当我第一次试运行例子程序的时候,我就被深深地折服了。能把日历、时间控件做地这么好真是不容易。(239KB)<END><br>56,ChartZhu.zip<br>这是一个可以以渐变色填充柱状图的类库,在你的图示程序使用它的话一定会增色不少。赶快下载吧。(70KB)<END><br>57,GraphCon.zip<br>这是一个从Cstatic派生的用于显示线形、条状、饼状的图形控制。支持Tooltip。需要图形控件的朋友不可错过!(32KB)<END><br>58,macbuttons.zip<br>Mac风格的按钮、检查框等类库,使你可以轻松制作出Mac机风格的界面来。很与众不同的!(48KB)<END><br>59,RulerCtrl.zip<br>这个类库可以使你可以在自己的程序里加入象Word那样的水平标尺。(21KB)<END><br>60,graphBrian.zip<br>一个功能强大的用于显示柱状图、饼状图等的图形控件。如果你要做CAD软件或科教、演示程序的话,这个类库会节省你不少时间。(30KB)<END><br>61,Csizer.zip<br>这个类库提供了在运行时动态改变控件大小的能力,就像Visual Studio做资源时那样拖动即可。但它的缺点是当鼠标拖动较快时,缩放会跟不上鼠标移动。你可以试着修正这个bug。(29KB)<END><br>62,conpager.zip<br>如果你的工具栏太长了,需要在水平方向上左右滚动怎么办?其他一些类似情况呢?别着急,这个类库会帮你解决这些问题的。它可以方便的解决滚动问题。(5KB)<END><br>63,RoundSli.zip<br>这是一个圆形的滑动控制,对于角度选择(0-360)这样需要可视化操作的场合来说相当有用。(83KB)<br>64,rotbevel.zip<br>这个类库使你可以方便的显示不论是水平还是垂直的文本。(53KB)<END><br>65,hyperlink.zip<br>这是一个功能强大的静态文本的热点联接的类库。(22KB)<END><br>66,AviCtrl.zip<br>这是一个可以实现透明底色的动画控件。(140KB)<END><br>67,card.zip<br>想作卜克游戏的话,可以用这个控件来简化工作了。可以容易的显示牌面或背面,也可以横向放置,使用方便。(35KB)<END><br>68,realtime.zip<br>类似流行的下载软件的右上角的那个显示下载速率的控件。带详细说明及vb例子代码(17KB)<END><br>69,tabstatus.zip<br>在多文档界面的状态条上放一个TAB控件,可以在状态条上直接激活或最大化各个子窗口。(62KB)<END><br>70,pushpin.zip<br>这个例子演示图钉按纽的实现(就像Developer Studio中资源的属性表中左上角的按纽)(12KB)<END><br>71,autorepeat.zip<br>按下按纽时增加或减少计数器(2KB)<END><br>72,colbutton.zip<br>显示有颜色的按纽(3KB)<END><br>73,radio_but.zip<br>在对话框中更替控件(24KB)<END><br>74,flat_but.zip<br>浮动按纽上可放置文字和ICON图标(48KB)<END><br>75,mow_sour.zip<br>弹出PopMenu,但是是按纽选择(17KB)<END><br>76,Xbutton.zip<br>不规则形状的按纽(8KB)<END><br>77,roubut.zip<br>圆形的按纽(26KB)<END><br>78,strebut.zip<br>环形按纽(6KB)<END><br>79,trackbu.zip<br>一个IE3.0风格的按纽(49KB)<END><br>80,trick_but.zip<br>当你的鼠标在动时,按纽也在动,让你很难捕捉到它(3KB)<END><br>81,autocombo.zip<br>自动选择的ComboBox(18KB)<END><br>82,ccpicker2.zip<br>选择颜色的ComboBox(2)(29KB)<END><br>83,combtext.zip<br>增强了的CCombobox<4KB><END><br>84,flatcomb.zip<br>浮动的ComboBox COOL(4KB)<END>
90.0MB
Visual C++音频视频处理技术及工程实践(含源码1/2)
2012-11-19本书共16章,分为4篇,详细讲解了使用各种软件和平台进行音、视频多媒体编程的技术,以案例为对象展示实现过程、分析技术难点。主要内容包括软件Visual C++2005的开发技术、DirectSound开发音频、DirectShow/VFW开发视频、MMX/SSE进行多媒体汇编编程、DM642 DSP进行音视频算法优化和主流视频算法MPEG-4/H.264的编码原理及工程实践。本书系统地介绍Visual C++ 2005进行流媒体编程的基本思路和方法,采用案例为主的叙述方式,将大量的技术理论融入具体的案例剖析中。采用的案例均来源于作者实际开发工作,具有很好的实用价值,可以帮助读者在开发中进行参考或直接应用。 第1篇 开发基础 1 第1章 数字音视频开发技术基础 3 1.1 数字音视频基本概念 4 1.1.1 数字音频技术基础 4 1.1.2 各种数字音频文件格式基础 4 1.1.3 视频的相关基础概念 8 1.1.4 常见的视频文件格式 8 1.2 数字音视频数据的编解码技术 10 1.2.1 音频数据的编解码 11 1.2.2 视频数据的编解码 13 1.2.3 音视频编码的相关标准 13 1.3 音视频处理平台的选择 15 1.3.1 个人多媒体计算机 15 1.3.2 嵌入式处理器ARM 16 1.3.3 数字媒体处理器DSP 16 1.4 音视频开发的典型应用 16 1.4.1 个人消费类电子产品 16 1.4.2 公共领域的音视频应用 18 1.5 常用音视频开发工具 21 1.5.1 DirectSound音频开发 21 1.5.2 DirectShow视频开发 21 1.5.3 DSP CCS算法开发 22 1.6 本章小结 23 第2章 Visual C++ 2005开发基础 25 2.1 Visual C++ 2005新增特性 26 2.1.1 句柄(Handles) 26 2.1.2 类型的声明 26 2.1.3 对代码编辑的改进 27 2.2 VC能做的事情 27 2.2.1 生成传统的控制台应用程序 27 2.2.2 生成基于MFC的应用程序 32 2.2.3 生成静态链接库 40 2.2.4 生成动态链接库 41 2.3 利用向导完成基本开发 46 2.3.1 生成应用程序 46 2.3.2 生成应用库LIB/DLL 53 2.4 MFC编程基础 56 2.4.1 Windows消息与事件 56 2.4.2 消息与事件的响应 63 2.4.3 常用消息 66 2.5 基于对话框的编程 68 2.5.1 创建和编辑对话框 68 2.5.2 对话框种类 75 2.6 常用控件使用技巧 79 2.6.1 按钮类控件的使用 80 2.6.2 文本可编辑类控件的使用 81 2.6.3 静态类控件的使用 82 2.6.4 其他控件 83 2.7 Visual 2005开发技术资源 84 2.7.1 MSDN在线帮助 84 2.7.2 丰富的网络资源 86 2.8 Visual 2005开发的常见问题 86 2.8.1 如何使用volatile和const_cast 86 2.8.2 如何构造unicode版本的程序 87 2.8.3 如何使用.def文件 87 2.8.4 如何正确编写Win32 DLL 87 2.8.5 如何编写和使用资源DLL 88 2.8.6 如何实现对话框的数据交换 88 2.9 本章小结 89 第2篇 音频开发 91 第3章 DirectSound开发基础 93 3.1 Microsoft DirectSound SDK 94 3.1.1 比较DirectSound与DirectMusic 94 3.1.2 DirectSound SDK能做什么 95 3.1.3 如何获取DirectSound SDK 96 3.1.4 DirectSound SDK的基本结构 98 3.1.5 Directsound SDK安装 100 3.1.6 选择最适合用户的DirectSound SDK 100 3.1.7 用DirectSound进行编程的必要步骤 102 3.2 DirectSound的详细使用方法 103 3.2.1 DirectSound设备对象 104 3.2.2 DirectSound缓冲区对象 107 3.2.3 使用WAV数据 114 3.2.4 使用音效 116 3.3 开发环境配置 118 3.3.1 Visual C++基本开发环境配置 119 3.3.2 DirectSound应用程序的开发环境配置 119 3.3.3
8.91MB
Visual C++ 编程资源大全(源码 窗体)
2007-10-191,pic_open.zip<br>带位图预览的打开文件对话框(4KB)<END><br>2,bmpdlg.zip<br>一个位图对话框类 (11KB)<END><br>3,folder.zip<br>只显示文件夹信息的文件对话框(2KB)<END><br>4,dir_pic.zip<br>文件目录搜集工具对话框(42KB)<END><br>5,splash.zip<br>通过自己的线程在Splash对话框中显示文字(136KB)<END><br>6,res_dlg.zip<br>大小可调的对话框(21KB)<END><br>7,splitter.zip<br>可变的分割视图(58KB)<END><br>8,anicon1.zip<br>在窗口的标题条上显示动画图标演示程序(47KB)<END><br>9,anicon2.zip<br>在窗口的标题条上显示动画图标(2KB)<END><br>10,simple.zip<br>一般用途的分隔器类(43KB)<END><br>11,outlook.zip<br>OutLook风格的分隔条(59KB)<END><br>12,appbar1.zip<br>实现桌面的工具条(AppBar)(12KB)<END><br>13,appbar2.zip<br>实现桌面的工具条演示程序(AppBar)(88KB)<END><br>14,trayicon1.zip<br>屏幕保护托盘图标(SDK版本)(27KB)<END><br>15,trayicon2.zip<br>屏幕保护托盘图标(MFC版本)(30KB)<END><br>16,cj60lib.zip<br>MFC扩展界面库(VC6升级版)(936KB)<END><br>17,devstudio.zip<br>Visual Studio风格的用户界面(132KB)<END><br>18,explorer.zip<br>Visual Studio风格的用户界面(213KB)<END><br>19,outlook1.zip<br>OutLook风格的用户界面(134KB)<END><br>20,Ccaption.zip<br>一组用于定制窗口标题的类(36KB)<END><br>21,Ccaption2.zip<br>一组用于定制窗口标题的类演示程序(79KB)<END><br>22,treectrl1.zip<br>DirTreeCtrl--显示文件夹和文件演示程序(56KB)<END><br>23,treectrl2.zip<br>DirTreeCtrl--显示文件夹和文件(6KB)<END><br>24,menutip.zip<br>实现菜单的工具提示(33KB)<END><br>25,menubar1.zip<br>DevStudio样式的泊位菜单条演示程序(不用MSIE)(58KB)<END><br>26,menubar2.zip<br>DevStudio样式的泊位菜单条(不用MSIE)(27KB)<END><br>27,propbox1.zip<br>实用的属性列表框(5KB)<END><br>28,propbox2.zip<br>实用的属性列表框演示程序(25KB)<END><br>29,cchecklist.zip<br>一个多层次的CCheckListBox(18KB)<END><br>30,popchild.zip <br>在Popup和Child窗口之间转化(43KB)<END><br>31,multitop.zip <br>一个SDI(单文档界面)的应用,通过File菜单中的Create New Frame命令能够创建一个位于顶层的SDI应用,但关闭主应用后其它的窗口也将关闭,程序由Visual C++ 5.0开发(30KB)<END><br>32,picknew.zip <br>演示如何注册多文档模板且避免MFC自动产生的"New File Type"对话框,程序由Visual C++ 5.0开发,调用了CDocTemplate::OpenDocumentFile()(49KB)<END><br>33,listbox1.zip<br>一个类似VisualStudio样式的列表框类(17KB)<END><br>34,listbox2.zip<br>一个类似VisualStudio样式的列表框类演示程序(50KB)<END><br>35,custfile.zip <br>这个例子能够在CFileDialog中增加一对按纽,需要使用Visual C++ 6.0(23KB)<END><br>36,icondlg.zip <br>这是一个从资源DLL中选取图标的对话框(12KB)<END><br>37,Modal.zip <br>创建一个模式的窗口(38KB)<END><br>38,dock_menu.zip <br>演示如何实现DevStdio中的菜单风格,值得研究 COOL(157KB)<END><br>39,tooltip.zip <br>可以多行显示的提示条,且颜色可变(32KB)<END><br>40,ntray.zip <br>你想知道拨号网络连通后的动态小图标(Tray Icons)是怎么实现的吗?这个例子可以告诉你一切 COOL(17KB)<br>41,w95tray.zip <br>Windows95 Tray Icon的例子(9KB)<END><br>42,startmenu.exe <br>修改Start菜单(27KB)<END><br>43,splits.zip <br>这个由Visual C++ 5.0开发的程序演示如何管理View中的切分窗口,用到了CSplitterWnd::DeleteView()和CSplitterWnd::CreateView()等成员函数(35KB)<END><br>44,swt.zip<br>DOS下仿WIN95界面及图标编辑器源程序(498k C&ASM 作者:添翼虎)(499KB)<END><br>45,menutest.zip<br>定制WIN95图形菜单演示程序(12KB)<END><br>46,toolbar1.zip<br>在ToolBar中嵌入CListBox(39KB)<END><br>47,fromto.zip<br>从一图退到另一图(54KB)<END><br>48,cj60libsrc.zip<br>界面开发库Cj60Lib的源程序(268KB)<END><br>49,password.zip <br>拖动放大镜到密码输入框能得到密码的内容 COOL(15KB)<END><br>50,ProperWnd.zip <br>属性页放置在窗口的指定位置(58KB)<END><br>51,pushpin.zip<br>在属性页的左边加入一个图钉按纽,熟悉Microsoft Developer Stdio的朋友一定很熟悉(16KB)<END><br>52,apibrow.zip<br>这个例子使用公用控制回调在一个CListView中管理CListCtrl控制,这个例子用于分析了一些以逗号为分割符的文本文件,例如在你的\MSDEV\LIB(VC5.0在DevStudio\VC\Lib)目录下的Win32Api.CSV就是这样的文件(16KB)<END><br>53,scrl.zip<br>这是一个由Visual C++ 5.0开发的基于对话框的应用,它演示如何使用CListCtrl::Scroll()函数,它是CListView的report方式的一个子集(14KB)<END><br>54,treelist1.zip<br>显示资源管理器风格的目录树结构的例子(64KB)<END><br>55,list_menu.zip <br>在ToolBar中嵌入CListBox,看起来像图形菜单(39KB)<END)<br>56,ColorButton.zip<br>ColorButton(22KB)<END><br>57,iconpro.zip <br>一个图标处理程序的源代码,支持对ICON多种特效处理,能在EXE,DLL文件中取出ICON文件,并能将BMP文件转化为ICON,本程序也是个很酷的工具(117KB)<END><br>58,ctrbars.zip <br>一个简单的工具条的程序例子(18KB)<END><br>59,cj60.zip<br>类似于Developer Studio,Explore界面的类库(165KB)<END><br>60,cj601.zip<br>类似于Developer Studio,Explore界面的类库(95KB)<END><br>61,cj602.zip<br>类似于Developer Studio,Explore界面的类库(100KB)<END><br>62,fileNew.zip<br>文件更新事件类演示程序(37KB)<END><br>63,CfileNew.zip<br>文件更新事件类(4KB)<END><br>64,outbar.zip<br>类似OutLook左边按钮条的控件(163KB)<END><br>65,waitdialog.zip<br>等待对话框(22KB)<END><br>66,coolmenu.zip<br>Office 97风格菜单实现(298KB)<END><br>67,dirpk.exe<br>目录选择对话(78KB)<END><br>68,docktest.zip<br>演示Docking Window(220kb)<END><br>69,drivevie.zip<br>查看系统安装的驱动器(34kb)<END><br>70,enhstbar.zip<br>在状态条上显示按钮和进度指示条(88kb)<END><br>71,fully.zip<br>全屏幕显示窗口例子程序(42kb)<END><br>72,icondial.zip<br>在对话框内显示图标列表(12kb)<END><br>73,mfccmd.zip<br>多重Undo/Redo实现(90kb)<END><br>74,mfcdde.zip<br>DDE实例(53kb)<END><br>75,splasher.zip<br>启动屏幕程序(47kb)<END><br>76,toolbar.zip<br>一个工具条的例子(174kb)<END><br>77,vwrplc32.exe<br>文档视图结构实例(42KB)<END><br>78,ModalWin.zip<br>一个多文档的例子(1880kb)<END><br>79,HTMViewer.zip<br>html文件浏览器(1870kb)<END><br>80,picwin.zip<br>给任意窗口添加背景(2KB)<END><br>81,DynCon.zip<br>动态改变对话框的大小, 对话框中的控件相应改变(166KB)<END><br>82,tabstatus.zip<br>在多文档应用程序的状态条中加入子窗口的列表, 使程序的状态条有点像Windows 95的任务条(62KB)<END><br>83,jpeg.zip<br>操作JPEG的库和源程序(390KB)<END><br>84,dibimage.zip<br>这个例子功能强大,能够以多种方式处理位图文件,强烈推荐 COOL(112KB)<END><br>85,voicecmd.zip<br>在你的软件中增加语音控制功能COOL(31KB)<END><br>86,pathDlg.zip<br>能够选择和创建文件夹的对话框(22KB)<END><br>87,AniDlg.zip<br>想作动态对话框吗?下载一个回去看看吧!(18KB)<END><br>88,dlgtbar.zip<br>想在对话框中实现浮动工具栏吗?这个代码是你的最佳选择。(19KB)<END><br>89,DlgMenu.zip<br>教你在对话框中加入菜单,一学就会。(26KB)<END><br>90,fold.zip<br>使用相当简单,实现文件夹浏览,里面附带英文说明。(4KB)<END><br>91,CoolAbout.zip<br>支持滚动文字图象,并可用鼠标操作方向。(26KB)<END><br>92,FullDlg.zip<br>用这类你可以实现全屏对话框,并且你用它可以切换到运行的其它应用程序中。(3KB)<END><br>93,Colorsrc.zip<br>一个很漂亮的颜色选择类。(157KB)<END><br>94,TabDialog.zip<br>能将对话框“钉”在屏幕上。(36KB)<END><br>95,tip_ocx.zip<br>你有没有觉得VC提供的那个Tip of the day控件很简陋?现在好了,Michael Walz带给我们一个Visual Studio那样的界面漂亮的Tip of the day。(26KB)<END><br>96,PathPic.zip<br>这个类库提供了选择目录的功能,比通用的CFileDialog好多了。(20KB)<END><br>97,twopanes.zip<br>你有没有想过把通用对话框作为你的窗口的一个View是什么样子的?看看这个例子吧。(9KB)<END><br>98,bcmenu21.zip<br>可以利用工具条资源,绘制图标菜单。(56KB)<END><br>99,MENU4_MDI.ZIP<br>可以利用工具条资源,自动绘制图标菜单,MDI版本。(62KB)<END><br>100,MENU4_SDI.ZIP<br>可以利用工具条资源,自动绘制图标菜单,SDI版本。(61KB)<END><br>101,toolbar2.zip<br>这个程序演示了如何利用工具栏的新特性,在工具栏中的某个按钮加入下拉式的列表。(28KB)<END><br>102,avi_bar.zip<br>可以在状态栏里加入一个AVI动画。(34KB)<END><br>103,outlook.zip<br>这个类库使你可以创建象OutLook那样的切分窗口。(59KB)<END><br>104,cxysplit.zip<br>这是一个可以在DialogBox中使用的切分类库。(21KB)<END><br>105,AutoWnd.zip<br>自动切分一个视图,并且高亮显示具有输入焦点的视图。(31KB)<END><br>106,MyWnd.zip<br>高亮显示具有输入焦点的视图。(2KB)<END><br>107,bhagat.zip<br>使用一个简单的函数调用就可以在切分视图中动态创建任何类型的新视图。(64KB)<END><br>108,MSDNWnd.zip<br>这是一个MSDN中的切分窗口的例子,虽不怎么样但已经完整展示了切分操作。对于初学者是一个很好的参考。(37KB)<END><br>109,rulers.zip<br>使用固定大小的切分窗口(上面、左边部分)在视图中加入标尺。(就象Photoshop中的标尺那样)酷极了。(5KB)<END><br>110,VisualFx.zip<br>使用固定大小的切分窗口(上面、左边部分)在视图中加入标尺。(就象Photoshop中的标尺那样)酷极了。(88KB)<END><br>111,infobar.zip<br>定制了一个与outlook,outlook express相同的信息条。(16KB)<END><br>112,BCGB.zip<br>BCGControlBar的AppWizard,编译运行之后你在new的时候就可以选择使用BCGControlBar界面风格了。你最好与BCGControlBar一起下载使用。(215KB)<END><br>113,sizecbar.zip<br>支持浮动窗体的类库,使用它你可以轻松的做出象Visual Studio那样的界面来。(65KB)<END><br>114,Coolocx.zip<br>所有你能想到的控件一个都不能少,全都是浮动的效果乃至连Windows通用对话框都浮动。(62KB)<END><br>115,fullscreen.zip<br>让你轻松实现全屏显示的代码,很简单轻易更可上手,告诉你,全屏时你还可以保留工具条。(22KB)<END><br>116,sys_tray.zip<br>完全封装windows任务栏,使用此类可以轻松操作任务栏图标及其菜单功能。(51KB)<END><br>117,regester.zip<br>封装有关注册表操作的函数,使你可以轻松添加、删除、修改主键或键值。(2KB)<END><br>118,bmpdraw.zip<br>可以用bmp文件构造该类,不须在设计时将bmp文件加入到资源中去。其它功能多多。(5KB)<END><br>119,split.zip<br>从中可以学习CFile类的使用方法。(39KB)<END><br>120,strange.zip<br>用VC++实现异形窗口(234KB)<END><br>121,csh.zip<br>在对话框中实现提示条风格的上下文敏感帮助(75KB)<END><br>122,whfname.zip<br>从窗口句柄中得到文件名(6KB)<END>
6.89MB
Visual C++ MFC扩展编程实例.pdf
2010-05-30本书主要介绍了运用Visual C++ 5.0或6.0的高级编程技巧,内容涉及MFC程序设计的最新概念,全书提供了大量VC的编程实例,旨在帮助读者较为全面地掌握VC编程知识、技巧和方法。全书分为三个部分和附录。第一部分介绍Windows编程的基础知识,第二部分讲解用户界面编程技巧,最后一部分涉及Windows内部进程的一些实例。本书思路清晰,实用性强,是计算机应用人员及大专院校师生不可多得的参考书。 内容预览: 目 录 译者序 前言 第一部分 基础 第1章 概述 1 1.1 Windows基础 1 1.1.1 窗口类结构 2 1.1.2 消息 2 1.1.3 客户区和非客户区 2 1.1.4 重叠窗口、弹出窗口和子窗口 2 1.1.5 父窗口和宿主窗口 3 1.2 Windows消息 3 1.2.1 发送或寄送消息 4 1.2.2 消息类型 4 1.2.3 接收消息 4 1.2.4 窗口处理函数的子类化 5 1.3 窗口绘图 5 1.3.1 设备环境 5 1.3.2 绘图工具 6 1.3.3 映射模式 6 1.3.4 窗口视和视口视 6 1.3.5 逻辑单位和设备单位 7 1.3.6 绘图函数 7 1.3.7 抖动和非抖动颜色 7 1.3.8 设备无关位图 8 1.3.9 元文件 8 1.3.10 何时绘图 8 1.4 MFC基础 8 1.5 Developer Studio基础 9 1.6 Windows和MFC总结 10 1.7 基本类 10 1.8 应用类 11 1.8.1 文档视 11 1.8.2 CWinApp(OC) 11 1.8.3 文档模板 12 1.8.4 线程 12 1.8.5 CFrameWnd(OCW) 12 1.8.6 CDocument(OC) 12 1.8.7 CView(OCW) 13 1.8.8 对话框应用程序 13 1.8.9 SDI应用程序 13 1.8.10 MDI应用程序 13 1.9 其余用户界面类 13 1.9.1 通用控件类 13 1.9.2 菜单类(O) 14 1.9.3 对话框类 15 1.9.4 通用对话框MFC类 15 1.9.5 控件条类 (OCW) 15 1.9.6 属性类 15 1.10 绘图类 16 1.11 其他MFC类 16 1.11.1 文件类 16 1.11.2 CArchive和序列化 16 1.11.3 数据库类 17 1.11.4 ODBC类 17 1.11.5 DAO类 17 1.11.6 数据集合类 17 1.11.7 通信类 18 1.12 类的消息机制 18 1.12.1 MFC如何接收一个寄送消息 18 1.12.2 MFC如何处理接收的消息 18 1.12.3 UI对象 20 1.13 小 结 20 第2章 控制条 21 2.1 通用控制条 21 2.2 用API创建控制条 22 2.3 用MFC创建控制条 24 2.3.1 CToolBarCtrl和CStatusBarCtrl 24 2.3.2 CToolBar和CStatusBar 24 2.3.3 CControlBar 26 2.4 停靠栏 27 2.4.1 设置停靠功能 28 2.4.2 自动改变大小和移动 30 2.4.3 停靠栏小结 30 2.5 浮动条 31 2.6 MFC的高级控制条类小结 32 2.7 视和控制条如何共享客户区 32 2.7.1 CFrameWnd::RecalcLayout() 32 2.7.2 CWnd::RepositionBars() 33 2.7.3 CControlBar::OnSizeParent() 33 2.7.4 CalcDynamicLayout()和 CalcFixedLayout () 34 2.7.5 CToolBar::CalcFixedLayout()和CTool Bar:: CalcDynamicLayout() 35 2.7.6 工具栏布局 35 2.7.7 CStatusBar::CalcFixedLayout() 36 2.7.8 CDockBar::CalcFixedLayout() 36 2.7.9 共享客户区小结 36 2.8 对话条 37 2.9 伸缩条 38 2.9.1 CReBar和CReBarCtrl 39 2.9.2 CReBar::CalcFixedLayout() 39 2.10 命令条 39 2.11 控制条窗口小部件风格 40 2.11.1 工具栏按钮风格 40 2.11.2 状态栏窗格风格 40 2.11.3 伸缩条段风格 40 2.12 设计自己的控制条 41 2.12.1 重载CControlBar::CalcDynamic-Layout() 41 2.12.2 增加WM_SIZEPARENT消息处理器 41 2.12.3 重载CMainFrame::RecalcLayout() 41 2.12.4 从CDockBar派生 42 2.13 实例 42 2.14 总结 42 第3章 通信 43 3.1 进程间通信 43 3.1.1 通信策略 43 3.1.2 同步和异步通信 44 3.2 窗口消息 44 3.2.1 打开和关闭 44 3.2.2 读与写 45 3.2.3 回顾 45 3.3 动态数据交换 46 3.3.1 客户/服务器 46 3.3.2 打开和关闭 46 3.3.3 读和写 47 3.3.4 其他DDE函数 48 3.3.5 MFC支持 48 3.3.6 回顾 49 3.4 消息管道 49 3.4.1 打开和关闭 49 3.4.2 读和写 50 3.4.3 回顾 51 3.5 Windows套接字 51 3.5.1 打开和关闭 52 3.5.2 读和写 52 3.5.2 通过Windows套接字序列化 53 3.5.3 数据流和数据报 53 3.5.4 回顾 54 3.6 串行/并行通信 54 3.6.1 打开和关闭 54 3.6.2 读和写 54 3.6.3 配置端口 55 3.6.4 回顾 55 3.7 Internet通信 56 3.7.1 打开和关闭文件 56 3.7.2 读文件 56 3.7.3 打开和关闭连接 56 3.7.4 其他Internet类 57 3.8 通信方式小结 57 3.9 共享数据 58 3.10 共享内存文件 58 3.10.1 创建和销毁 58 3.10.2 读和写 58 3.10.3 回顾 59 3.11 文件映射 59 3.11.1 打开和关闭 59 3.11.2 读和写 60 3.11.3 数据同步 60 3.11.4 回顾 60 3.12 客户/服务器 61 3.12.1 传递调用参数 61 3.12.2 远程过程调用 62 3.13 小结 62 第二部分 用户界面实例 第4章 应用程序和环境 64 4.1 实例1:在工具栏中添加静态标识符 64 4.2 实例2:在工具栏中添加动态标识符 71 4.3 实例3:只启动一个实例 75 4.4 实例4:创建对话框/MDI混合式 应用程序 77 4.5 实例5:在系统托盘中添加图标 79 4.6 实例6: 主菜单状态栏中的标记 81 第5章 菜单、控件条和状态栏 85 5.1 实例7:在菜单中添加图标 85 5.2 实例8:调整命令条外观 97 5.3 实例9:可编程工具栏 102 5.4 实例10:在对话框中添加工具栏、 菜单和状态栏 127 5.5 实例11:在弹出菜单中增加位图标记 129 5.6 实例12:工具栏上的下拉按钮 131 5.7 实例13:在状态栏中添加图标 136 5.8 实例14:使用伸缩条 141 第6章 视 143 6.1 实例15:创建标签窗体视 143 6.2 实例16:创建具有通用控件的视 150 6.3 实例17 :打印报表 156 6.4 实例18: 打印视 167 6.5 实例19:绘制MDI客户视 174 6.6 实例20:拖放文件到视 177 第7章 对话框和对话条 179 7.1 实例21:动态改变对话框的尺寸 179 7.2 实例22:自定义数据交换并验证 184 7.3 实例23:重载通用文件对话框 187 7.4 实例24:重载通用颜色对话框 190 7.5 实例25:获得目录名 192 7.6 实例26:子对话框 197 7.7 实例27:子属性表 198 第8章 控件窗口 200 8.1 实例28:自己绘制的控件 200 8.2 实例29:在窗口标题中添加按钮 204 8.3 实例30:添加热键控件 211 第9章 绘图 213 9.1 实例31:使用非散射颜色 213 9.2 实例32:伸展位图 227 9.3 实例33:抓取屏幕 231 9.4 实例34:输出DIB位图文件 236 第10章 帮助 243 10.1 实例35:添加帮助菜单项 243 10.2 实例36:添加上下文相关帮助 245 10.3 实例37:添加气泡帮助 247 第11章 普通窗口 254 11.1 实例38:创建普通窗口 254 11.2 实例39:创建短调用形式窗口类 256 11.3 实例40:创建长调用形式窗口类 258 第12章 特定的应用程序 261 12.1 实例41:创建简单的文本编辑器 261 12.2 实例42:生成简单的RTF编辑器 262 12.3 实例43:创建资源管理器界面 265 12.4 实例44:创建简单的ODBC数据库 编辑器 284 12.5 实例45:创建简单的DAO数据库 编辑器 287 12.6 实例46:创建简单的向导 289 第三部分 内部处理实例 第13章 消息和通信 295 13.1 实例47:等待消息 296 13.2 实例48:清除消息 297 13.3 实例49:向其他应用程序发送消息 298 13.4 实例50:与其他应用程序共享数据 300 13.5 实例51:使用套接字与任意的应用 程序通信 301 13.6 实例52:使用串行或并行I/O 321 第14章 多任务 331 14.1 实例53:后台处理 331 14.2 实例54:运行其他应用程序 332 14.3 实例55:改变优先级 334 14.4 实例56:应用程序内部的多任务 工作者线程 336 14.5 实例57:应用程序内部的多任务 —用户界面线程 339 14.6 实例58:向用户界面线程发送消息 342 14.7 实例59:线程间的数据共享 343 第15章 其他 347 15.1 实例60:创建定时器 347 15.2 实例61:播放声音 349 15.3 实例62:创建VC++宏 350 15.4 实例63:使用函数地址 351 15.5 实例64:二进制字符串 352 15.6 实例65:重新启动计算机 356 15.7 实例66:获得可用磁盘空间 357 15.8 实例67:闪烁窗口和文本 358 第四部分 附录 附录A 消息和重载顺序 361 附录B 绘图结构 385
347B
Visual C++音频视频处理技术及工程实践地址
2012-12-18本书共16章,分为4篇,详细讲解了使用各种软件和平台进行音、视频多媒体编程的技术,以案例为对象展示实现过程、分析技术难点。主要内容包括软件Visual C++2005的开发技术、DirectSound开发音频、DirectShow/VFW开发视频、MMX/SSE进行多媒体汇编编程、DM642 DSP进行音视频算法优化和主流视频算法MPEG-4/H.264的编码原理及工程实践。本书系统地介绍Visual C++ 2005进行流媒体编程的基本思路和方法,采用案例为主的叙述方式,将大量的技术理论融入具体的案例剖析中。采用的案例均来源于作者实际开发工作,具有很好的实用价值,可以帮助读者在开发中进行参考或直接应用。 第1篇 开发基础 1 第1章 数字音视频开发技术基础 3 1.1 数字音视频基本概念 4 1.1.1 数字音频技术基础 4 1.1.2 各种数字音频文件格式基础 4 1.1.3 视频的相关基础概念 8 1.1.4 常见的视频文件格式 8 1.2 数字音视频数据的编解码技术 10 1.2.1 音频数据的编解码 11 1.2.2 视频数据的编解码 13 1.2.3 音视频编码的相关标准 13 1.3 音视频处理平台的选择 15 1.3.1 个人多媒体计算机 15 1.3.2 嵌入式处理器ARM 16 1.3.3 数字媒体处理器DSP 16 1.4 音视频开发的典型应用 16 1.4.1 个人消费类电子产品 16 1.4.2 公共领域的音视频应用 18 1.5 常用音视频开发工具 21 1.5.1 DirectSound音频开发 21 1.5.2 DirectShow视频开发 21 1.5.3 DSP CCS算法开发 22 1.6 本章小结 23 第2章 Visual C++ 2005开发基础 25 2.1 Visual C++ 2005新增特性 26 2.1.1 句柄(Handles) 26 2.1.2 类型的声明 26 2.1.3 对代码编辑的改进 27 2.2 VC能做的事情 27 2.2.1 生成传统的控制台应用程序 27 2.2.2 生成基于MFC的应用程序 32 2.2.3 生成静态链接库 40 2.2.4 生成动态链接库 41 2.3 利用向导完成基本开发 46 2.3.1 生成应用程序 46 2.3.2 生成应用库LIB/DLL 53 2.4 MFC编程基础 56 2.4.1 Windows消息与事件 56 2.4.2 消息与事件的响应 63 2.4.3 常用消息 66 2.5 基于对话框的编程 68 2.5.1 创建和编辑对话框 68 2.5.2 对话框种类 75 2.6 常用控件使用技巧 79 2.6.1 按钮类控件的使用 80 2.6.2 文本可编辑类控件的使用 81 2.6.3 静态类控件的使用 82 2.6.4 其他控件 83 2.7 Visual 2005开发技术资源 84 2.7.1 MSDN在线帮助 84 2.7.2 丰富的网络资源 86 2.8 Visual 2005开发的常见问题 86 2.8.1 如何使用volatile和const_cast 86 2.8.2 如何构造unicode版本的程序 87 2.8.3 如何使用.def文件 87 2.8.4 如何正确编写Win32 DLL 87 2.8.5 如何编写和使用资源DLL 88 2.8.6 如何实现对话框的数据交换 88 2.9 本章小结 89 第2篇 音频开发 91 第3章 DirectSound开发基础 93 3.1 Microsoft DirectSound SDK 94 3.1.1 比较DirectSound与DirectMusic 94 3.1.2 DirectSound SDK能做什么 95 3.1.3 如何获取DirectSound SDK 96 3.1.4 DirectSound SDK的基本结构 98 3.1.5 Directsound SDK安装 100 3.1.6 选择最适合用户的DirectSound SDK 100 3.1.7 用DirectSound进行编程的必要步骤 102 3.2 DirectSound的详细使用方法 103 3.2.1 DirectSound设备对象 104 3.2.2 DirectSound缓冲区对象 107 3.2.3 使用WAV数据 114 3.2.4 使用音效 116 3.3 开发环境配置 118 3.3.1 Visual C++基本开发环境配置 119 3.3.2 DirectSound应用程序的开发环境配置 119 3.3.3 DirectSound Filter开发环境配置 121 3.4 调试音频处理程序 125 3.4.1 Visual C++调试器 125 3.4.2 DirectSound中常用的调试技术 128 3.5 DirectSound开发的常见问题 130 3.6 本章小结 131 第4章 打造自己的音频播放器 133 4.1 系统设计和分析 134 4.2 缓冲区和通知基础 135 4.2.1 缓冲区的概念 135 4.2.2 缓冲区的通知 136 4.3 播放文件 137 4.3.1 创建DirectSound对象 137 4.3.2 创建播放缓冲区 138 4.3.3 调用方法播放声音 145 4.3.4 结束播放 146 4.4 系统效果演示 146 4.4.1 新建基于对话框的程序框架 147 4.4.2 添加控件及变量 147 4.4.3 封装CDirectSound类实现DirectSound声音播放 148 4.4.4 与对话框界面相关操作实现 156 4.4.5 程序运行结果 159 4.5 DirectSound开发常见问题 160 4.6 本章小结 161 第5章 语音3D特效器制作 163 5.1 系统设计和分析 164 5.2 DirectSound 3D缓冲区 164 5.2.1 获取3D缓冲区对象 165 5.2.2 最大距离和最小距离 166 5.2.3 处理模式 167 5.2.4 声音圆锥 167 5.3 DirectSound 3D虚拟听众 168 5.3.1 获得3D听众 168 5.3.2 听众的空间参数 169 5.3.3 距离因子与Doppler效应 171 5.3.4 滚降因子与延迟设置 173 5.4 系统效果演示 174 5.4.1 具体的实现步骤 174 5.4.2 程序的实现代码 176 5.4.3 程序运行结果 186 5.5 DirectSound 3D开发常见问题 187 5.6 本章小结 188 第6章 对拾音设备录制自己的语音文件 189 6.1 系统分析和设计 190 6.2 管理捕获缓冲区 191 6.2.1 创建捕获缓冲区 191 6.2.2 启动缓冲区 197 6.2.3 封锁缓冲区 197 6.2.4 解锁缓冲区 198 6.2.5 中止捕获 199 6.3 系统效果演示 199 6.3.1 声音类的封装 199 6.3.2 声音管理函数的实现 202 6.3.3 程序运行结果 214 6.4 DirectSound录制语音文件开发常见问题 215 6.5 本章小结 216 第3篇 视频开发 217 第7章 DirectShow开发基础 219 7.1 Microsoft DirectShow SDK 220 7.1.1 DirectX及成员组成 220 7.1.2 DirectShow SDK能做什么 221 7.1.3 如何获取DirectShow SDK 221 7.1.4 安装Direshow SDK 222 7.2 开发环境配置 224 7.2.1 生成DirectShow SDK开发库 224 7.2.2 Visual C++开发环境配置 229 7.2.3 常见问题解析集锦 232 7.3 DirectShow SDK基本架构 234 7.3.1 DirectShow SDK总体架构 234 7.3.2 DirectShow SDK简单应用程序案例 236 7.3.3 滤波器链表Filer Graph及各种组件 244 7.3.4 构建滤波器链表(Building Filer Graph) 252 7.3.5 滤波器链表中的数据流动Data Flow 257 7.3.6 DirectShow中的事件通知机制 261 7.3.7 常用DirectShow SDK接口 267 7.4 DirectShow SDK常用开发案例 267 7.4.1 通用开发流程 268 7.4.2 系统初始化 268 7.4.3 媒体播放方法 268 7.4.4 消息处理方法 270 7.4.5 视频采集技术 271 7.4.6 音频采集案例 282 7.5 本章小结 293 第8章 打造自己的媒体播放器 295 8.1 系统分析与设计 296 8.1.1 FilterGraph结构设计 297 8.1.2 GraphEdit模拟实现 297 8.1.3 界面设计 299 8.2 实现媒体控制类 307 8.2.1 CDXGraph类初始化 308 8.2.2 创建Graph滤波器链表 309 8.2.3 图像窗口设计 311 8.2.4 媒体播放控制 312 8.2.5 全屏显示及抓图存盘实现 315 8.3 实现一个简单的媒体播放器 317 8.4 升级你的播放器 321 8.4.1 添加控制功能 321 8.4.2 添加拖放功能 325 8.4.3 添加音量调节功能 326 8.4.4 添加欢迎背景图片 328 8.5 系统效果展示 328 8.6 如何播放更多的文件格式 329 8.7 本章小结 330 第9章 自制DV实现视频采集 331 9.1 系统分析与设计 332 9.1.1 采集设备的枚举 332 9.1.2 使用Capture Graph Builder 335 9.1.3 采集参数的设置 336 9.2 使用经典采集技术实现视频捕获 338 9.2.1 GraphEdit模拟实现 338 9.2.2 视频捕获类CCaptureClass的实现 340 9.2.3 界面设计 345 9.3 使用VMR技术实现视频图像捕获 350 9.3.1 VMR技术基础 350 9.3.2 GraphEdit模拟实现视频捕获预览 350 9.3.3 视频图像捕获类CVMR_Capture的实现 353 9.3.4 界面设计 361 9.4 系统效果演示 366 9.4.1 实例一 系统效果演示 367 9.4.2 实例二 系统效果演示 368 9.5 本章小结 369 第10章 VFW技术实现视频处理通用平台 371 10.1 VFW开发技术流程分析 372 10.1.1 技术概述 372 10.1.2 VFW采集开发流程图 373 10.2 使用VFW实现视频捕获和预览 373 10.2.1 建立单文档应用程序 373 10.2.2 创建视频窗口 375 10.2.3 设计回调函数 376 10.2.4 视频图像显示设置 378 10.2.5 捕获预览视频 379 10.2.6 配置视频格式及图像参数 381 10.3 使用系统插件实现视频编解码 382 10.3.1 使用系统视频编解码插件 383 10.3.2 视频编码码流写AVI文件 385 10.3.3 关闭平台 387 10.4 使用XviD CODEC算法实现视频编解码 388 10.4.1 生成XviD算法静态库(编译过程) 388 10.4.2 实现XviD CODEC视频编码算法函数 389 10.4.3 实现XviD CODEC视频解码算法函数 393 10.4.4 使用XviD CODEC编解码算法 395 10.5 平台应用效果展示 398 10.6 本章小结 399 第4篇 编解码技术 401 第11章 纵览音视频编解码技术 403 11.1 数字音视频基础 404 11.2 音视频编解码及方法 406 11.2.1 音频编码方法 406 11.2.2 视频编码方法 410 11.3 编解码技术标准 417 11.3.1 静态图像编码标准 418 11.3.2 MPEG-4/H.264视频算法 424 11.3.3 AVS国产视频编码标准 430 11.4 编解码产业及发展 431 11.4.1 编解码资源一览 431 11.4.2 编解码发展前景 432 11.5 本章小结 433 第12章 使用MMX/SSE 2进行多媒体编程 435 12.1 MMX/SSE 2技术基础 436 12.2 MMX/SSE 2指令剖析 439 12.2.1 MMX媒体扩展指令 439 12.2.2 MMX程序设计 444 12.2.3 SSE/SSE 2媒体扩展指令 455 12.2.4 SSE程序设计详细解析 457 12.3 使用MMX/SSE 2进行音视频开发 463 12.3.1 开发前技术准备 464 12.3.2 MMX/SSE 2视频编解码编程 465 12.3.3 使用VC调试MMX/SSE 2程序 470 12.4 MMX/SSE 2开发常见问题 472 12.4.1 制订计划 472 12.4.2 哪部分代码可使用MMX技术改进 473 12.4.3 代码是浮点型还是整型 473 12.4.4 EMMS准则 474 12.4.5 CPUID的检测MMX技术的用法 474 12.4.6 数据对齐 474 12.4.7 数据安排 475 12.4.8 应用程序最后的调整 476 12.5 本章小结 476 第13章 用DM642实现视频编解码技术 477 13.1 数字媒体处理器TMS320DM642DSP概述 478 13.2 DSP软件开发环境CCS 481 13.2.1 安装CCS 481 13.2.2 CCS主要部件 482 13.2.3 使用CCS优化工具实现算法优化 488 13.3 用C语言进行视频算法框架编程 492 13.3.1 C编程规则和参考 492 13.3.2 DSP关键字与CMD文件使用 493 13.3.3 算法系统资源剖析 495 13.4 DM642实现视频算法优化 497 13.4.1 并行算法指令和建立软件流水 497 13.4.2 使用intrinsic指令完成核心模块的优化 499 13.4.3 使用DSP线性汇编优化核心模块 500 13.4.4 使用Cache技术实现算法优化 507 13.4.5 使用乒乓式EDMA实现算法优化 508 13.5 DM642优化视频算法常见问题 513 13.6 本章小结 518 第14章 XviD CODEC实现MPEG-4编解码 519 14.1 MPEG-4编解码概述 520 14.1.1 基于对象的MPEG-4视频编码 520 14.1.2 XviD格式文件播放 520 14.2 XviD CODEC编解码分析 521 14.2.1 MPEG-4编解码设计与剖析 521 14.2.2 MMX/SSE 2实现XviD CODEC 549 14.2.3 DM642下XviD CODEC优化 553 14.3 运行XviD CODEC系统 559 14.3.1 YUV原始视频数据及其显示 559 14.3.2 VC平台下编译和运行XviD CODEC 559 14.3.3 CODEC在DSP下软仿真和硬仿真 562 14.4 系统效果展示 562 14.5 本章小结 563 第15章 X264实现H.264/AVC视频编码 565 15.1 H.264/AVC编码概要 566 15.1.1 开源代码工程管理软件 566 15.1.2 获取开源算法工程 566 15.1.3 H.264/AVC新特性 567 15.2 X264视频编码分析 568 15.2.1 H.264/AVC关键技术要点 569 15.2.2 X264视频编码设计与剖析 577 15.2.3 X264核心模块MMX/DSP汇编优化 599 15.3 运行X264编码系统 606 15.3.1 VC平台下编译和运行X264 606 15.3.2 JM验证X264码流 610 15.3.3 ffmpeg中的H.264视频解码 611 15.4 系统效果展示 611 15.4.1 X264实现H.264/AVC视频编码 611 15.4.2 ffmpeg-h264-vc工程实现H.264视频解码 612 15.5 本章小结 613 第16章 打造自己的DVR监控系统 615 16.1 DVR监控系统分析与设计 616 16.1.1 监控系统分类 616 16.1.2 监控系统组成 617 16.1.3 基于压缩板卡的SDK软件开发包 619 16.2 DVR监控系统主界面软件设计 621 16.2.1 对话框应用程序开发 621 16.2.2 位图按钮设计 622 16.3 模拟DVR视频采集 636 16.3.1 基于DirectShow的视频采集回放 636 16.3.2 基于DirectShow的影音文件回放 638 16.4 系统效果展示 643 16.5 本章小结 644 附录A 旧版VC升级到VC 2005程序安全的10点注意事项 645 附录B 开发常见问题 (附源码) 因先前网友反映先前版本(11分卷版)分卷数量太多导致解压经常出错,因本人上传权限为100MB,先已重新压缩上传为2分卷版,感谢各位网友的支持。 本下载链接为分卷1,总共两个分卷 本分卷由2345好压(Haozip)生成,请使用2345好压来解压。 2345好压下载地址:http://www.haozip.com/ 附件中德PDF请用Adoble PDF Reader打开,测试成功版本为11.00 分卷文件共有以下2个: Visual.Cpp音频视频处理技术及工程实践.haozip01.zip Visual.Cpp音频视频处理技术及工程实践.haozip02.zip 为了更方便的合并分卷文件,本说明文件请勿删除,谢谢! 下载链接为: 分卷1: http://download.csdn.net/detail/a7952113/4785478 分卷2: http://download.csdn.net/detail/a7952113/4785943 因CSDN不能评论自己的资源,现只能通过这种途径来解释先前网友的疑问。经亲自下载测试,在安装好压和Adoble Reader的情况下可以解压和打开,如不能解压,可能是下载不完整,可重新下载(不会再次扣去积分),如有问题可发我私信。
6.44MB
Windows 2000编程利器--Visual C++编程高手
2008-11-07本书是在《Visual C++ 6.0编程高手》基础上的新推出的2000版,编者在1年多的时间里收集、整理、加工、调试了大量的visual C++实用程序,并汇集成书。本书共计36章206个程序。这些程序覆盖了Visual C++编程的主要应用:用户界面设计、多媒体(图形、图像、动画和声音)、网络(ActiveX组件、Internet、和数据库)以及杂类等五大部分。其中,用户界面设计部分包括:按钮、编辑框、静态控件、组合框、列表框、树视、列视、工具条、状态条、菜单、其他控件、对话框、文档视窗模型、文件和文件夹、Shell、高级用户界面。多媒体部分包括GDI、位图、打印、OpenGL、DirectX、动画、声音等。网络部分包括ActiveX控件、Internet、IE编程、ISAPI、数据库等。杂类包括字符串处理、宏、剪贴板、日期和时间、DLL、调试、C++和MFC类、综合示例、工具和杂项。绝大部分程序包含源代码、目文件和可执行文件,可以直接为你所用。 由于篇幅所限,本书主要介绍各个程序的功能及设计思想,而其完整源程序和演示程序包含在与本书配套的光盘的相关目录中。 本书内容新、丰富、实用性和指导性强。本书不但是对从事Visual C++编程的新手还是老手,以及其他编程语言,比如VB、Delphi的程序员,都具有重要的参考价值, “拿来就用”而且也可作为大专院极相关专业师生的自学、教学参考书和社会相关领域培训班推荐教材。 本书配套光盘内容包括:本书所有程序的源代码。所有代码已在Windows 98和Windows 2000下调试成功。 第一部分 用户界面设计 第l章 按钮控件 程序l 带热点的按钮 程序2 高级按钮控件 程序3 弹性按钮 程序4 带选项列表的按钮 程序5 可重叠的按钮控件 程序6 由静态文本类继承的按钮 程序7 任意形状的按钮 第2章 编辑控件 程序l 自动填充的编辑框 程序2 货币格式的编辑框 程序3 对语法敏感的编辑框 程序4 包含提示文本和编辑框的复合编辑控件 程序5 高级编辑控件 程序6 数字滚选编辑框 第3章 静态控件 程序1 带有水平或垂直文字的斜线 程序2 彩色静态文本框 程序3 静态直方图 程序4 跳跃的静态文本 程序5 显示设备无关位图(DIB)的静态控件 第4章组合框 程序1 多列组合框 程序2 可定制的颜色选择器 程序3 边框变换的组合框 程序4 类似MS Office风格的组合框 程序5 只读组合框 第5章 列表控件 程序l 双列表选择管理器 程序2 彩色文本列表框 程序3 多级列表框 程序4 属性列表框 程序5 Visual Studio风格的列表框 第6章 TREEVIEW控件 程序l 定制的TreeViev控件 程序2 用来显示磁盘文件目录的TreeView控件 程序3 在TreeViev控件之间实现拖放 程序4 带有TreeViey控件的属性页 程序5 IE高级选项风格的TreeView控件. 第7章 工具条 程序1 可定制的工具条和菜单 程序2 在多文档界面中切换的工具条 第8章 状态条 程序l 在状态条中播放AVI文件 程序2 扩展型的状态条 第9章 菜单控件 程序1 高级弹出菜单 程序2 可停靠的菜单条 程序3 为控件设计的平面弹出式菜单 第10章 其他公用控件 程序l 数据测绘的绘图类 程序2 Macintosh按钮 程序3 数字钟 程序4 完全用户定制的标签控件 程序5 形状可改变的进度控件 程序6 Smart Grid—表格控件 程序7 静态发光二极管控件 程序8 液晶显示控件 第ll章 对话框 程序l 可“钉住”的对话框基类 程序2 扩展MFC文件通用对话框 程序3 Corel PhotoHouse风格的颜色选择对话框 程序4 用来选择和建立文件夹的对话框 程序5 文件预览对话框 程序6 多文件选择对话框 程序7 一个检验对话框中的所有控件变化的简便方法 程序8 堆叠的对话框 程序9 标签对话框类 程序l0 用通用文件对话框作为无模式的视图 第12章 文档/视窗模型 程序l 一个定制的佃I客户区 程序2 在多文档窗口中增加“More windows”对话框 程序3 MDI程序中的文档选择器 程序4 MDI程序的自动标签条 程序5 一个文档对应两个视图 第13章 文件和文件夹 程序l CFilelnfoArray一文件信息和比较 程序2 建立多级目录 程序3 CStringFile类 第14章 SHELL编程 程序l 系统条动画图标类 程序2 命令行参数菜单扩展 第15章 高级用户界面 程序l Outlook 98风格的条形控件 程序2 动态子窗口的重新配置 程序3 建立定制窗口标题的框架 程序4 信息条 程序5 增强的列表控件 程序6 可视化的框架 程序7 皮肤生成器 程序8 混合透明窗口 第二部分 多媒体 第16章 GDI 程序l 自动字体处理类 程序2 设置LOGFONT结构的简单方法 程序3 字体选择组合框 程序4 JTDraw—一个绘图的例子 程序5 旋转图片一高级内存设备环境 第17章 位图 程序l 设备无关位图包 程序2 向CBitmap中读取位图文件的快速方法 程序3 真彩滚轮 程序4 在24位颜色位图中直接访问像素 程序5 高品质的图像旋转 程序6 半透明位图 程序7 静态透明图像类 程序8 观察PCX文件 程序9 一个TWAIN的C++包 第18章 打印 程序l 定制通用打印对话框 程序2 设置默认打印机的函数 程序3 Windows文件的一般打印/预览程序 程序4 不需MFC支持的打印预览 程序5 非文档/视结构的打印预览 程序6 打印文本函数的封装类 第19章 OPENGL编程 程序l 三维字体 程序2 OpenGL的图像旋转缩放处理 程序3 简单OpenGL类 程序4 将一个OpenGL图像发送到剪贴板 程序5 使用24位位图作为OpenGL的图像 第20章 DIRECTX 程序l 用MFC进行简单的直接写屏(DirectDraw) 程序2 高级的直接写屏类 第21章 动画和声音 程序1 AVI图像捕获包 程序2 录制、播放、存储声音文件的多线程类 程序3 简单的混音控制器包 程序4 透明的动画控件 第三部分 网络和数据库 第22章 ACTIVEX控件 程序1 ActiveX超级链接控件 程序2 自动填充控件 第23章 INTERNET 程序1 从IE中向列表控件中拖拽链接地址 程序2 建立Internet快捷方式 程序3 创建拨号连接对象 程序4 简单的邮件客户端程序 程序5 简单聊天程序 程序6 CFtpGet一下载FTP文件类 程序7 Socket传输程序 程序8 HTTP服务监视器 第24章 IE编程 程序l 清除历史纪录 程序2 删除Internet的暂存文件 程序3 怎样将CHtmlViev的内容添加到剪贴板中 程序4 用ATL HTML控件实现浏览器的镶嵌窗口 第25章 ISAPI 程序l 浏览IIS目录结构 程序2 ISAPI扩展DLL中的Cookies 第26章数据库 程序1 从Visual C++中用Access自动生成报表 程序2 在Visual C++中访问Borland数据库引擎(BDE) 程序3 浏览ODBC的数据源名(DSN) 程序4 CByteArrayFile—串行化对象到数据字段 程序5 CODBCDynamic——一个从ODBC数据源中动态读取数据的类 程序6 DAO组合框 程序7 ODBC的日期时间 程序8 交互式的SQL工具(使用ADO) 程序9 交互式的SQL工具(使用MFC) 程序10 在DLL中使用DAO 第四部分 杂类 第27章 字符串 程序l 在Windows95/98上处理UNICODE字符串 程序2 进行资源读取和字符串格式化的CString扩展类 程序3 不依赖系统的CString类 程序4 CUnicodeString类 程序5 简单字符串类 第28章 宏 程序l C++操作符宏 程序2 注释块宏 程序3 定制的应用向导一“关于”对话框 程序4 程序行计数器插件 程序5 SmartHelp帮助文件插件 程序6 WM_COMMAND用户消息宏 程序7 去除替换字符和重复的注释 第29章 剪贴板 程序l ClipConvert——剪贴板数据转换器 程序2 从资源管理器中复制文件名 第30章 时间和日期 程序l 一周时间选择器 第3l章 DLL 程序l 建立非MFC DLL的静态链接 程序2 显示已装载模块 程序3 运行时动态调用DLL 第32章 DEBUG 程序l LibDump 程序2 QProfile工具包一一个评估代码的类 程序3 Visual C++定制Debug监视器 第33章 C++和MFC类 程序l 强大的函数解析 程序2 CEditDist抽象类 程序3 环形缓冲区 程序4 ComprLib—数据压缩类库 程序5 观察者模式类 程序6 CStringArray的快速排序 程序7 CArray模板类的快速排序 程序8 用名字实例化类 程序9 独立于AVL库的存储媒体 程序10 TimeStamp—替代COleDateTime和COleDateTimeeSpan 第34章 综合实例 程序l 磁盘空间监测器 程序2 取回密码程序 程序3 OutLook风格的数据库浏览器 第35章常用工具 程序1 命令行查找工具 程序2 Win32DEF文件生成器 程序3 文件快速分隔器 程序4 资源查找器 程序5 StampVer—版本资源修改器 程序6 存储过程类向导 程序7 系统颜色变换器 第36章 其他杂类 程序l 文件被其它程序更改时提醒用户 程序2 CIniFile—读写INI文件的类 程序3 建立一个自解压的可执行文件 程序4 得到版本信息的CWinApp派生类 程序5 在任何从CWnd派生的窗口中实现拖放 程序6 综合系统日志 程序7 在标题栏和菜单条之间加入标识图 程序8 MFC窗口风格预览器 程序9 图形选择缩放类 程序10 简单的消息服务 程序11 简单的函数式计算器 程序12 非窗口类的计时器支持 程序13 在内部过程通信(1PC)中使用内存映射文件 程序14 Win32位图屏幕保护程序 程序15 xSleep—Sleep函数的改进 程序16 在MFC中使用Zip和UnZip
14.30MB
Visual C++ 程序开发范例宝典光盘源码 (第二版)1/7
2011-01-11第1章 窗体与界面设计 1.1 菜单应用实例 实例001 在系统菜单中添加菜单项 实例002 带图标的程序菜单 实例003 根据表中数据动态生成菜单 实例004 浮动的菜单 1.2 弹出菜单应用实例 实例005 在控件上单击右键弹出菜单 实例006 个性化的弹出菜单 实例007 任务栏托盘弹出菜单 1.3 工具栏应用实例 实例008 带背景的工具栏 实例009 带图标的工具栏 实例010 带下拉菜单的工具栏 实例011 可调整按钮位置的工具栏 实例012 XP风格工具栏 实例013 动态设置是否显示工具栏按钮文本 实例014 具有提示功能的工具栏 1.4 状态栏应用实例 实例015 带进度条的状态栏 实例016 动画效果的状态栏 实例017 滚动字幕的状态栏 1.5 导航界面应用实例 实例018 Outlook导航界面 实例019 树状导航界面 实例020 按钮导航界面 实例021 图片导航界面 1.6 界面窗体应用实例 实例022 使用位图设计畸形界面 实例023 椭圆形的程序界面 实例024 自绘窗体界面 实例025 以时钟显示界面 实例026 窗体融合技术 实例027 限制对话框最大时的窗口大小 实例028 分割视图窗口 实例029 对话框全屏显示 1.7 多媒体宣传光盘应用实例 实例030 多媒体宣传光盘主界面 实例031 自动运行的多媒体宣传光盘 1.8 多媒体触摸屏程序应用实例 实例032 采购中心多媒体触摸屏程序 实例033 为触摸屏程序添加虚拟键盘 1.9 窗体位置应用实例 实例034 不可移动的窗体 实例035 始终在最上面的窗体 实例036 以动画形式显示窗体 实例037 磁性窗体 1.10 窗体标题栏应用实例 实例038 闪烁的窗体标题栏 实例039 拖动没有标题栏的窗体 实例040 禁用标题栏上的最大化、最小化或关闭按钮 1.11 窗体形状及应用 实例041 半透明窗体 实例042 创建字型窗体 实例043 设计桌面精灵 1.12 通用对话框的应用 实例044 打开位图预览对话框 实例045 打开Windows新型对话框 实例046 同时选择多个文件 实例047 文本替换对话框 实例048 字体选择对话框 第2章 控件应用 2.1 按钮控件典型实例 实例049 AVI动画按钮 实例050 GIF动画按钮 实例051 图文按钮 实例052 不规则按钮 实例053 热点按钮 2.2 编辑框控件典型实例 实例054 为编辑框设置新的系统菜单 实例055 为编辑框控件添加列表选择框 实例056 多彩边框的编辑框 实例057 改变编辑框文本颜色 实例058 不同文本颜色的编辑框 实例059 位图背景编辑框 2.3 静态文本控件典型实例 实例060 电子计时器 实例061 使用静态文本控件设计群组框 实例062 制作超链接控件 2.4 列表框控件典型实例 实例063 利用列表框控件实现标签式数据选择 实例064 具有水平滚动条的列表框控件 实例065 列表项的提示条 实例066 位图背景列表框控件 2.5 组合框控件典型实例 实例067 将数据表中的字段添加到组合框控件 实例068 带查询功能的组合框控件 实例069 自动调整组合框的宽度 实例070 颜色组合框 实例071 多列显示的组合框 实例072 带图标的组合框 实例073 显示系统盘符组合框 2.6 列表视图控件典型实例 实例074 Windows资源管理器 实例075 利用列表视图控件浏览数据 实例076 利用列表视图控件制作导航界面 实例077 在列表视图中拖动视图项 实例078 具有排序功能的列表视图控件 实例079 具有文本录入功能的列表视图控件 实例080 使用列表视图设计登录界面 2.7 树视图控件典型实例 实例081 多级数据库树状结构数据显示 实例082 节点拖动功能的树控件 实例083 带复选功能的树状结构 实例084 三态效果树控件 实例085 修改树控件节点连线颜色 实例086 位图背景树控件 实例087 显示磁盘目录 实例088 树型提示框 2.8 RichEdit控件典型实例 实例089 利用RichEdit显示Word文档 实例090 利用RichEdit控件实现文字定位与标识 实例091 利用RichEdit控件显示图文数据 实例092 在RichEdit中显示不同字体和颜色的文本 实例093 在RichEdit中显示GIF动画 2.9 滚动条控件典型实例 实例094 自定义滚动条控件 2.10 进度条控件典型实例 实例095 进度条百分比显示 实例096 渐变颜色的进度条 2.11 工具提示控件典型实例 实例097 应用工具提示控件 2.12 滑块控件典型实例 实例098 使用滑块控件设置颜色值 实例099 绘制滑块控件 2.13 标签控件典型实例 实例100 应用标签控件 实例101 自定义标签控件 2.14 控件数组典型实例 实例102 向窗体中动态添加控件 实例103 公交线路模拟 第3章 图形技术 第4章 多媒体技术 第5章 文件系统 第6章 操作系统与Windows相关程序 第7章 注册表 第8章 数据库技术 第9章 SQL查询相关技术 第10章 打印与报表技术 第11章 硬件相关开发技术 第12章 网络开发技术 第13章 Web编程 第14章 加密、安全与软件注册 第15章 实用工具 附录 技术要点对应实例位置
24.0MB
Visual C++音频视频处理技术及工程实践(分卷9)
2011-03-08本书共16章,分为4篇,详细讲解了使用各种软件和平台进行音、视频多媒体编程的技术,以案例为对象展示实现过程、分析技术难点。主要内容包括软件Visual C++2005的开发技术、DirectSound开发音频、DirectShow/VFW开发视频、MMX/SSE进行多媒体汇编编程、DM642 DSP进行音视频算法优化和主流视频算法MPEG-4/H.264的编码原理及工程实践。本书系统地介绍Visual C++ 2005进行流媒体编程的基本思路和方法,采用案例为主的叙述方式,将大量的技术理论融入具体的案例剖析中。采用的案例均来源于作者实际开发工作,具有很好的实用价值,可以帮助读者在开发中进行参考或直接应用。 第1篇 开发基础 1 第1章 数字音视频开发技术基础 3 1.1 数字音视频基本概念 4 1.1.1 数字音频技术基础 4 1.1.2 各种数字音频文件格式基础 4 1.1.3 视频的相关基础概念 8 1.1.4 常见的视频文件格式 8 1.2 数字音视频数据的编解码技术 10 1.2.1 音频数据的编解码 11 1.2.2 视频数据的编解码 13 1.2.3 音视频编码的相关标准 13 1.3 音视频处理平台的选择 15 1.3.1 个人多媒体计算机 15 1.3.2 嵌入式处理器ARM 16 1.3.3 数字媒体处理器DSP 16 1.4 音视频开发的典型应用 16 1.4.1 个人消费类电子产品 16 1.4.2 公共领域的音视频应用 18 1.5 常用音视频开发工具 21 1.5.1 DirectSound音频开发 21 1.5.2 DirectShow视频开发 21 1.5.3 DSP CCS算法开发 22 1.6 本章小结 23 第2章 Visual C++ 2005开发基础 25 2.1 Visual C++ 2005新增特性 26 2.1.1 句柄(Handles) 26 2.1.2 类型的声明 26 2.1.3 对代码编辑的改进 27 2.2 VC能做的事情 27 2.2.1 生成传统的控制台应用程序 27 2.2.2 生成基于MFC的应用程序 32 2.2.3 生成静态链接库 40 2.2.4 生成动态链接库 41 2.3 利用向导完成基本开发 46 2.3.1 生成应用程序 46 2.3.2 生成应用库LIB/DLL 53 2.4 MFC编程基础 56 2.4.1 Windows消息与事件 56 2.4.2 消息与事件的响应 63 2.4.3 常用消息 66 2.5 基于对话框的编程 68 2.5.1 创建和编辑对话框 68 2.5.2 对话框种类 75 2.6 常用控件使用技巧 79 2.6.1 按钮类控件的使用 80 2.6.2 文本可编辑类控件的使用 81 2.6.3 静态类控件的使用 82 2.6.4 其他控件 83 2.7 Visual 2005开发技术资源 84 2.7.1 MSDN在线帮助 84 2.7.2 丰富的网络资源 86 2.8 Visual 2005开发的常见问题 86 2.8.1 如何使用volatile和const_cast 86 2.8.2 如何构造unicode版本的程序 87 2.8.3 如何使用.def文件 87 2.8.4 如何正确编写Win32 DLL 87 2.8.5 如何编写和使用资源DLL 88 2.8.6 如何实现对话框的数据交换 88 2.9 本章小结 89 第2篇 音频开发 91 第3章 DirectSound开发基础 93 3.1 Microsoft DirectSound SDK 94 3.1.1 比较DirectSound与DirectMusic 94 3.1.2 DirectSound SDK能做什么 95 3.1.3 如何获取DirectSound SDK 96 3.1.4 DirectSound SDK的基本结构 98 3.1.5 Directsound SDK安装 100 3.1.6 选择最适合用户的DirectSound SDK 100 3.1.7 用DirectSound进行编程的必要步骤 102 3.2 DirectSound的详细使用方法 103 3.2.1 DirectSound设备对象 104 3.2.2 DirectSound缓冲区对象 107 3.2.3 使用WAV数据 114 3.2.4 使用音效 116 3.3 开发环境配置 118 3.3.1 Visual C++基本开发环境配置 119 3.3.2 DirectSound应用程序的开发环境配置 119 3.3.3 DirectSound Filter开发环境配置 121 3.4 调试音频处理程序 125 3.4.1 Visual C++调试器 125 3.4.2 DirectSound中常用的调试技术 128 3.5 DirectSound开发的常见问题 130 3.6 本章小结 131 第4章 打造自己的音频播放器 133 4.1 系统设计和分析 134 4.2 缓冲区和通知基础 135 4.2.1 缓冲区的概念 135 4.2.2 缓冲区的通知 136 4.3 播放文件 137 4.3.1 创建DirectSound对象 137 4.3.2 创建播放缓冲区 138 4.3.3 调用方法播放声音 145 4.3.4 结束播放 146 4.4 系统效果演示 146 4.4.1 新建基于对话框的程序框架 147 4.4.2 添加控件及变量 147 4.4.3 封装CDirectSound类实现DirectSound声音播放 148 4.4.4 与对话框界面相关操作实现 156 4.4.5 程序运行结果 159 4.5 DirectSound开发常见问题 160 4.6 本章小结 161 第5章 语音3D特效器制作 163 5.1 系统设计和分析 164 5.2 DirectSound 3D缓冲区 164 5.2.1 获取3D缓冲区对象 165 5.2.2 最大距离和最小距离 166 5.2.3 处理模式 167 5.2.4 声音圆锥 167 5.3 DirectSound 3D虚拟听众 168 5.3.1 获得3D听众 168 5.3.2 听众的空间参数 169 5.3.3 距离因子与Doppler效应 171 5.3.4 滚降因子与延迟设置 173 5.4 系统效果演示 174 5.4.1 具体的实现步骤 174 5.4.2 程序的实现代码 176 5.4.3 程序运行结果 186 5.5 DirectSound 3D开发常见问题 187 5.6 本章小结 188 第6章 对拾音设备录制自己的语音文件 189 6.1 系统分析和设计 190 6.2 管理捕获缓冲区 191 6.2.1 创建捕获缓冲区 191 6.2.2 启动缓冲区 197 6.2.3 封锁缓冲区 197 6.2.4 解锁缓冲区 198 6.2.5 中止捕获 199 6.3 系统效果演示 199 6.3.1 声音类的封装 199 6.3.2 声音管理函数的实现 202 6.3.3 程序运行结果 214 6.4 DirectSound录制语音文件开发常见问题 215 6.5 本章小结 216 第3篇 视频开发 217 第7章 DirectShow开发基础 219 7.1 Microsoft DirectShow SDK 220 7.1.1 DirectX及成员组成 220 7.1.2 DirectShow SDK能做什么 221 7.1.3 如何获取DirectShow SDK 221 7.1.4 安装Direshow SDK 222 7.2 开发环境配置 224 7.2.1 生成DirectShow SDK开发库 224 7.2.2 Visual C++开发环境配置 229 7.2.3 常见问题解析集锦 232 7.3 DirectShow SDK基本架构 234 7.3.1 DirectShow SDK总体架构 234 7.3.2 DirectShow SDK简单应用程序案例 236 7.3.3 滤波器链表Filer Graph及各种组件 244 7.3.4 构建滤波器链表(Building Filer Graph) 252 7.3.5 滤波器链表中的数据流动Data Flow 257 7.3.6 DirectShow中的事件通知机制 261 7.3.7 常用DirectShow SDK接口 267 7.4 DirectShow SDK常用开发案例 267 7.4.1 通用开发流程 268 7.4.2 系统初始化 268 7.4.3 媒体播放方法 268 7.4.4 消息处理方法 270 7.4.5 视频采集技术 271 7.4.6 音频采集案例 282 7.5 本章小结 293 第8章 打造自己的媒体播放器 295 8.1 系统分析与设计 296 8.1.1 FilterGraph结构设计 297 8.1.2 GraphEdit模拟实现 297 8.1.3 界面设计 299 8.2 实现媒体控制类 307 8.2.1 CDXGraph类初始化 308 8.2.2 创建Graph滤波器链表 309 8.2.3 图像窗口设计 311 8.2.4 媒体播放控制 312 8.2.5 全屏显示及抓图存盘实现 315 8.3 实现一个简单的媒体播放器 317 8.4 升级你的播放器 321 8.4.1 添加控制功能 321 8.4.2 添加拖放功能 325 8.4.3 添加音量调节功能 326 8.4.4 添加欢迎背景图片 328 8.5 系统效果展示 328 8.6 如何播放更多的文件格式 329 8.7 本章小结 330 第9章 自制DV实现视频采集 331 9.1 系统分析与设计 332 9.1.1 采集设备的枚举 332 9.1.2 使用Capture Graph Builder 335 9.1.3 采集参数的设置 336 9.2 使用经典采集技术实现视频捕获 338 9.2.1 GraphEdit模拟实现 338 9.2.2 视频捕获类CCaptureClass的实现 340 9.2.3 界面设计 345 9.3 使用VMR技术实现视频图像捕获 350 9.3.1 VMR技术基础 350 9.3.2 GraphEdit模拟实现视频捕获预览 350 9.3.3 视频图像捕获类CVMR_Capture的实现 353 9.3.4 界面设计 361 9.4 系统效果演示 366 9.4.1 实例一 系统效果演示 367 9.4.2 实例二 系统效果演示 368 9.5 本章小结 369 第10章 VFW技术实现视频处理通用平台 371 10.1 VFW开发技术流程分析 372 10.1.1 技术概述 372 10.1.2 VFW采集开发流程图 373 10.2 使用VFW实现视频捕获和预览 373 10.2.1 建立单文档应用程序 373 10.2.2 创建视频窗口 375 10.2.3 设计回调函数 376 10.2.4 视频图像显示设置 378 10.2.5 捕获预览视频 379 10.2.6 配置视频格式及图像参数 381 10.3 使用系统插件实现视频编解码 382 10.3.1 使用系统视频编解码插件 383 10.3.2 视频编码码流写AVI文件 385 10.3.3 关闭平台 387 10.4 使用XviD CODEC算法实现视频编解码 388 10.4.1 生成XviD算法静态库(编译过程) 388 10.4.2 实现XviD CODEC视频编码算法函数 389 10.4.3 实现XviD CODEC视频解码算法函数 393 10.4.4 使用XviD CODEC编解码算法 395 10.5 平台应用效果展示 398 10.6 本章小结 399 第4篇 编解码技术 401 第11章 纵览音视频编解码技术 403 11.1 数字音视频基础 404 11.2 音视频编解码及方法 406 11.2.1 音频编码方法 406 11.2.2 视频编码方法 410 11.3 编解码技术标准 417 11.3.1 静态图像编码标准 418 11.3.2 MPEG-4/H.264视频算法 424 11.3.3 AVS国产视频编码标准 430 11.4 编解码产业及发展 431 11.4.1 编解码资源一览 431 11.4.2 编解码发展前景 432 11.5 本章小结 433 第12章 使用MMX/SSE 2进行多媒体编程 435 12.1 MMX/SSE 2技术基础 436 12.2 MMX/SSE 2指令剖析 439 12.2.1 MMX媒体扩展指令 439 12.2.2 MMX程序设计 444 12.2.3 SSE/SSE 2媒体扩展指令 455 12.2.4 SSE程序设计详细解析 457 12.3 使用MMX/SSE 2进行音视频开发 463 12.3.1 开发前技术准备 464 12.3.2 MMX/SSE 2视频编解码编程 465 12.3.3 使用VC调试MMX/SSE 2程序 470 12.4 MMX/SSE 2开发常见问题 472 12.4.1 制订计划 472 12.4.2 哪部分代码可使用MMX技术改进 473 12.4.3 代码是浮点型还是整型 473 12.4.4 EMMS准则 474 12.4.5 CPUID的检测MMX技术的用法 474 12.4.6 数据对齐 474 12.4.7 数据安排 475 12.4.8 应用程序最后的调整 476 12.5 本章小结 476 第13章 用DM642实现视频编解码技术 477 13.1 数字媒体处理器TMS320DM642DSP概述 478 13.2 DSP软件开发环境CCS 481 13.2.1 安装CCS 481 13.2.2 CCS主要部件 482 13.2.3 使用CCS优化工具实现算法优化 488 13.3 用C语言进行视频算法框架编程 492 13.3.1 C编程规则和参考 492 13.3.2 DSP关键字与CMD文件使用 493 13.3.3 算法系统资源剖析 495 13.4 DM642实现视频算法优化 497 13.4.1 并行算法指令和建立软件流水 497 13.4.2 使用intrinsic指令完成核心模块的优化 499 13.4.3 使用DSP线性汇编优化核心模块 500 13.4.4 使用Cache技术实现算法优化 507 13.4.5 使用乒乓式EDMA实现算法优化 508 13.5 DM642优化视频算法常见问题 513 13.6 本章小结 518 第14章 XviD CODEC实现MPEG-4编解码 519 14.1 MPEG-4编解码概述 520 14.1.1 基于对象的MPEG-4视频编码 520 14.1.2 XviD格式文件播放 520 14.2 XviD CODEC编解码分析 521 14.2.1 MPEG-4编解码设计与剖析 521 14.2.2 MMX/SSE 2实现XviD CODEC 549 14.2.3 DM642下XviD CODEC优化 553 14.3 运行XviD CODEC系统 559 14.3.1 YUV原始视频数据及其显示 559 14.3.2 VC平台下编译和运行XviD CODEC 559 14.3.3 CODEC在DSP下软仿真和硬仿真 562 14.4 系统效果展示 562 14.5 本章小结 563 第15章 X264实现H.264/AVC视频编码 565 15.1 H.264/AVC编码概要 566 15.1.1 开源代码工程管理软件 566 15.1.2 获取开源算法工程 566 15.1.3 H.264/AVC新特性 567 15.2 X264视频编码分析 568 15.2.1 H.264/AVC关键技术要点 569 15.2.2 X264视频编码设计与剖析 577 15.2.3 X264核心模块MMX/DSP汇编优化 599 15.3 运行X264编码系统 606 15.3.1 VC平台下编译和运行X264 606 15.3.2 JM验证X264码流 610 15.3.3 ffmpeg中的H.264视频解码 611 15.4 系统效果展示 611 15.4.1 X264实现H.264/AVC视频编码 611 15.4.2 ffmpeg-h264-vc工程实现H.264视频解码 612 15.5 本章小结 613 第16章 打造自己的DVR监控系统 615 16.1 DVR监控系统分析与设计 616 16.1.1 监控系统分类 616 16.1.2 监控系统组成 617 16.1.3 基于压缩板卡的SDK软件开发包 619 16.2 DVR监控系统主界面软件设计 621 16.2.1 对话框应用程序开发 621 16.2.2 位图按钮设计 622 16.3 模拟DVR视频采集 636 16.3.1 基于DirectShow的视频采集回放 636 16.3.2 基于DirectShow的影音文件回放 638 16.4 系统效果展示 643 16.5 本章小结 644 附录A 旧版VC升级到VC 2005程序安全的10点注意事项 645 附录B 开发常见问题 (附源码) 由于文件过大所以本文件采用分卷压缩的,需要安装好压,并下载完全部压缩分卷。共11个分卷。
11.29MB
Visual C++音频视频处理技术及工程实践(分卷0)
2011-03-08本书共16章,分为4篇,详细讲解了使用各种软件和平台进行音、视频多媒体编程的技术,以案例为对象展示实现过程、分析技术难点。主要内容包括软件Visual C++2005的开发技术、DirectSound开发音频、DirectShow/VFW开发视频、MMX/SSE进行多媒体汇编编程、DM642 DSP进行音视频算法优化和主流视频算法MPEG-4/H.264的编码原理及工程实践。本书系统地介绍Visual C++ 2005进行流媒体编程的基本思路和方法,采用案例为主的叙述方式,将大量的技术理论融入具体的案例剖析中。采用的案例均来源于作者实际开发工作,具有很好的实用价值,可以帮助读者在开发中进行参考或直接应用。 第1篇 开发基础 1 第1章 数字音视频开发技术基础 3 1.1 数字音视频基本概念 4 1.1.1 数字音频技术基础 4 1.1.2 各种数字音频文件格式基础 4 1.1.3 视频的相关基础概念 8 1.1.4 常见的视频文件格式 8 1.2 数字音视频数据的编解码技术 10 1.2.1 音频数据的编解码 11 1.2.2 视频数据的编解码 13 1.2.3 音视频编码的相关标准 13 1.3 音视频处理平台的选择 15 1.3.1 个人多媒体计算机 15 1.3.2 嵌入式处理器ARM 16 1.3.3 数字媒体处理器DSP 16 1.4 音视频开发的典型应用 16 1.4.1 个人消费类电子产品 16 1.4.2 公共领域的音视频应用 18 1.5 常用音视频开发工具 21 1.5.1 DirectSound音频开发 21 1.5.2 DirectShow视频开发 21 1.5.3 DSP CCS算法开发 22 1.6 本章小结 23 第2章 Visual C++ 2005开发基础 25 2.1 Visual C++ 2005新增特性 26 2.1.1 句柄(Handles) 26 2.1.2 类型的声明 26 2.1.3 对代码编辑的改进 27 2.2 VC能做的事情 27 2.2.1 生成传统的控制台应用程序 27 2.2.2 生成基于MFC的应用程序 32 2.2.3 生成静态链接库 40 2.2.4 生成动态链接库 41 2.3 利用向导完成基本开发 46 2.3.1 生成应用程序 46 2.3.2 生成应用库LIB/DLL 53 2.4 MFC编程基础 56 2.4.1 Windows消息与事件 56 2.4.2 消息与事件的响应 63 2.4.3 常用消息 66 2.5 基于对话框的编程 68 2.5.1 创建和编辑对话框 68 2.5.2 对话框种类 75 2.6 常用控件使用技巧 79 2.6.1 按钮类控件的使用 80 2.6.2 文本可编辑类控件的使用 81 2.6.3 静态类控件的使用 82 2.6.4 其他控件 83 2.7 Visual 2005开发技术资源 84 2.7.1 MSDN在线帮助 84 2.7.2 丰富的网络资源 86 2.8 Visual 2005开发的常见问题 86 2.8.1 如何使用volatile和const_cast 86 2.8.2 如何构造unicode版本的程序 87 2.8.3 如何使用.def文件 87 2.8.4 如何正确编写Win32 DLL 87 2.8.5 如何编写和使用资源DLL 88 2.8.6 如何实现对话框的数据交换 88 2.9 本章小结 89 第2篇 音频开发 91 第3章 DirectSound开发基础 93 3.1 Microsoft DirectSound SDK 94 3.1.1 比较DirectSound与DirectMusic 94 3.1.2 DirectSound SDK能做什么 95 3.1.3 如何获取DirectSound SDK 96 3.1.4 DirectSound SDK的基本结构 98 3.1.5 Directsound SDK安装 100 3.1.6 选择最适合用户的DirectSound SDK 100 3.1.7 用DirectSound进行编程的必要步骤 102 3.2 DirectSound的详细使用方法 103 3.2.1 DirectSound设备对象 104 3.2.2 DirectSound缓冲区对象 107 3.2.3 使用WAV数据 114 3.2.4 使用音效 116 3.3 开发环境配置 118 3.3.1 Visual C++基本开发环境配置 119 3.3.2 DirectSound应用程序的开发环境配置 119 3.3.3 DirectSound Filter开发环境配置 121 3.4 调试音频处理程序 125 3.4.1 Visual C++调试器 125 3.4.2 DirectSound中常用的调试技术 128 3.5 DirectSound开发的常见问题 130 3.6 本章小结 131 第4章 打造自己的音频播放器 133 4.1 系统设计和分析 134 4.2 缓冲区和通知基础 135 4.2.1 缓冲区的概念 135 4.2.2 缓冲区的通知 136 4.3 播放文件 137 4.3.1 创建DirectSound对象 137 4.3.2 创建播放缓冲区 138 4.3.3 调用方法播放声音 145 4.3.4 结束播放 146 4.4 系统效果演示 146 4.4.1 新建基于对话框的程序框架 147 4.4.2 添加控件及变量 147 4.4.3 封装CDirectSound类实现DirectSound声音播放 148 4.4.4 与对话框界面相关操作实现 156 4.4.5 程序运行结果 159 4.5 DirectSound开发常见问题 160 4.6 本章小结 161 第5章 语音3D特效器制作 163 5.1 系统设计和分析 164 5.2 DirectSound 3D缓冲区 164 5.2.1 获取3D缓冲区对象 165 5.2.2 最大距离和最小距离 166 5.2.3 处理模式 167 5.2.4 声音圆锥 167 5.3 DirectSound 3D虚拟听众 168 5.3.1 获得3D听众 168 5.3.2 听众的空间参数 169 5.3.3 距离因子与Doppler效应 171 5.3.4 滚降因子与延迟设置 173 5.4 系统效果演示 174 5.4.1 具体的实现步骤 174 5.4.2 程序的实现代码 176 5.4.3 程序运行结果 186 5.5 DirectSound 3D开发常见问题 187 5.6 本章小结 188 第6章 对拾音设备录制自己的语音文件 189 6.1 系统分析和设计 190 6.2 管理捕获缓冲区 191 6.2.1 创建捕获缓冲区 191 6.2.2 启动缓冲区 197 6.2.3 封锁缓冲区 197 6.2.4 解锁缓冲区 198 6.2.5 中止捕获 199 6.3 系统效果演示 199 6.3.1 声音类的封装 199 6.3.2 声音管理函数的实现 202 6.3.3 程序运行结果 214 6.4 DirectSound录制语音文件开发常见问题 215 6.5 本章小结 216 第3篇 视频开发 217 第7章 DirectShow开发基础 219 7.1 Microsoft DirectShow SDK 220 7.1.1 DirectX及成员组成 220 7.1.2 DirectShow SDK能做什么 221 7.1.3 如何获取DirectShow SDK 221 7.1.4 安装Direshow SDK 222 7.2 开发环境配置 224 7.2.1 生成DirectShow SDK开发库 224 7.2.2 Visual C++开发环境配置 229 7.2.3 常见问题解析集锦 232 7.3 DirectShow SDK基本架构 234 7.3.1 DirectShow SDK总体架构 234 7.3.2 DirectShow SDK简单应用程序案例 236 7.3.3 滤波器链表Filer Graph及各种组件 244 7.3.4 构建滤波器链表(Building Filer Graph) 252 7.3.5 滤波器链表中的数据流动Data Flow 257 7.3.6 DirectShow中的事件通知机制 261 7.3.7 常用DirectShow SDK接口 267 7.4 DirectShow SDK常用开发案例 267 7.4.1 通用开发流程 268 7.4.2 系统初始化 268 7.4.3 媒体播放方法 268 7.4.4 消息处理方法 270 7.4.5 视频采集技术 271 7.4.6 音频采集案例 282 7.5 本章小结 293 第8章 打造自己的媒体播放器 295 8.1 系统分析与设计 296 8.1.1 FilterGraph结构设计 297 8.1.2 GraphEdit模拟实现 297 8.1.3 界面设计 299 8.2 实现媒体控制类 307 8.2.1 CDXGraph类初始化 308 8.2.2 创建Graph滤波器链表 309 8.2.3 图像窗口设计 311 8.2.4 媒体播放控制 312 8.2.5 全屏显示及抓图存盘实现 315 8.3 实现一个简单的媒体播放器 317 8.4 升级你的播放器 321 8.4.1 添加控制功能 321 8.4.2 添加拖放功能 325 8.4.3 添加音量调节功能 326 8.4.4 添加欢迎背景图片 328 8.5 系统效果展示 328 8.6 如何播放更多的文件格式 329 8.7 本章小结 330 第9章 自制DV实现视频采集 331 9.1 系统分析与设计 332 9.1.1 采集设备的枚举 332 9.1.2 使用Capture Graph Builder 335 9.1.3 采集参数的设置 336 9.2 使用经典采集技术实现视频捕获 338 9.2.1 GraphEdit模拟实现 338 9.2.2 视频捕获类CCaptureClass的实现 340 9.2.3 界面设计 345 9.3 使用VMR技术实现视频图像捕获 350 9.3.1 VMR技术基础 350 9.3.2 GraphEdit模拟实现视频捕获预览 350 9.3.3 视频图像捕获类CVMR_Capture的实现 353 9.3.4 界面设计 361 9.4 系统效果演示 366 9.4.1 实例一 系统效果演示 367 9.4.2 实例二 系统效果演示 368 9.5 本章小结 369 第10章 VFW技术实现视频处理通用平台 371 10.1 VFW开发技术流程分析 372 10.1.1 技术概述 372 10.1.2 VFW采集开发流程图 373 10.2 使用VFW实现视频捕获和预览 373 10.2.1 建立单文档应用程序 373 10.2.2 创建视频窗口 375 10.2.3 设计回调函数 376 10.2.4 视频图像显示设置 378 10.2.5 捕获预览视频 379 10.2.6 配置视频格式及图像参数 381 10.3 使用系统插件实现视频编解码 382 10.3.1 使用系统视频编解码插件 383 10.3.2 视频编码码流写AVI文件 385 10.3.3 关闭平台 387 10.4 使用XviD CODEC算法实现视频编解码 388 10.4.1 生成XviD算法静态库(编译过程) 388 10.4.2 实现XviD CODEC视频编码算法函数 389 10.4.3 实现XviD CODEC视频解码算法函数 393 10.4.4 使用XviD CODEC编解码算法 395 10.5 平台应用效果展示 398 10.6 本章小结 399 第4篇 编解码技术 401 第11章 纵览音视频编解码技术 403 11.1 数字音视频基础 404 11.2 音视频编解码及方法 406 11.2.1 音频编码方法 406 11.2.2 视频编码方法 410 11.3 编解码技术标准 417 11.3.1 静态图像编码标准 418 11.3.2 MPEG-4/H.264视频算法 424 11.3.3 AVS国产视频编码标准 430 11.4 编解码产业及发展 431 11.4.1 编解码资源一览 431 11.4.2 编解码发展前景 432 11.5 本章小结 433 第12章 使用MMX/SSE 2进行多媒体编程 435 12.1 MMX/SSE 2技术基础 436 12.2 MMX/SSE 2指令剖析 439 12.2.1 MMX媒体扩展指令 439 12.2.2 MMX程序设计 444 12.2.3 SSE/SSE 2媒体扩展指令 455 12.2.4 SSE程序设计详细解析 457 12.3 使用MMX/SSE 2进行音视频开发 463 12.3.1 开发前技术准备 464 12.3.2 MMX/SSE 2视频编解码编程 465 12.3.3 使用VC调试MMX/SSE 2程序 470 12.4 MMX/SSE 2开发常见问题 472 12.4.1 制订计划 472 12.4.2 哪部分代码可使用MMX技术改进 473 12.4.3 代码是浮点型还是整型 473 12.4.4 EMMS准则 474 12.4.5 CPUID的检测MMX技术的用法 474 12.4.6 数据对齐 474 12.4.7 数据安排 475 12.4.8 应用程序最后的调整 476 12.5 本章小结 476 第13章 用DM642实现视频编解码技术 477 13.1 数字媒体处理器TMS320DM642DSP概述 478 13.2 DSP软件开发环境CCS 481 13.2.1 安装CCS 481 13.2.2 CCS主要部件 482 13.2.3 使用CCS优化工具实现算法优化 488 13.3 用C语言进行视频算法框架编程 492 13.3.1 C编程规则和参考 492 13.3.2 DSP关键字与CMD文件使用 493 13.3.3 算法系统资源剖析 495 13.4 DM642实现视频算法优化 497 13.4.1 并行算法指令和建立软件流水 497 13.4.2 使用intrinsic指令完成核心模块的优化 499 13.4.3 使用DSP线性汇编优化核心模块 500 13.4.4 使用Cache技术实现算法优化 507 13.4.5 使用乒乓式EDMA实现算法优化 508 13.5 DM642优化视频算法常见问题 513 13.6 本章小结 518 第14章 XviD CODEC实现MPEG-4编解码 519 14.1 MPEG-4编解码概述 520 14.1.1 基于对象的MPEG-4视频编码 520 14.1.2 XviD格式文件播放 520 14.2 XviD CODEC编解码分析 521 14.2.1 MPEG-4编解码设计与剖析 521 14.2.2 MMX/SSE 2实现XviD CODEC 549 14.2.3 DM642下XviD CODEC优化 553 14.3 运行XviD CODEC系统 559 14.3.1 YUV原始视频数据及其显示 559 14.3.2 VC平台下编译和运行XviD CODEC 559 14.3.3 CODEC在DSP下软仿真和硬仿真 562 14.4 系统效果展示 562 14.5 本章小结 563 第15章 X264实现H.264/AVC视频编码 565 15.1 H.264/AVC编码概要 566 15.1.1 开源代码工程管理软件 566 15.1.2 获取开源算法工程 566 15.1.3 H.264/AVC新特性 567 15.2 X264视频编码分析 568 15.2.1 H.264/AVC关键技术要点 569 15.2.2 X264视频编码设计与剖析 577 15.2.3 X264核心模块MMX/DSP汇编优化 599 15.3 运行X264编码系统 606 15.3.1 VC平台下编译和运行X264 606 15.3.2 JM验证X264码流 610 15.3.3 ffmpeg中的H.264视频解码 611 15.4 系统效果展示 611 15.4.1 X264实现H.264/AVC视频编码 611 15.4.2 ffmpeg-h264-vc工程实现H.264视频解码 612 15.5 本章小结 613 第16章 打造自己的DVR监控系统 615 16.1 DVR监控系统分析与设计 616 16.1.1 监控系统分类 616 16.1.2 监控系统组成 617 16.1.3 基于压缩板卡的SDK软件开发包 619 16.2 DVR监控系统主界面软件设计 621 16.2.1 对话框应用程序开发 621 16.2.2 位图按钮设计 622 16.3 模拟DVR视频采集 636 16.3.1 基于DirectShow的视频采集回放 636 16.3.2 基于DirectShow的影音文件回放 638 16.4 系统效果展示 643 16.5 本章小结 644 附录A 旧版VC升级到VC 2005程序安全的10点注意事项 645 附录B 开发常见问题 (附源码) 由于文件过大所以本文件采用分卷压缩的,需要安装好压,并下载完全部压缩分卷。共11个分卷。
6.54MB
侯捷-Boost技术与应用
2010-08-04侯捷-Boost技术与应用 侯捷-Boost技术与应用
24.0MB
Visual C++音频视频处理技术及工程实践(分卷6)
2011-03-08本书共16章,分为4篇,详细讲解了使用各种软件和平台进行音、视频多媒体编程的技术,以案例为对象展示实现过程、分析技术难点。主要内容包括软件Visual C++2005的开发技术、DirectSound开发音频、DirectShow/VFW开发视频、MMX/SSE进行多媒体汇编编程、DM642 DSP进行音视频算法优化和主流视频算法MPEG-4/H.264的编码原理及工程实践。本书系统地介绍Visual C++ 2005进行流媒体编程的基本思路和方法,采用案例为主的叙述方式,将大量的技术理论融入具体的案例剖析中。采用的案例均来源于作者实际开发工作,具有很好的实用价值,可以帮助读者在开发中进行参考或直接应用。 第1篇 开发基础 1 第1章 数字音视频开发技术基础 3 1.1 数字音视频基本概念 4 1.1.1 数字音频技术基础 4 1.1.2 各种数字音频文件格式基础 4 1.1.3 视频的相关基础概念 8 1.1.4 常见的视频文件格式 8 1.2 数字音视频数据的编解码技术 10 1.2.1 音频数据的编解码 11 1.2.2 视频数据的编解码 13 1.2.3 音视频编码的相关标准 13 1.3 音视频处理平台的选择 15 1.3.1 个人多媒体计算机 15 1.3.2 嵌入式处理器ARM 16 1.3.3 数字媒体处理器DSP 16 1.4 音视频开发的典型应用 16 1.4.1 个人消费类电子产品 16 1.4.2 公共领域的音视频应用 18 1.5 常用音视频开发工具 21 1.5.1 DirectSound音频开发 21 1.5.2 DirectShow视频开发 21 1.5.3 DSP CCS算法开发 22 1.6 本章小结 23 第2章 Visual C++ 2005开发基础 25 2.1 Visual C++ 2005新增特性 26 2.1.1 句柄(Handles) 26 2.1.2 类型的声明 26 2.1.3 对代码编辑的改进 27 2.2 VC能做的事情 27 2.2.1 生成传统的控制台应用程序 27 2.2.2 生成基于MFC的应用程序 32 2.2.3 生成静态链接库 40 2.2.4 生成动态链接库 41 2.3 利用向导完成基本开发 46 2.3.1 生成应用程序 46 2.3.2 生成应用库LIB/DLL 53 2.4 MFC编程基础 56 2.4.1 Windows消息与事件 56 2.4.2 消息与事件的响应 63 2.4.3 常用消息 66 2.5 基于对话框的编程 68 2.5.1 创建和编辑对话框 68 2.5.2 对话框种类 75 2.6 常用控件使用技巧 79 2.6.1 按钮类控件的使用 80 2.6.2 文本可编辑类控件的使用 81 2.6.3 静态类控件的使用 82 2.6.4 其他控件 83 2.7 Visual 2005开发技术资源 84 2.7.1 MSDN在线帮助 84 2.7.2 丰富的网络资源 86 2.8 Visual 2005开发的常见问题 86 2.8.1 如何使用volatile和const_cast 86 2.8.2 如何构造unicode版本的程序 87 2.8.3 如何使用.def文件 87 2.8.4 如何正确编写Win32 DLL 87 2.8.5 如何编写和使用资源DLL 88 2.8.6 如何实现对话框的数据交换 88 2.9 本章小结 89 第2篇 音频开发 91 第3章 DirectSound开发基础 93 3.1 Microsoft DirectSound SDK 94 3.1.1 比较DirectSound与DirectMusic 94 3.1.2 DirectSound SDK能做什么 95 3.1.3 如何获取DirectSound SDK 96 3.1.4 DirectSound SDK的基本结构 98 3.1.5 Directsound SDK安装 100 3.1.6 选择最适合用户的DirectSound SDK 100 3.1.7 用DirectSound进行编程的必要步骤 102 3.2 DirectSound的详细使用方法 103 3.2.1 DirectSound设备对象 104 3.2.2 DirectSound缓冲区对象 107 3.2.3 使用WAV数据 114 3.2.4 使用音效 116 3.3 开发环境配置 118 3.3.1 Visual C++基本开发环境配置 119 3.3.2 DirectSound应用程序的开发环境配置 119 3.3.3 DirectSound Filter开发环境配置 121 3.4 调试音频处理程序 125 3.4.1 Visual C++调试器 125 3.4.2 DirectSound中常用的调试技术 128 3.5 DirectSound开发的常见问题 130 3.6 本章小结 131 第4章 打造自己的音频播放器 133 4.1 系统设计和分析 134 4.2 缓冲区和通知基础 135 4.2.1 缓冲区的概念 135 4.2.2 缓冲区的通知 136 4.3 播放文件 137 4.3.1 创建DirectSound对象 137 4.3.2 创建播放缓冲区 138 4.3.3 调用方法播放声音 145 4.3.4 结束播放 146 4.4 系统效果演示 146 4.4.1 新建基于对话框的程序框架 147 4.4.2 添加控件及变量 147 4.4.3 封装CDirectSound类实现DirectSound声音播放 148 4.4.4 与对话框界面相关操作实现 156 4.4.5 程序运行结果 159 4.5 DirectSound开发常见问题 160 4.6 本章小结 161 第5章 语音3D特效器制作 163 5.1 系统设计和分析 164 5.2 DirectSound 3D缓冲区 164 5.2.1 获取3D缓冲区对象 165 5.2.2 最大距离和最小距离 166 5.2.3 处理模式 167 5.2.4 声音圆锥 167 5.3 DirectSound 3D虚拟听众 168 5.3.1 获得3D听众 168 5.3.2 听众的空间参数 169 5.3.3 距离因子与Doppler效应 171 5.3.4 滚降因子与延迟设置 173 5.4 系统效果演示 174 5.4.1 具体的实现步骤 174 5.4.2 程序的实现代码 176 5.4.3 程序运行结果 186 5.5 DirectSound 3D开发常见问题 187 5.6 本章小结 188 第6章 对拾音设备录制自己的语音文件 189 6.1 系统分析和设计 190 6.2 管理捕获缓冲区 191 6.2.1 创建捕获缓冲区 191 6.2.2 启动缓冲区 197 6.2.3 封锁缓冲区 197 6.2.4 解锁缓冲区 198 6.2.5 中止捕获 199 6.3 系统效果演示 199 6.3.1 声音类的封装 199 6.3.2 声音管理函数的实现 202 6.3.3 程序运行结果 214 6.4 DirectSound录制语音文件开发常见问题 215 6.5 本章小结 216 第3篇 视频开发 217 第7章 DirectShow开发基础 219 7.1 Microsoft DirectShow SDK 220 7.1.1 DirectX及成员组成 220 7.1.2 DirectShow SDK能做什么 221 7.1.3 如何获取DirectShow SDK 221 7.1.4 安装Direshow SDK 222 7.2 开发环境配置 224 7.2.1 生成DirectShow SDK开发库 224 7.2.2 Visual C++开发环境配置 229 7.2.3 常见问题解析集锦 232 7.3 DirectShow SDK基本架构 234 7.3.1 DirectShow SDK总体架构 234 7.3.2 DirectShow SDK简单应用程序案例 236 7.3.3 滤波器链表Filer Graph及各种组件 244 7.3.4 构建滤波器链表(Building Filer Graph) 252 7.3.5 滤波器链表中的数据流动Data Flow 257 7.3.6 DirectShow中的事件通知机制 261 7.3.7 常用DirectShow SDK接口 267 7.4 DirectShow SDK常用开发案例 267 7.4.1 通用开发流程 268 7.4.2 系统初始化 268 7.4.3 媒体播放方法 268 7.4.4 消息处理方法 270 7.4.5 视频采集技术 271 7.4.6 音频采集案例 282 7.5 本章小结 293 第8章 打造自己的媒体播放器 295 8.1 系统分析与设计 296 8.1.1 FilterGraph结构设计 297 8.1.2 GraphEdit模拟实现 297 8.1.3 界面设计 299 8.2 实现媒体控制类 307 8.2.1 CDXGraph类初始化 308 8.2.2 创建Graph滤波器链表 309 8.2.3 图像窗口设计 311 8.2.4 媒体播放控制 312 8.2.5 全屏显示及抓图存盘实现 315 8.3 实现一个简单的媒体播放器 317 8.4 升级你的播放器 321 8.4.1 添加控制功能 321 8.4.2 添加拖放功能 325 8.4.3 添加音量调节功能 326 8.4.4 添加欢迎背景图片 328 8.5 系统效果展示 328 8.6 如何播放更多的文件格式 329 8.7 本章小结 330 第9章 自制DV实现视频采集 331 9.1 系统分析与设计 332 9.1.1 采集设备的枚举 332 9.1.2 使用Capture Graph Builder 335 9.1.3 采集参数的设置 336 9.2 使用经典采集技术实现视频捕获 338 9.2.1 GraphEdit模拟实现 338 9.2.2 视频捕获类CCaptureClass的实现 340 9.2.3 界面设计 345 9.3 使用VMR技术实现视频图像捕获 350 9.3.1 VMR技术基础 350 9.3.2 GraphEdit模拟实现视频捕获预览 350 9.3.3 视频图像捕获类CVMR_Capture的实现 353 9.3.4 界面设计 361 9.4 系统效果演示 366 9.4.1 实例一 系统效果演示 367 9.4.2 实例二 系统效果演示 368 9.5 本章小结 369 第10章 VFW技术实现视频处理通用平台 371 10.1 VFW开发技术流程分析 372 10.1.1 技术概述 372 10.1.2 VFW采集开发流程图 373 10.2 使用VFW实现视频捕获和预览 373 10.2.1 建立单文档应用程序 373 10.2.2 创建视频窗口 375 10.2.3 设计回调函数 376 10.2.4 视频图像显示设置 378 10.2.5 捕获预览视频 379 10.2.6 配置视频格式及图像参数 381 10.3 使用系统插件实现视频编解码 382 10.3.1 使用系统视频编解码插件 383 10.3.2 视频编码码流写AVI文件 385 10.3.3 关闭平台 387 10.4 使用XviD CODEC算法实现视频编解码 388 10.4.1 生成XviD算法静态库(编译过程) 388 10.4.2 实现XviD CODEC视频编码算法函数 389 10.4.3 实现XviD CODEC视频解码算法函数 393 10.4.4 使用XviD CODEC编解码算法 395 10.5 平台应用效果展示 398 10.6 本章小结 399 第4篇 编解码技术 401 第11章 纵览音视频编解码技术 403 11.1 数字音视频基础 404 11.2 音视频编解码及方法 406 11.2.1 音频编码方法 406 11.2.2 视频编码方法 410 11.3 编解码技术标准 417 11.3.1 静态图像编码标准 418 11.3.2 MPEG-4/H.264视频算法 424 11.3.3 AVS国产视频编码标准 430 11.4 编解码产业及发展 431 11.4.1 编解码资源一览 431 11.4.2 编解码发展前景 432 11.5 本章小结 433 第12章 使用MMX/SSE 2进行多媒体编程 435 12.1 MMX/SSE 2技术基础 436 12.2 MMX/SSE 2指令剖析 439 12.2.1 MMX媒体扩展指令 439 12.2.2 MMX程序设计 444 12.2.3 SSE/SSE 2媒体扩展指令 455 12.2.4 SSE程序设计详细解析 457 12.3 使用MMX/SSE 2进行音视频开发 463 12.3.1 开发前技术准备 464 12.3.2 MMX/SSE 2视频编解码编程 465 12.3.3 使用VC调试MMX/SSE 2程序 470 12.4 MMX/SSE 2开发常见问题 472 12.4.1 制订计划 472 12.4.2 哪部分代码可使用MMX技术改进 473 12.4.3 代码是浮点型还是整型 473 12.4.4 EMMS准则 474 12.4.5 CPUID的检测MMX技术的用法 474 12.4.6 数据对齐 474 12.4.7 数据安排 475 12.4.8 应用程序最后的调整 476 12.5 本章小结 476 第13章 用DM642实现视频编解码技术 477 13.1 数字媒体处理器TMS320DM642DSP概述 478 13.2 DSP软件开发环境CCS 481 13.2.1 安装CCS 481 13.2.2 CCS主要部件 482 13.2.3 使用CCS优化工具实现算法优化 488 13.3 用C语言进行视频算法框架编程 492 13.3.1 C编程规则和参考 492 13.3.2 DSP关键字与CMD文件使用 493 13.3.3 算法系统资源剖析 495 13.4 DM642实现视频算法优化 497 13.4.1 并行算法指令和建立软件流水 497 13.4.2 使用intrinsic指令完成核心模块的优化 499 13.4.3 使用DSP线性汇编优化核心模块 500 13.4.4 使用Cache技术实现算法优化 507 13.4.5 使用乒乓式EDMA实现算法优化 508 13.5 DM642优化视频算法常见问题 513 13.6 本章小结 518 第14章 XviD CODEC实现MPEG-4编解码 519 14.1 MPEG-4编解码概述 520 14.1.1 基于对象的MPEG-4视频编码 520 14.1.2 XviD格式文件播放 520 14.2 XviD CODEC编解码分析 521 14.2.1 MPEG-4编解码设计与剖析 521 14.2.2 MMX/SSE 2实现XviD CODEC 549 14.2.3 DM642下XviD CODEC优化 553 14.3 运行XviD CODEC系统 559 14.3.1 YUV原始视频数据及其显示 559 14.3.2 VC平台下编译和运行XviD CODEC 559 14.3.3 CODEC在DSP下软仿真和硬仿真 562 14.4 系统效果展示 562 14.5 本章小结 563 第15章 X264实现H.264/AVC视频编码 565 15.1 H.264/AVC编码概要 566 15.1.1 开源代码工程管理软件 566 15.1.2 获取开源算法工程 566 15.1.3 H.264/AVC新特性 567 15.2 X264视频编码分析 568 15.2.1 H.264/AVC关键技术要点 569 15.2.2 X264视频编码设计与剖析 577 15.2.3 X264核心模块MMX/DSP汇编优化 599 15.3 运行X264编码系统 606 15.3.1 VC平台下编译和运行X264 606 15.3.2 JM验证X264码流 610 15.3.3 ffmpeg中的H.264视频解码 611 15.4 系统效果展示 611 15.4.1 X264实现H.264/AVC视频编码 611 15.4.2 ffmpeg-h264-vc工程实现H.264视频解码 612 15.5 本章小结 613 第16章 打造自己的DVR监控系统 615 16.1 DVR监控系统分析与设计 616 16.1.1 监控系统分类 616 16.1.2 监控系统组成 617 16.1.3 基于压缩板卡的SDK软件开发包 619 16.2 DVR监控系统主界面软件设计 621 16.2.1 对话框应用程序开发 621 16.2.2 位图按钮设计 622 16.3 模拟DVR视频采集 636 16.3.1 基于DirectShow的视频采集回放 636 16.3.2 基于DirectShow的影音文件回放 638 16.4 系统效果展示 643 16.5 本章小结 644 附录A 旧版VC升级到VC 2005程序安全的10点注意事项 645 附录B 开发常见问题 (附源码) 由于文件过大所以本文件采用分卷压缩的,需要安装好压,并下载完全部压缩分卷。共11个分卷。
24.0MB
Visual C++音频视频处理技术及工程实践(分卷10)
2011-03-08本书共16章,分为4篇,详细讲解了使用各种软件和平台进行音、视频多媒体编程的技术,以案例为对象展示实现过程、分析技术难点。主要内容包括软件Visual C++2005的开发技术、DirectSound开发音频、DirectShow/VFW开发视频、MMX/SSE进行多媒体汇编编程、DM642 DSP进行音视频算法优化和主流视频算法MPEG-4/H.264的编码原理及工程实践。本书系统地介绍Visual C++ 2005进行流媒体编程的基本思路和方法,采用案例为主的叙述方式,将大量的技术理论融入具体的案例剖析中。采用的案例均来源于作者实际开发工作,具有很好的实用价值,可以帮助读者在开发中进行参考或直接应用。 第1篇 开发基础 1 第1章 数字音视频开发技术基础 3 1.1 数字音视频基本概念 4 1.1.1 数字音频技术基础 4 1.1.2 各种数字音频文件格式基础 4 1.1.3 视频的相关基础概念 8 1.1.4 常见的视频文件格式 8 1.2 数字音视频数据的编解码技术 10 1.2.1 音频数据的编解码 11 1.2.2 视频数据的编解码 13 1.2.3 音视频编码的相关标准 13 1.3 音视频处理平台的选择 15 1.3.1 个人多媒体计算机 15 1.3.2 嵌入式处理器ARM 16 1.3.3 数字媒体处理器DSP 16 1.4 音视频开发的典型应用 16 1.4.1 个人消费类电子产品 16 1.4.2 公共领域的音视频应用 18 1.5 常用音视频开发工具 21 1.5.1 DirectSound音频开发 21 1.5.2 DirectShow视频开发 21 1.5.3 DSP CCS算法开发 22 1.6 本章小结 23 第2章 Visual C++ 2005开发基础 25 2.1 Visual C++ 2005新增特性 26 2.1.1 句柄(Handles) 26 2.1.2 类型的声明 26 2.1.3 对代码编辑的改进 27 2.2 VC能做的事情 27 2.2.1 生成传统的控制台应用程序 27 2.2.2 生成基于MFC的应用程序 32 2.2.3 生成静态链接库 40 2.2.4 生成动态链接库 41 2.3 利用向导完成基本开发 46 2.3.1 生成应用程序 46 2.3.2 生成应用库LIB/DLL 53 2.4 MFC编程基础 56 2.4.1 Windows消息与事件 56 2.4.2 消息与事件的响应 63 2.4.3 常用消息 66 2.5 基于对话框的编程 68 2.5.1 创建和编辑对话框 68 2.5.2 对话框种类 75 2.6 常用控件使用技巧 79 2.6.1 按钮类控件的使用 80 2.6.2 文本可编辑类控件的使用 81 2.6.3 静态类控件的使用 82 2.6.4 其他控件 83 2.7 Visual 2005开发技术资源 84 2.7.1 MSDN在线帮助 84 2.7.2 丰富的网络资源 86 2.8 Visual 2005开发的常见问题 86 2.8.1 如何使用volatile和const_cast 86 2.8.2 如何构造unicode版本的程序 87 2.8.3 如何使用.def文件 87 2.8.4 如何正确编写Win32 DLL 87 2.8.5 如何编写和使用资源DLL 88 2.8.6 如何实现对话框的数据交换 88 2.9 本章小结 89 第2篇 音频开发 91 第3章 DirectSound开发基础 93 3.1 Microsoft DirectSound SDK 94 3.1.1 比较DirectSound与DirectMusic 94 3.1.2 DirectSound SDK能做什么 95 3.1.3 如何获取DirectSound SDK 96 3.1.4 DirectSound SDK的基本结构 98 3.1.5 Directsound SDK安装 100 3.1.6 选择最适合用户的DirectSound SDK 100 3.1.7 用DirectSound进行编程的必要步骤 102 3.2 DirectSound的详细使用方法 103 3.2.1 DirectSound设备对象 104 3.2.2 DirectSound缓冲区对象 107 3.2.3 使用WAV数据 114 3.2.4 使用音效 116 3.3 开发环境配置 118 3.3.1 Visual C++基本开发环境配置 119 3.3.2 DirectSound应用程序的开发环境配置 119 3.3.3 DirectSound Filter开发环境配置 121 3.4 调试音频处理程序 125 3.4.1 Visual C++调试器 125 3.4.2 DirectSound中常用的调试技术 128 3.5 DirectSound开发的常见问题 130 3.6 本章小结 131 第4章 打造自己的音频播放器 133 4.1 系统设计和分析 134 4.2 缓冲区和通知基础 135 4.2.1 缓冲区的概念 135 4.2.2 缓冲区的通知 136 4.3 播放文件 137 4.3.1 创建DirectSound对象 137 4.3.2 创建播放缓冲区 138 4.3.3 调用方法播放声音 145 4.3.4 结束播放 146 4.4 系统效果演示 146 4.4.1 新建基于对话框的程序框架 147 4.4.2 添加控件及变量 147 4.4.3 封装CDirectSound类实现DirectSound声音播放 148 4.4.4 与对话框界面相关操作实现 156 4.4.5 程序运行结果 159 4.5 DirectSound开发常见问题 160 4.6 本章小结 161 第5章 语音3D特效器制作 163 5.1 系统设计和分析 164 5.2 DirectSound 3D缓冲区 164 5.2.1 获取3D缓冲区对象 165 5.2.2 最大距离和最小距离 166 5.2.3 处理模式 167 5.2.4 声音圆锥 167 5.3 DirectSound 3D虚拟听众 168 5.3.1 获得3D听众 168 5.3.2 听众的空间参数 169 5.3.3 距离因子与Doppler效应 171 5.3.4 滚降因子与延迟设置 173 5.4 系统效果演示 174 5.4.1 具体的实现步骤 174 5.4.2 程序的实现代码 176 5.4.3 程序运行结果 186 5.5 DirectSound 3D开发常见问题 187 5.6 本章小结 188 第6章 对拾音设备录制自己的语音文件 189 6.1 系统分析和设计 190 6.2 管理捕获缓冲区 191 6.2.1 创建捕获缓冲区 191 6.2.2 启动缓冲区 197 6.2.3 封锁缓冲区 197 6.2.4 解锁缓冲区 198 6.2.5 中止捕获 199 6.3 系统效果演示 199 6.3.1 声音类的封装 199 6.3.2 声音管理函数的实现 202 6.3.3 程序运行结果 214 6.4 DirectSound录制语音文件开发常见问题 215 6.5 本章小结 216 第3篇 视频开发 217 第7章 DirectShow开发基础 219 7.1 Microsoft DirectShow SDK 220 7.1.1 DirectX及成员组成 220 7.1.2 DirectShow SDK能做什么 221 7.1.3 如何获取DirectShow SDK 221 7.1.4 安装Direshow SDK 222 7.2 开发环境配置 224 7.2.1 生成DirectShow SDK开发库 224 7.2.2 Visual C++开发环境配置 229 7.2.3 常见问题解析集锦 232 7.3 DirectShow SDK基本架构 234 7.3.1 DirectShow SDK总体架构 234 7.3.2 DirectShow SDK简单应用程序案例 236 7.3.3 滤波器链表Filer Graph及各种组件 244 7.3.4 构建滤波器链表(Building Filer Graph) 252 7.3.5 滤波器链表中的数据流动Data Flow 257 7.3.6 DirectShow中的事件通知机制 261 7.3.7 常用DirectShow SDK接口 267 7.4 DirectShow SDK常用开发案例 267 7.4.1 通用开发流程 268 7.4.2 系统初始化 268 7.4.3 媒体播放方法 268 7.4.4 消息处理方法 270 7.4.5 视频采集技术 271 7.4.6 音频采集案例 282 7.5 本章小结 293 第8章 打造自己的媒体播放器 295 8.1 系统分析与设计 296 8.1.1 FilterGraph结构设计 297 8.1.2 GraphEdit模拟实现 297 8.1.3 界面设计 299 8.2 实现媒体控制类 307 8.2.1 CDXGraph类初始化 308 8.2.2 创建Graph滤波器链表 309 8.2.3 图像窗口设计 311 8.2.4 媒体播放控制 312 8.2.5 全屏显示及抓图存盘实现 315 8.3 实现一个简单的媒体播放器 317 8.4 升级你的播放器 321 8.4.1 添加控制功能 321 8.4.2 添加拖放功能 325 8.4.3 添加音量调节功能 326 8.4.4 添加欢迎背景图片 328 8.5 系统效果展示 328 8.6 如何播放更多的文件格式 329 8.7 本章小结 330 第9章 自制DV实现视频采集 331 9.1 系统分析与设计 332 9.1.1 采集设备的枚举 332 9.1.2 使用Capture Graph Builder 335 9.1.3 采集参数的设置 336 9.2 使用经典采集技术实现视频捕获 338 9.2.1 GraphEdit模拟实现 338 9.2.2 视频捕获类CCaptureClass的实现 340 9.2.3 界面设计 345 9.3 使用VMR技术实现视频图像捕获 350 9.3.1 VMR技术基础 350 9.3.2 GraphEdit模拟实现视频捕获预览 350 9.3.3 视频图像捕获类CVMR_Capture的实现 353 9.3.4 界面设计 361 9.4 系统效果演示 366 9.4.1 实例一 系统效果演示 367 9.4.2 实例二 系统效果演示 368 9.5 本章小结 369 第10章 VFW技术实现视频处理通用平台 371 10.1 VFW开发技术流程分析 372 10.1.1 技术概述 372 10.1.2 VFW采集开发流程图 373 10.2 使用VFW实现视频捕获和预览 373 10.2.1 建立单文档应用程序 373 10.2.2 创建视频窗口 375 10.2.3 设计回调函数 376 10.2.4 视频图像显示设置 378 10.2.5 捕获预览视频 379 10.2.6 配置视频格式及图像参数 381 10.3 使用系统插件实现视频编解码 382 10.3.1 使用系统视频编解码插件 383 10.3.2 视频编码码流写AVI文件 385 10.3.3 关闭平台 387 10.4 使用XviD CODEC算法实现视频编解码 388 10.4.1 生成XviD算法静态库(编译过程) 388 10.4.2 实现XviD CODEC视频编码算法函数 389 10.4.3 实现XviD CODEC视频解码算法函数 393 10.4.4 使用XviD CODEC编解码算法 395 10.5 平台应用效果展示 398 10.6 本章小结 399 第4篇 编解码技术 401 第11章 纵览音视频编解码技术 403 11.1 数字音视频基础 404 11.2 音视频编解码及方法 406 11.2.1 音频编码方法 406 11.2.2 视频编码方法 410 11.3 编解码技术标准 417 11.3.1 静态图像编码标准 418 11.3.2 MPEG-4/H.264视频算法 424 11.3.3 AVS国产视频编码标准 430 11.4 编解码产业及发展 431 11.4.1 编解码资源一览 431 11.4.2 编解码发展前景 432 11.5 本章小结 433 第12章 使用MMX/SSE 2进行多媒体编程 435 12.1 MMX/SSE 2技术基础 436 12.2 MMX/SSE 2指令剖析 439 12.2.1 MMX媒体扩展指令 439 12.2.2 MMX程序设计 444 12.2.3 SSE/SSE 2媒体扩展指令 455 12.2.4 SSE程序设计详细解析 457 12.3 使用MMX/SSE 2进行音视频开发 463 12.3.1 开发前技术准备 464 12.3.2 MMX/SSE 2视频编解码编程 465 12.3.3 使用VC调试MMX/SSE 2程序 470 12.4 MMX/SSE 2开发常见问题 472 12.4.1 制订计划 472 12.4.2 哪部分代码可使用MMX技术改进 473 12.4.3 代码是浮点型还是整型 473 12.4.4 EMMS准则 474 12.4.5 CPUID的检测MMX技术的用法 474 12.4.6 数据对齐 474 12.4.7 数据安排 475 12.4.8 应用程序最后的调整 476 12.5 本章小结 476 第13章 用DM642实现视频编解码技术 477 13.1 数字媒体处理器TMS320DM642DSP概述 478 13.2 DSP软件开发环境CCS 481 13.2.1 安装CCS 481 13.2.2 CCS主要部件 482 13.2.3 使用CCS优化工具实现算法优化 488 13.3 用C语言进行视频算法框架编程 492 13.3.1 C编程规则和参考 492 13.3.2 DSP关键字与CMD文件使用 493 13.3.3 算法系统资源剖析 495 13.4 DM642实现视频算法优化 497 13.4.1 并行算法指令和建立软件流水 497 13.4.2 使用intrinsic指令完成核心模块的优化 499 13.4.3 使用DSP线性汇编优化核心模块 500 13.4.4 使用Cache技术实现算法优化 507 13.4.5 使用乒乓式EDMA实现算法优化 508 13.5 DM642优化视频算法常见问题 513 13.6 本章小结 518 第14章 XviD CODEC实现MPEG-4编解码 519 14.1 MPEG-4编解码概述 520 14.1.1 基于对象的MPEG-4视频编码 520 14.1.2 XviD格式文件播放 520 14.2 XviD CODEC编解码分析 521 14.2.1 MPEG-4编解码设计与剖析 521 14.2.2 MMX/SSE 2实现XviD CODEC 549 14.2.3 DM642下XviD CODEC优化 553 14.3 运行XviD CODEC系统 559 14.3.1 YUV原始视频数据及其显示 559 14.3.2 VC平台下编译和运行XviD CODEC 559 14.3.3 CODEC在DSP下软仿真和硬仿真 562 14.4 系统效果展示 562 14.5 本章小结 563 第15章 X264实现H.264/AVC视频编码 565 15.1 H.264/AVC编码概要 566 15.1.1 开源代码工程管理软件 566 15.1.2 获取开源算法工程 566 15.1.3 H.264/AVC新特性 567 15.2 X264视频编码分析 568 15.2.1 H.264/AVC关键技术要点 569 15.2.2 X264视频编码设计与剖析 577 15.2.3 X264核心模块MMX/DSP汇编优化 599 15.3 运行X264编码系统 606 15.3.1 VC平台下编译和运行X264 606 15.3.2 JM验证X264码流 610 15.3.3 ffmpeg中的H.264视频解码 611 15.4 系统效果展示 611 15.4.1 X264实现H.264/AVC视频编码 611 15.4.2 ffmpeg-h264-vc工程实现H.264视频解码 612 15.5 本章小结 613 第16章 打造自己的DVR监控系统 615 16.1 DVR监控系统分析与设计 616 16.1.1 监控系统分类 616 16.1.2 监控系统组成 617 16.1.3 基于压缩板卡的SDK软件开发包 619 16.2 DVR监控系统主界面软件设计 621 16.2.1 对话框应用程序开发 621 16.2.2 位图按钮设计 622 16.3 模拟DVR视频采集 636 16.3.1 基于DirectShow的视频采集回放 636 16.3.2 基于DirectShow的影音文件回放 638 16.4 系统效果展示 643 16.5 本章小结 644 附录A 旧版VC升级到VC 2005程序安全的10点注意事项 645 附录B 开发常见问题 (附源码) 由于文件过大所以本文件采用分卷压缩的,需要安装好压,并下载完全部压缩分卷。共11个分卷。
24.0MB
Visual C++音频视频处理技术及工程实践(分卷5)
2011-03-08本书共16章,分为4篇,详细讲解了使用各种软件和平台进行音、视频多媒体编程的技术,以案例为对象展示实现过程、分析技术难点。主要内容包括软件Visual C++2005的开发技术、DirectSound开发音频、DirectShow/VFW开发视频、MMX/SSE进行多媒体汇编编程、DM642 DSP进行音视频算法优化和主流视频算法MPEG-4/H.264的编码原理及工程实践。本书系统地介绍Visual C++ 2005进行流媒体编程的基本思路和方法,采用案例为主的叙述方式,将大量的技术理论融入具体的案例剖析中。采用的案例均来源于作者实际开发工作,具有很好的实用价值,可以帮助读者在开发中进行参考或直接应用。 第1篇 开发基础 1 第1章 数字音视频开发技术基础 3 1.1 数字音视频基本概念 4 1.1.1 数字音频技术基础 4 1.1.2 各种数字音频文件格式基础 4 1.1.3 视频的相关基础概念 8 1.1.4 常见的视频文件格式 8 1.2 数字音视频数据的编解码技术 10 1.2.1 音频数据的编解码 11 1.2.2 视频数据的编解码 13 1.2.3 音视频编码的相关标准 13 1.3 音视频处理平台的选择 15 1.3.1 个人多媒体计算机 15 1.3.2 嵌入式处理器ARM 16 1.3.3 数字媒体处理器DSP 16 1.4 音视频开发的典型应用 16 1.4.1 个人消费类电子产品 16 1.4.2 公共领域的音视频应用 18 1.5 常用音视频开发工具 21 1.5.1 DirectSound音频开发 21 1.5.2 DirectShow视频开发 21 1.5.3 DSP CCS算法开发 22 1.6 本章小结 23 第2章 Visual C++ 2005开发基础 25 2.1 Visual C++ 2005新增特性 26 2.1.1 句柄(Handles) 26 2.1.2 类型的声明 26 2.1.3 对代码编辑的改进 27 2.2 VC能做的事情 27 2.2.1 生成传统的控制台应用程序 27 2.2.2 生成基于MFC的应用程序 32 2.2.3 生成静态链接库 40 2.2.4 生成动态链接库 41 2.3 利用向导完成基本开发 46 2.3.1 生成应用程序 46 2.3.2 生成应用库LIB/DLL 53 2.4 MFC编程基础 56 2.4.1 Windows消息与事件 56 2.4.2 消息与事件的响应 63 2.4.3 常用消息 66 2.5 基于对话框的编程 68 2.5.1 创建和编辑对话框 68 2.5.2 对话框种类 75 2.6 常用控件使用技巧 79 2.6.1 按钮类控件的使用 80 2.6.2 文本可编辑类控件的使用 81 2.6.3 静态类控件的使用 82 2.6.4 其他控件 83 2.7 Visual 2005开发技术资源 84 2.7.1 MSDN在线帮助 84 2.7.2 丰富的网络资源 86 2.8 Visual 2005开发的常见问题 86 2.8.1 如何使用volatile和const_cast 86 2.8.2 如何构造unicode版本的程序 87 2.8.3 如何使用.def文件 87 2.8.4 如何正确编写Win32 DLL 87 2.8.5 如何编写和使用资源DLL 88 2.8.6 如何实现对话框的数据交换 88 2.9 本章小结 89 第2篇 音频开发 91 第3章 DirectSound开发基础 93 3.1 Microsoft DirectSound SDK 94 3.1.1 比较DirectSound与DirectMusic 94 3.1.2 DirectSound SDK能做什么 95 3.1.3 如何获取DirectSound SDK 96 3.1.4 DirectSound SDK的基本结构 98 3.1.5 Directsound SDK安装 100 3.1.6 选择最适合用户的DirectSound SDK 100 3.1.7 用DirectSound进行编程的必要步骤 102 3.2 DirectSound的详细使用方法 103 3.2.1 DirectSound设备对象 104 3.2.2 DirectSound缓冲区对象 107 3.2.3 使用WAV数据 114 3.2.4 使用音效 116 3.3 开发环境配置 118 3.3.1 Visual C++基本开发环境配置 119 3.3.2 DirectSound应用程序的开发环境配置 119 3.3.3 DirectSound Filter开发环境配置 121 3.4 调试音频处理程序 125 3.4.1 Visual C++调试器 125 3.4.2 DirectSound中常用的调试技术 128 3.5 DirectSound开发的常见问题 130 3.6 本章小结 131 第4章 打造自己的音频播放器 133 4.1 系统设计和分析 134 4.2 缓冲区和通知基础 135 4.2.1 缓冲区的概念 135 4.2.2 缓冲区的通知 136 4.3 播放文件 137 4.3.1 创建DirectSound对象 137 4.3.2 创建播放缓冲区 138 4.3.3 调用方法播放声音 145 4.3.4 结束播放 146 4.4 系统效果演示 146 4.4.1 新建基于对话框的程序框架 147 4.4.2 添加控件及变量 147 4.4.3 封装CDirectSound类实现DirectSound声音播放 148 4.4.4 与对话框界面相关操作实现 156 4.4.5 程序运行结果 159 4.5 DirectSound开发常见问题 160 4.6 本章小结 161 第5章 语音3D特效器制作 163 5.1 系统设计和分析 164 5.2 DirectSound 3D缓冲区 164 5.2.1 获取3D缓冲区对象 165 5.2.2 最大距离和最小距离 166 5.2.3 处理模式 167 5.2.4 声音圆锥 167 5.3 DirectSound 3D虚拟听众 168 5.3.1 获得3D听众 168 5.3.2 听众的空间参数 169 5.3.3 距离因子与Doppler效应 171 5.3.4 滚降因子与延迟设置 173 5.4 系统效果演示 174 5.4.1 具体的实现步骤 174 5.4.2 程序的实现代码 176 5.4.3 程序运行结果 186 5.5 DirectSound 3D开发常见问题 187 5.6 本章小结 188 第6章 对拾音设备录制自己的语音文件 189 6.1 系统分析和设计 190 6.2 管理捕获缓冲区 191 6.2.1 创建捕获缓冲区 191 6.2.2 启动缓冲区 197 6.2.3 封锁缓冲区 197 6.2.4 解锁缓冲区 198 6.2.5 中止捕获 199 6.3 系统效果演示 199 6.3.1 声音类的封装 199 6.3.2 声音管理函数的实现 202 6.3.3 程序运行结果 214 6.4 DirectSound录制语音文件开发常见问题 215 6.5 本章小结 216 第3篇 视频开发 217 第7章 DirectShow开发基础 219 7.1 Microsoft DirectShow SDK 220 7.1.1 DirectX及成员组成 220 7.1.2 DirectShow SDK能做什么 221 7.1.3 如何获取DirectShow SDK 221 7.1.4 安装Direshow SDK 222 7.2 开发环境配置 224 7.2.1 生成DirectShow SDK开发库 224 7.2.2 Visual C++开发环境配置 229 7.2.3 常见问题解析集锦 232 7.3 DirectShow SDK基本架构 234 7.3.1 DirectShow SDK总体架构 234 7.3.2 DirectShow SDK简单应用程序案例 236 7.3.3 滤波器链表Filer Graph及各种组件 244 7.3.4 构建滤波器链表(Building Filer Graph) 252 7.3.5 滤波器链表中的数据流动Data Flow 257 7.3.6 DirectShow中的事件通知机制 261 7.3.7 常用DirectShow SDK接口 267 7.4 DirectShow SDK常用开发案例 267 7.4.1 通用开发流程 268 7.4.2 系统初始化 268 7.4.3 媒体播放方法 268 7.4.4 消息处理方法 270 7.4.5 视频采集技术 271 7.4.6 音频采集案例 282 7.5 本章小结 293 第8章 打造自己的媒体播放器 295 8.1 系统分析与设计 296 8.1.1 FilterGraph结构设计 297 8.1.2 GraphEdit模拟实现 297 8.1.3 界面设计 299 8.2 实现媒体控制类 307 8.2.1 CDXGraph类初始化 308 8.2.2 创建Graph滤波器链表 309 8.2.3 图像窗口设计 311 8.2.4 媒体播放控制 312 8.2.5 全屏显示及抓图存盘实现 315 8.3 实现一个简单的媒体播放器 317 8.4 升级你的播放器 321 8.4.1 添加控制功能 321 8.4.2 添加拖放功能 325 8.4.3 添加音量调节功能 326 8.4.4 添加欢迎背景图片 328 8.5 系统效果展示 328 8.6 如何播放更多的文件格式 329 8.7 本章小结 330 第9章 自制DV实现视频采集 331 9.1 系统分析与设计 332 9.1.1 采集设备的枚举 332 9.1.2 使用Capture Graph Builder 335 9.1.3 采集参数的设置 336 9.2 使用经典采集技术实现视频捕获 338 9.2.1 GraphEdit模拟实现 338 9.2.2 视频捕获类CCaptureClass的实现 340 9.2.3 界面设计 345 9.3 使用VMR技术实现视频图像捕获 350 9.3.1 VMR技术基础 350 9.3.2 GraphEdit模拟实现视频捕获预览 350 9.3.3 视频图像捕获类CVMR_Capture的实现 353 9.3.4 界面设计 361 9.4 系统效果演示 366 9.4.1 实例一 系统效果演示 367 9.4.2 实例二 系统效果演示 368 9.5 本章小结 369 第10章 VFW技术实现视频处理通用平台 371 10.1 VFW开发技术流程分析 372 10.1.1 技术概述 372 10.1.2 VFW采集开发流程图 373 10.2 使用VFW实现视频捕获和预览 373 10.2.1 建立单文档应用程序 373 10.2.2 创建视频窗口 375 10.2.3 设计回调函数 376 10.2.4 视频图像显示设置 378 10.2.5 捕获预览视频 379 10.2.6 配置视频格式及图像参数 381 10.3 使用系统插件实现视频编解码 382 10.3.1 使用系统视频编解码插件 383 10.3.2 视频编码码流写AVI文件 385 10.3.3 关闭平台 387 10.4 使用XviD CODEC算法实现视频编解码 388 10.4.1 生成XviD算法静态库(编译过程) 388 10.4.2 实现XviD CODEC视频编码算法函数 389 10.4.3 实现XviD CODEC视频解码算法函数 393 10.4.4 使用XviD CODEC编解码算法 395 10.5 平台应用效果展示 398 10.6 本章小结 399 第4篇 编解码技术 401 第11章 纵览音视频编解码技术 403 11.1 数字音视频基础 404 11.2 音视频编解码及方法 406 11.2.1 音频编码方法 406 11.2.2 视频编码方法 410 11.3 编解码技术标准 417 11.3.1 静态图像编码标准 418 11.3.2 MPEG-4/H.264视频算法 424 11.3.3 AVS国产视频编码标准 430 11.4 编解码产业及发展 431 11.4.1 编解码资源一览 431 11.4.2 编解码发展前景 432 11.5 本章小结 433 第12章 使用MMX/SSE 2进行多媒体编程 435 12.1 MMX/SSE 2技术基础 436 12.2 MMX/SSE 2指令剖析 439 12.2.1 MMX媒体扩展指令 439 12.2.2 MMX程序设计 444 12.2.3 SSE/SSE 2媒体扩展指令 455 12.2.4 SSE程序设计详细解析 457 12.3 使用MMX/SSE 2进行音视频开发 463 12.3.1 开发前技术准备 464 12.3.2 MMX/SSE 2视频编解码编程 465 12.3.3 使用VC调试MMX/SSE 2程序 470 12.4 MMX/SSE 2开发常见问题 472 12.4.1 制订计划 472 12.4.2 哪部分代码可使用MMX技术改进 473 12.4.3 代码是浮点型还是整型 473 12.4.4 EMMS准则 474 12.4.5 CPUID的检测MMX技术的用法 474 12.4.6 数据对齐 474 12.4.7 数据安排 475 12.4.8 应用程序最后的调整 476 12.5 本章小结 476 第13章 用DM642实现视频编解码技术 477 13.1 数字媒体处理器TMS320DM642DSP概述 478 13.2 DSP软件开发环境CCS 481 13.2.1 安装CCS 481 13.2.2 CCS主要部件 482 13.2.3 使用CCS优化工具实现算法优化 488 13.3 用C语言进行视频算法框架编程 492 13.3.1 C编程规则和参考 492 13.3.2 DSP关键字与CMD文件使用 493 13.3.3 算法系统资源剖析 495 13.4 DM642实现视频算法优化 497 13.4.1 并行算法指令和建立软件流水 497 13.4.2 使用intrinsic指令完成核心模块的优化 499 13.4.3 使用DSP线性汇编优化核心模块 500 13.4.4 使用Cache技术实现算法优化 507 13.4.5 使用乒乓式EDMA实现算法优化 508 13.5 DM642优化视频算法常见问题 513 13.6 本章小结 518 第14章 XviD CODEC实现MPEG-4编解码 519 14.1 MPEG-4编解码概述 520 14.1.1 基于对象的MPEG-4视频编码 520 14.1.2 XviD格式文件播放 520 14.2 XviD CODEC编解码分析 521 14.2.1 MPEG-4编解码设计与剖析 521 14.2.2 MMX/SSE 2实现XviD CODEC 549 14.2.3 DM642下XviD CODEC优化 553 14.3 运行XviD CODEC系统 559 14.3.1 YUV原始视频数据及其显示 559 14.3.2 VC平台下编译和运行XviD CODEC 559 14.3.3 CODEC在DSP下软仿真和硬仿真 562 14.4 系统效果展示 562 14.5 本章小结 563 第15章 X264实现H.264/AVC视频编码 565 15.1 H.264/AVC编码概要 566 15.1.1 开源代码工程管理软件 566 15.1.2 获取开源算法工程 566 15.1.3 H.264/AVC新特性 567 15.2 X264视频编码分析 568 15.2.1 H.264/AVC关键技术要点 569 15.2.2 X264视频编码设计与剖析 577 15.2.3 X264核心模块MMX/DSP汇编优化 599 15.3 运行X264编码系统 606 15.3.1 VC平台下编译和运行X264 606 15.3.2 JM验证X264码流 610 15.3.3 ffmpeg中的H.264视频解码 611 15.4 系统效果展示 611 15.4.1 X264实现H.264/AVC视频编码 611 15.4.2 ffmpeg-h264-vc工程实现H.264视频解码 612 15.5 本章小结 613 第16章 打造自己的DVR监控系统 615 16.1 DVR监控系统分析与设计 616 16.1.1 监控系统分类 616 16.1.2 监控系统组成 617 16.1.3 基于压缩板卡的SDK软件开发包 619 16.2 DVR监控系统主界面软件设计 621 16.2.1 对话框应用程序开发 621 16.2.2 位图按钮设计 622 16.3 模拟DVR视频采集 636 16.3.1 基于DirectShow的视频采集回放 636 16.3.2 基于DirectShow的影音文件回放 638 16.4 系统效果展示 643 16.5 本章小结 644 附录A 旧版VC升级到VC 2005程序安全的10点注意事项 645 附录B 开发常见问题 (附源码) 由于文件过大所以本文件采用分卷压缩的,需要安装好压,并下载完全部压缩分卷。共12个分卷。
-
下载
【医药ERP管理系统】药品销售管理系统+医药产品进销存系统源码.zip
【医药ERP管理系统】药品销售管理系统+医药产品进销存系统源码.zip
-
下载
资金流入(回款)预算表.doc
资金流入(回款)预算表.doc
-
下载
中国都市圈发展报告2019(城镇化白皮书5.0)-戴德梁行-2020.01-56页.pdf
中国都市圈发展报告2019(城镇化白皮书5.0)-戴德梁行-2020.01-56页.pdf
-
下载
分别提取图片YUV分量 python代码
分别提取图片YUV分量 python代码
-
下载
基于OpenCV的图像锐化 C代码
基于OpenCV的图像锐化 C代码
-
下载
中国B2B营销数字化展望洞察报告-领英-202003.pdf
中国B2B营销数字化展望洞察报告-领英-202003.pdf
-
下载
丹麦新冠肺炎疫情历史总数据下载.csv
丹麦新冠肺炎疫情历史总数据下载.csv
-
下载
隐藏进程 win10测试可用
隐藏进程 win10测试可用
-
下载
职业生涯管理(CM)---主管对下属评估表.doc
职业生涯管理(CM)---主管对下属评估表.doc
-
下载
基层社会治理创新平台建设方案.pptx
基层社会治理创新平台建设方案.pptx
