概述:

感谢https://github.com/sunqueen/vlc-2.2.1.32-2013

这个工程,我的工作基本上都是基于它,我只是觉得他的工程设置不够清晰,重新做了一次。
区别在于我的工程集中在win32prj文件夹中,config.h,和源码。方便用文本比较工具找出区别,便于VLC下一次更新。
我没有提供大而全的工程,很多插件我不打算编译。sunqueen在处理汇编部分时将原工程代码用mingw编译成了第三方库,提供给VC调用,并且将原代码删除。这个方法很巧妙,另我耳目一新,但也造成源码的大幅度改动。维护难度加大,或许对需要这些插件的朋友很有用,但我用不着,所以我无需引入这些改动,尽可能最小的改动。
我的目的是一个安防行业播放器,live555->avcodec->swscale->directdraw.能截图,录像保存,能够处理mp4,TS流。如果后续需要再引入OpenGL,其他解码库。VLC的插件方式不仅精简了发布体积,也方便后续扩展。

工程结构概述:
工程分为compat、libvlccore、libvlc、plugins
compat为基础,提供平台无关的库,libvlccore、libvlc均依赖于它。libvlc同时依赖libvlccore
plugins依赖compat

所有的工程都包含一个共同的头文件:config.h,用VS2015编译VLC需要建立很多个项目,为了这些项目有一个统一的配置,大部分设置都写在config.h里面。比如一些define,就不需要每个工程都写了。坏处也是有的,改了其中一项,所有工程都要重新编译。

config.h是工程的关键文件。每一项都要仔细检查,虽然注释里说如果要define某项设置要将其define 1,但绝大多数只要define一下就行了,因为程序里判断是靠#if def。

vlc官方win32版都是推荐mingw编译的,因此有需要修改代码的地方,这里一一列出种类

1、汇编
libvlccore中有CPU相关的函数,获取CPU能力集保存到上下文中,为以后的函数调用提供依据,GNU的汇编和INTEL的格式不同,好在新版的VS提供了CPUID函数,但一些plugin里面有汇编代码,主要集中在色彩转换上,
为此我避开了这些代码,用swscale来实现色彩转换,因为其也是用汇编实现,通用性更好

2、mingw自带函数而vs没有,如gettimeofday,opendir,虽然compat项目本身就为了消除平台相关性,但这部分还得修改。为了让VS2015能用上这些函数,我从mingw-w64-crt文件夹里拷贝了源文件。

3、VS不支持变量描述的数组,如int array[t],如果t是变量将报错,sunqueen的修改很细心,也很优雅。

4、VS同一个工程中如果遇到两个同名源文件(文件夹不同),编译目录产生的ojb名也是相同的,后面产生的obj将会覆盖前面的。导致链接失败,这部分的修改主要靠逐个修改VS工程设置,指定obj名称,以避免被覆盖。

5、命令#warning xxxxx改为#pragma message("warning:xxxxx")

附上下载链接。第三方库都在里面。实在不能理解csdn的上传机制。

http://pan.baidu.com/s/1i58p8B7

----------------------------------------------------------------------------------------------

转帖地址:http://blog.csdn.net/wanruirui/article/details/48395975

==================================================================

在此也感谢一下vlc源码提供者git地址:https://github.com/sunqueen

转载于:https://www.cnblogs.com/wainiwann/p/7513810.html

VS2015编译VLC2.2.1(under WIN7-64)转相关推荐

  1. VS2015编译VLC2.2.1(under WIN7-64)

    本文来自CSDN,版权为CSDN所属,请360DOC他妈的不要转载,转载了还不能复制,去你大爷的. 概述: 感谢https://github.com/sunqueen/vlc-2.2.1.32-201 ...

  2. 编译并使用boost库(win7+boost1.63+vs2015+32位or 64位)

    博客 学院 下载 GitChat 论坛 问答 商城 VIP 活动 招聘 ITeye 码云 CSTO 写博客 发Chat 编译并使用boost库(win7+boost1.63+vs2015+32位or ...

  3. win7 64 sp1 vs2015 vs2017 ie10 ie11安装之旅

    2021/6/12 前几感觉系统变慢,使用原来的ghost 备份从做了系统,没想到再安装vs2015 时遇到了问题,系统版本 win7 64 sp1 ,一开始用原来下载的vs2015 光盘安装文件,就 ...

  4. vs2015编译linux源码,使用Visual Studio 2017(VS2017)编译OpenCC 1.0.4 (Open Chinese Convert)源代码...

    摘要:本文介绍了Win7 64位环境下OpenCC(Open Chinese Convert) 1.0.4源码编译全过程,除VS2017外,VS2013以上版本也应该基本同样适用,其他版本的Windo ...

  5. C#访问Access和Win7 64位下可能遇到的 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0” 提供程序 问题

    新建一个access数据库和表:录入几条数据:下面工具可在网上下: ac1.cs: using System; using System.Collections.Generic; using Syst ...

  6. win7 php 5.3,win7 64位 WAMP环境下(PHP5.3) redis扩展无法生效

    将正确的redis.dll(for php5.3 + apache)放入到ext目录下 在php.ini里边添加redis扩展. 但是打印出phpinfo 还是没有redis 无论如何都尝试不成功 w ...

  7. Windows下 VS2015编译boost1.62

    VS2015编译boost1.62 Boost库是一个可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一. Boost库由C++标准委员会库工作组成员发起,其中有些内容有 ...

  8. Win7 64位系统,使用(IME)模式VS2010 编写 和 安装 输入法 教程(1)

    原文:Win7 64位系统,使用(IME)模式VS2010 编写 和 安装 输入法 教程(1) 首先感谢: http://blog.csdn.net/shuilan0066/article/detai ...

  9. android+ndk+r9+x64下载,Win7 64位中文旗舰版上Cocos2d-x 3.0的Android开发调试环境架设

    系统环境: Win7 64位中文旗舰版 各组件的版本: VS2012 Python2.7.6 x86 安装步骤: 1.默认安装VS2012 2.默认安装Python 2.7.6,修改环境变量Path ...

最新文章

  1. 河北省重大系统征集系统案例分析
  2. 猫头鹰的深夜翻译:API网关的重要性
  3. 一不小心就让Java开发者踩坑的fail-fast是个什么鬼?
  4. 11张信用卡20多万全部逾期还不上,每天电话追债,怎么办?
  5. 计算机科学与技术的专业论述,关于计算机科学专业的论文题目 计算机科学专业论文题目怎样定...
  6. 热敏打印机原理java_java - 使用TSC TTP-342E Pro热敏打印机Java打印 - 堆栈内存溢出...
  7. wifi协议_图解 802.11wifi协议
  8. [转载] Python 学习笔记 迭代器和生成器
  9. 人工智能面试题86问,新手找工作必备!
  10. 【BZOJ2407/4398】探险/福慧双修 最短路建模
  11. 数据浪潮之间的前端工程师
  12. 如何把R加到环境变量 Linux,如何设置R的环境变量以在RedHat Linux(RHEL6)上的Tomcat中使用...
  13. Pyqt Model/view框架 3.可编辑项
  14. Win7 Hotfix KB2685811 (64-bit)疑难杂症状之解药
  15. ansoft maxwell破解版下载v16 中文版 32bit 64bit 百度云盘分享下载链接目录点击下方链接下载即可获得
  16. Mongodb入门到精通---> 保姆级别教程
  17. kernal tch 下载 天正_tch_kernal.arx
  18. 百度有啊创始团队写博客 自曝高层动荡内幕
  19. 如何用Java打开PDF文件
  20. Pale Transformer: A General Vision Transformer Backbone with Pale-Shaped Attention

热门文章

  1. 夜间旅游市场发展的六大特点
  2. C语言:实验3-6 计算个人所得税.2021-07-19
  3. vue可视化大屏教程
  4. 关于c语言中的转义字符
  5. 传智播客JavaEE 第168期就业班视频教程 Java自学课程
  6. JCG无线路由器家长控制宽带
  7. Android:设计一个简单的调查问卷
  8. <Linux开发>驱动开发 -之-基于pinctrl/gpio子系统的LED驱动
  9. php 多个图片合并为一张
  10. 1173 -- 兰州烧饼