由于XVID采用VFW是可安装型驱动程序,因此它是核心态工作的动态连接库。每个可安装型驱动程序需要输出DriverProc函数。这个函数接收来自操作系统的各种设备驱动消息,根据设备驱动消息不同,对设备执行不同的操作或向应用程序提供需要的信息。系统发送给DriverProc函数的主要消息如下:
DRV_CLOSE 当驱动程序实例被关闭时,发送此消息。
DRV_OPEN 打开VFW驱动程序。
下面就是跟压缩和解压有关的消息:
ICM_ABOUT
ICM_COMPRESS
ICM_COMPRESS_BEGIN
ICM_COMPRESS_END
ICM_COMPRESS_FRAMES_INFO
ICM_COMPRESS_GET_FORMAT
ICM_COMPRESS_GET_SIZE
ICM_COMPRESS_QUERY
ICM_CONFIGURE
ICM_DECOMPRESS
ICM_DECOMPRESS_BEGIN
ICM_DECOMPRESS_END
ICM_DECOMPRESS_GET_FORMAT
ICM_DECOMPRESS_GET_PALETTE
ICM_DECOMPRESS_QUERY
ICM_DECOMPRESS_SET_PALETTE
ICM_DECOMPRESSEX
ICM_DECOMPRESSEX_BEGIN
ICM_DECOMPRESSEX_END
ICM_DECOMPRESSEX_QUERY
ICM_GET
ICM_GETBUFFERSWANTED
ICM_GETDEFAULTKEYFRAMERATE
ICM_GETDEFAULTQUALITY
ICM_GETINFO
ICM_GETQUALITY
ICM_GETSTATE
ICM_SET_STATUS_PROC
ICM_SETQUALITY
ICM_SETSTATE
VFW处理程序,就是实现这些消息的响应,然后调用XVID的接口。
在VFW里的流程是这样的:
开始接收到DRV_OPEN消息,创建XVID的CODEC的对象,然后就接收到与输入要压缩数据的格式、大小等等消息,还有输出的格式、大小。
接着下来就会收到压缩开始消息ICM_COMPRESS_BEGIN,在这个消息里需要调用XVID压缩相关的函数,进行压缩初始化工作。
然后不断地接收到ICM_COMPRESS消息,每帧数据都发送这条消息过来,然后就调用XVID的压缩函数进行压缩每帧数据。
最后,没有数据压缩,就会发送ICM_COMPRESS_END消息,这时就需要删除所有创建对象,并调用XVID的函数来清除XVID使用的对象。
当用电视卡录下世界杯的AVI文件时,就可以通过调用VFW的驱动程序来压缩数据了。一般每秒钟都有25帧,每秒钟的视频就需要发送25条ICM_COMPRESS消息。
VFW驱动程序里,还有一部份内容是读取和保存XVID的配置参数。可以根据用户设置参数保存起来,方便用户,不用每次都需要配置一次参数。
分享到:
相关推荐
世纪葵花世界杯优惠大酬宾 为庆祝2002世界杯;庆祝中国对出线;答谢广大球迷。在5月22日-7月1日期间,北京世纪葵花公司推出优惠大酬宾活动,活动期间:葵花公司所有产品一律让利销售!机不可失,失不再来!...
一款高性能软编码直播软件。她采用软压缩方式进行音视频编码,能够做到在普通P4的PC机上单机4路音视频同步编码、直播、录制服务,利用她可轻松实现在局域网、城域网或者广域网中提供...世界杯的时候哈经测试没有问题
一款高性能软编码直播软件。她采用软压缩方式进行音视频编码,能够做到在普通P4的PC机上单机4路音视频同步编码、直播、录制服务,利用她可轻松实现在局域网、城域网或者广域网中提供...世界杯的时候哈经测试没有问题
足球资讯网站源码可应用于世界杯新闻资讯、足球、体育赛事、美女图片等图片、文字、视频、音频类型的网站建设,搜索引擎排名效果好,承载数据量大,承载访问量大,安全性高,功能和模板可通过插件形式扩展。...
足球资讯网站源码可应用于世界杯新闻资讯、足球、体育赛事、美女图片等图片、文字、视频、音频类型的网站建设,搜索引擎排名效果好,承载数据量大,承载访问量大,安全性高,功能和模板可通过插件形式扩展。...
中文名: Premiere Pro1.5入门与实战 作者: 朱长利 资源格式: PDF 版本: 扫描版 出版社: 电子工业出版社书号: 7121019574发行时间: 2006年01月 地区: 大陆 语言: 简体中文 ...第3章 炫耀的特效与案例实战
DPL:Borland Delph 3压缩库 DRV:驱动程序 DRW:Micrografx Designer/Draw;Pro/E绘画文件 DSF:Micrografx Designer VFX文件 DSG:DOOM保存的文件 DSM:Dynamic Studio音乐模块(MOD)文件 DSP:Microsoft ...