设为首页 加入收藏

TOP

14.3.2 VC平台下编译和运行XviD CODEC
2013-10-07 00:41:55 来源: 作者: 【 】 浏览:77
Tags:14.3.2 台下 编译 运行 XviD CODEC

14.3.2  VC平台下编译和运行XviD CODEC

由于xvidcore-1.0.0工程是VC 6.0平台,所以在使用VC 2005时,需要进行工程转换及修改各种格式错误。xvidcore方案中有4个项目:libxvidcore是XviD CODEC,xvid_bench是CODEC部分模块的检查程序,xvid_decraw是MPEG-4视频解码,xvid_encraw是MPEG-4视频编码。使用VC++(www.cppentry.com) 2005运行XviD的过程如下。

 启动VC++(www.cppentry.com) 2005开发环境。

 双击xvidcore-1.0.0\build\win32\目录下的xvidcore.dsw,则VC++(www.cppentry.com) 2005提示如图14-12所示的画面:VC 6.0项目转换为VC 2005。

 
图14-12  VC 6.0项目转换为VC 2005

 单击图14-12中的"全是"按钮,把旧版的VC工程转换为VC++(www.cppentry.com) 2005的项目。转换完成的xvidcore项目如图14-13所示。

 选择图14-13中的"xvid_encraw"选项并单击鼠标右键,在弹出的快捷菜单中选择"设为启动项目"命令。

 
(点击查看大图)图14-13  VC++(www.cppentry.com) 2005开发环境

 生成xvid_encraw。项目xvid_encraw依赖于libxvidcore库,所以要编译生成xvid_encraw,则首先生成libxvidcore。可能出现的问题及解决办法如下。

项目libxvidcore产生多个"_CRT_SECURE_NO_DEPRECATE"警告。我们可以通过配置"属性→C/C++(www.cppentry.com)→预处理器/预处理器定义",来产生_CRT_SECURE_NO_ DEPRECATE。

如果error C2632"int"后面的"int"非法,则可以通过文件portab.h屏蔽代码:

//#    define intptr_t int32_t

如果出现nasm: error: no input file specified,则出错文件为\xvidcore-1.0.0\src\image\ x86_asm\colorspace_yuyv_mmx.asm。

这是因为旧版的VC在转换为VC++(www.cppentry.com) 2005时,汇编文件的编译选项在转换过程中增加了双引号。我们可以通过更改出错文件colorspace_yuyv_mmx.asm的编译选项,选择该文件并单击鼠标右键,菜单"属性/自定义生成步骤/常规",删除命令行中的双引号"""。

在清理解决方案时,会出现"vc80.idb正在被使用"而无法删除的信息。即使关闭VC 2005,该文件还是不能删除。这时候我们通过"工具→选项→项目和解决方案→生成并运行"→"最大并行项目执行数"命令将其修改为1即可。

 为编码器控制台应用程序添加命令行参数。用鼠标右键单击xvid_encraw项目,按照路径"属性→配置属性→调试",输入命令参数-asm -i e:\\yuv\\foreman.cif -o e:\\bitmp4\\foreman_enc.mp4 -type 0 -w 352 -h 288 -frames 300 -max_key_interval 100 -quality 2 -single -bitrate 300。

参数的意义见表14-2编码器参数说明。

表14-2  编码器参数说明

名称< xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

描述

-asm

 

是否使用平台CPU的汇编指令

-stats

 

输出重建图像YUVPSNR

-i

e:\\yuv\\foreman.cif

输入的YUV视频文件

-o

e:\\bitmp4\\foreman_enc.mp4

输出的MPEG-4码流文件

-type

0

视频类型0=I420

-w

352

视频图像宽度

-h

288

视频图像高度

-frames

300

要编码的视频帧数

-max_key_interval

100

I帧最大间隔

-quality

2

编码图像质量,如1/2像素

MCADSPME

-single

 

使用码流控制

-bitrate

300

码流大小,单位为Kbps

 为解码器控制台应用程序添加命令行参数。用鼠标右键单击xvid_decraw项目,按照路径"属性→配置属性→调试"输入命令参数-asm -i e:\\bitmp4\\foreman_enc.mp4 -o e:\\bitmp4\\foreman_dec.yuv。参数的意义如表14-3所示。

表14-3  解码器参数说明

名称

描述

-asm

 

是否使用平台CPU的汇编指令

-i

e:\\bitmp4\\foreman_enc.mp4

MPEG-4码流文件

-o

e:\\bitmp4\\foreman_dec.yuv

解码后的YUV文件

【责任编辑:云霞 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇14.2.2 MMX/SSE 2实现XviD CODEC.. 下一篇14.2.3 DM642下XviD CODEC优化(2..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: