x265 整理 -vs2008

来源:互联网 发布:高清网络硬盘播放器 编辑:程序博客网 时间:2024/06/05 09:59

由于近期需要给x265编写API,需用VS2008多其做一个整理。


以下是在 x86  vs08下完成,做参考

现做一个大小问题的整理

1、用现有x265项目编译

yasm cmake是必装的。

根据平台和系统点build文件下面的make-solution.bat就行了。

很明显,会生成一堆用yasm编译完成的lib文件和 \Release  \Debug下的 一堆库文件。 之后的vs项目就就是完全这些库文件。


  网上有比较详细的关于原始项目使用的方法

http://blog.csdn.net/yangxiao_xiang/article/details/17101129


2、source文件夹下面的CMakeList.txt 包含了vs下需要的预编译宏和yasm需要的部分预编译宏

\source\Cmake\CMakeASM_YASMInformation.cmake 则包含了yasm需要的宏。

这两个文件在编译的时候需要参考


3、准备工作:

给vs配置yasm,05和08的一样,就是把yasm.exe丢到bin里面, yasm.rule丢到VCProjectDefaults里面

vs2010略有不一样,三个文件是丢到C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations 里面

具体可以参考http://yasm.tortall.net/Download.html 里面的下载说明。


配置好yasm,加入汇编文件的时候就会提示选择规则了。选yasm就行。

或者在加入后 右键项目,自定义项目规则。


4、开始

新建vs08项目,把各种source里的文件都放进去,除了test文件夹是没用的。

根据路径修改 #include  里包含文件的路径。

另外:项目里有两个loopfilter  .asm .cpp 生成obj文件的时候会相互覆盖。改一个名字即可。


项目属性在加入asm文件后会出现yasm assembler 

命令行  对win32 建议为:

yasm -DHAVE_ALIGNED_STACK=0 -DARCH_X86_64=0  -DHIGH_BIT_DEPTH=0 -DBIT_DEPTH=8  

-f win32 -O2 -DPREFIX  -o $(IntDir)\$(InputName).obj $(InputPath)


属性页中可能需要部分宏:

http://msdn.microsoft.com/zh-cn/library/c02as0cs.aspx

网上给的大多属于过期了。


      -D后面的宏还是需要根据具体平台修改,参考之前给的两个CMake相关的文件。

C++编译器预编译宏也可以加入ENABLE_ASSEMBLY;X265_ARCH_X86=1;_CRT_SECURE_NO_WARNINGS;HIGH_BIT_DEPTH=0; 同样参考平台。原来x265项目的属性里同样有这些预编译宏,可参考。

也可自己写一个config.h

2010的yasm配置,看似用选项代替命令行,但总觉得不是太直观。但我这还是有点问题,没解决。


以上应该就能正常跑了


5、编码的流程

         

6、

编码结果,可以用Elecard HEVC Analyzer 直接看,或者用vim 、UE 看数据

附vim 看16进制数据:

vim -b file-to-open.dat

然后用xxd把文件转换成十六进制格

:%!xxd


完工后大概就这么个结构:


另附下载:

http://download.csdn.net/detail/u014713819/7690025


API未放进去,main 自己打开。


0 0
原创粉丝点击