zoukankan      html  css  js  c++  java
  • X264的版本号

    0 X264官方地扯

      http://www.videolan.org/developers/x264.html

    1 X264官方编译的二进制程序命名格式

      官方编译出了LINUX,Win32,Win64等不同OS平台下可运行的版本,每个程序(举例x264-r2694-3b70645.exe)的名称以"-"分成三部分,第一部分为x264,第二部是跟据x264所使用git版本库中记录的提交版本号计算出来的提交次数值, 第三部分是git版本库记录的提交的真实版本号的前7个字符截取出的字符串,另外由于X264还编译出了支持10位位深的程序,这类程序是通过在x264后跟10b表达的,10bit位深程序命名示例:x264-10b-r2694-3b70645.exe

    2 通过源代码编译出的X264程序,版本号最后一项为什么是x

      这个情况是通过day tarball下载方式下载的源代码,由于没有git相关信息,所以编译出的程序通过-V 查看版本号时会显示诸如:0.148.x,而不是:0.148.2705 3f5ed56(148是X264 Build 版本号)。所以为了同行之间方便交流或程序升级管理方面考虑,最好还是安装git,通过git下载源代码并编译出适合自己的x264程序。

    3 X264版本号定义头文件

       x264_config.h,其中的宏定义如下:    

    #define X264_REV 2699
    #define X264_REV_DIFF 0
    #define X264_VERSION " r2699"
    #define X264_POINTVER "0.148.2699"

     这几项宏定义是在编译前运行configure时,由configure调用version.sh生成的,version.sh内容如下:  

    #!/bin/sh
    [ -n "$1" ] && cd $1
    
    git_version() {
    trap 'rm -f config.git-hash' EXIT
    git rev-list HEAD | sort > config.git-hash
    LOCALVER=`wc -l config.git-hash | awk '{print $1}'`
    if [ $LOCALVER > 1 ] ; then
        VER=`git rev-list origin/master | sort | join config.git-hash - | wc -l | awk '{print $1}'`
        VER_DIFF=$(($LOCALVER-$VER))
        echo "#define X264_REV $VER"
        echo "#define X264_REV_DIFF $VER_DIFF"
        if [ $VER_DIFF != 0 ] ; then
            VER="$VER+$VER_DIFF"
        fi
        if git status | grep -q "modified:" ; then
            VER="${VER}M"
        fi
        VER="$VER $(git rev-list HEAD -n 1 | cut -c 1-7)"
        VERSION=" r$VER"
    fi
    }
    
    VER="x"
    VERSION=""
    [ -d .git ] && (type git >/dev/null 2>&1) && git_version
    echo "#define X264_VERSION "$VERSION""
    API=`grep '#define X264_BUILD' < x264.h | sed -e 's/.* ([1-9][0-9]*).*/1/'`
    echo "#define X264_POINTVER "0.$API.$VER""

    从中可以看看X264的版本号格式为:0.$API.$VER,其中$API是由X264.h头文件的X264_BUILD宏定义读入的;$VER由git提交记录行(一行一个版号最,多少行就是多少了,也可以理解为提交次数)推导出来的,外加git记录的提交版本号截取出前7个字符构成的字符串。

    4 X264的源代码用到版本号宏定义的部分代码

      x264命令行程序的帮助与版本号查询命令的输出部分及x264的资源文件部分。

    5 X264的64位VS32版本

      通过简单测试,x264 64位程序比32位同期版本运行速度快10%左右。

  • 相关阅读:
    C#接口入门学习
    消息队列接收时报错:对消息队列系统的访问被拒绝
    给某做测试的好友的建议
    在不同的Sql Server 数据库服务器(不同机器)导数据。
    如何让开发人员更好测试?
    存储过程初探
    语音报警.NET开发初探
    vs2010下Siverlight开发环境安装
    C# HttpWebRequest 从google服务器获取google的PageRank PR值
    创建进程API CreateProcess Demo
  • 原文地址:https://www.cnblogs.com/oldmanlv/p/5882808.html
Copyright © 2011-2022 走看看