zoukankan      html  css  js  c++  java
  • VS2015编译VLC2.2.1(under WIN7-64)<转>

    概述:

    感谢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

  • 相关阅读:
    发布镜像
    实战Tomcat镜像
    Docker File介绍
    数据卷容器
    DockerFile
    具名、匿名、指定路径挂载
    实战MySQL
    SHELL 常用技巧
    CentOS6和7启动流程
    解决服务器openssh漏洞
  • 原文地址:https://www.cnblogs.com/wainiwann/p/7513810.html
Copyright © 2011-2022 走看看