概述:

感谢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. oracle10g索引不生效,oracle 10g分区表索引失效测试
  2. 阿里1688直播推荐算法实践
  3. 安装了libevent和memcached之后却发现在执行的时候出现了 error while loading shared libraries问题...
  4. 远震波形射线计算的局限性
  5. Segment Routing — SR-MPLS
  6. ACM-ICPC 2018 沈阳赛区网络预赛 Spare Tire(容斥+公式推)
  7. 点到直线的投影公式_2021高考复习资料:高中数学必备公式与知识点汇总
  8. java泛型中的标记,Java泛型中的标记符含义
  9. AUTOSAR从入门到精通100讲(十五)-AURIX TC3xx MCAL中Link文件解析以及代码变量定位方法详解
  10. 基于jsp+mysql+mybatis+Spring boot简单学生成绩信息管理系统
  11. 发送接收图片_国际空间站将在8月4-5号发送SSTV图片,普通对讲机可接收
  12. viewport就是这回事
  13. 为什么使用多态?实现多态的有哪些方式?
  14. java2实用教程第五版耿祥义电子版_java2实用教程第五版
  15. 软件工程之软件维护与再工程
  16. 微信小程序或微信网页里关注公众号
  17. 微信小程序data-xx 的使用
  18. 勒索病毒WannaCry深度技术分析:详解传播、感染和危害细节
  19. php解析mht,php解析mht文件转换成html的实例详解
  20. 基于 ClickHouse OLAP 的生态:构建基于 ClickHouse 计算存储为核心的“批流一体”数仓体系...

热门文章

  1. 什么是ZooKeeper?
  2. 我该如何锁住你?--云端数据加密方法深入对比
  3. 禅道项目管理系统广告删除方法
  4. excel返回季度的公式
  5. uni-app树形列表(单选,多选)
  6. Android讯飞语音集成【语音评测3】
  7. 02325《计算机系统结构》自考大题:第 5 章
  8. 金融风控训练营--Task 02 EDA探索性数据分析 学习笔记
  9. 高中地理模板_【分享】高中地理答题模板
  10. 万字 MyBatis 带你从入门到精通!!!