From 14ba2f85c5bd93d0e21bdd3fbb3a91c110f49323 Mon Sep 17 00:00:00 2001 From: wang-bin Date: Fri, 13 Feb 2015 18:03:38 +0800 Subject: [PATCH] version 1.5.0 2015-02-13 Changelog: - Add QtAVWidgets module contains widget based renderers, video preview widget - QtAV module only depends on QtCore and QtGui - Improve audio output API - Simplify deployment on OSX. Deploy sdk from release packages without build. - Improve seekable detection - Fix noise audio if volume increased - Fix noise and wrong playback speed for wmv videos - Preview is more accurate - Do not copy AVPacket but use reference count. - Faster audio track switch - Reopen audio output only if audio format changed - VideoFrame: new API for converting to another format or QImage - OpenGL VAO, VBO support. - QML * Fix some crashes in QQuickItemRenderer * Add FBO item renderer and use the same code path as other opengl renderers * timeout property - player and QMLPlayer example * player: real time preview on progress bar * Fast seek and display if seek shortcut is pressed and hold --- .qmake.conf | 4 +- Changelog | 27 ++- README.md | 3 +- config.tests/gentest.sh | 2 +- debian/changelog | 22 ++ doc/BuildQtAV-zh_CN.md | 206 ++++++++++-------- doc/BuildQtAV.md | 42 ++-- doc/QtAVBuildConfigurations.md | 10 + doc/UseQtAVinYourProjects-zh_CN.md | 25 +++ doc/UseQtAVinYourProjects.md | 31 +++ examples/QMLPlayer/qml/QMLPlayer/About.qml | 4 +- qtc_packaging/ifw/build.sh | 1 + .../com.qtav.product.dev/meta/package.xml | 4 +- .../meta/package.xml | 4 +- .../com.qtav.product.player/meta/package.xml | 4 +- .../com.qtav.product.runtime/meta/package.xml | 4 +- .../com.qtav.product/meta/package.xml | 4 +- root.pri | 6 +- src/QtAV/version.h | 4 +- src/QtAV_Global.cpp | 6 +- tools/sdk_osx.sh | 2 +- 21 files changed, 290 insertions(+), 125 deletions(-) diff --git a/.qmake.conf b/.qmake.conf index 6997d9100..85ca34aec 100644 --- a/.qmake.conf +++ b/.qmake.conf @@ -1,6 +1,6 @@ QTAV_MAJOR_VERSION = 1 -QTAV_MINOR_VERSION = 4 -QTAV_PATCH_VERSION = 2 +QTAV_MINOR_VERSION = 5 +QTAV_PATCH_VERSION = 0 QTAV_VERSION = $${QTAV_MAJOR_VERSION}.$${QTAV_MINOR_VERSION}.$${QTAV_PATCH_VERSION} #MODULE_VERSION = $$QTAV_VERSION diff --git a/Changelog b/Changelog index f575325e0..b780e9a65 100644 --- a/Changelog +++ b/Changelog @@ -1,4 +1,29 @@ -version 1.4.2 2014-12-27 +version 1.5.0 2015-02-13 + +Changelog: +- Add QtAVWidgets module contains widget based renderers, video preview widget +- QtAV module only depends on QtCore and QtGui +- Improve audio output API +- Simplify deployment on OSX. Deploy sdk from release packages without build. +- Improve seekable detection +- Fix noise audio if volume increased +- Fix noise and wrong playback speed for wmv videos +- Preview is more accurate +- Do not copy AVPacket but use reference count. +- Faster audio track switch +- Reopen audio output only if audio format changed +- VideoFrame: new API for converting to another format or QImage +- OpenGL VAO, VBO support. +- QML + * Fix some crashes in QQuickItemRenderer + * Add FBO item renderer and use the same code path as other opengl renderers + * timeout property +- player and QMLPlayer example + * player: real time preview on progress bar + * Fast seek and display if seek shortcut is pressed and hold + + +version 1.4.2 2015-02-13 Changelog: - Async load diff --git a/README.md b/README.md index 872d37176..a02f5bb5d 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,7 @@ QtAV can meet your most demands - Hardware decoding suppprt: DXVA2, VAAPI, VDA, CedarX, CUDA(the 1st player support CUDA on linux?) - OpenGL and ES2 support for Hi10P and other 16-bit YUV videos (The 1st player/library support in ES2? VLC, XBMC, mplayer does not support now) +- Real time preview - Video capture in rgb and yuv format - OSD and custom filters - Filters in libavfilter, for example stero3d, blur @@ -77,7 +78,7 @@ For more detail to using QtAV, see the wiki [Use QtAV In Your Project](https://g QtAV can also be used in **Qml** import QtQuick 2.0 - import QtAV 1.4 + import QtAV 1.5 Item { Video { id: video diff --git a/config.tests/gentest.sh b/config.tests/gentest.sh index 7ec27116d..7eaae5c69 100755 --- a/config.tests/gentest.sh +++ b/config.tests/gentest.sh @@ -27,7 +27,7 @@ EOF YEAR=`date +%Y` COPY=../templates/COPYRIGHT.h cat $COPY | sed "s/%YEAR%/$YEAR/g" > $NAME/main.cpp -cat >>$NAME/main.cpp <$NAME/main.cpp < int main() diff --git a/debian/changelog b/debian/changelog index 15e1de581..d4dfaa926 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,25 @@ +qtav (1.5.0) unstable; urgency=low + + * Add QtAVWidgets module contains widget based renderers, video preview widget + * QtAV module only depends on QtCore and QtGui + * Improve audio output API + * Simplify deployment on OSX. Deploy sdk from release packages without build. + * Improve seekable detection + * Fix noise audio if volume increased + * Fix noise and wrong playback speed for wmv videos + * Preview is more accurate + * Do not copy AVPacket but use reference count. + * Faster audio track switch + * Reopen audio output only if audio format changed + * VideoFrame: new API for converting to another format or QImage + * OpenGL VAO, VBO support. + * Fix some crashes in QQuickItemRenderer + * Add FBO item renderer and use the same code path as other opengl renderers + * player: real time preview on progress bar + * Fast seek and display if seek shortcut is pressed and hold + + -- Wang Bin Sat, 13 Feb 2015 20:19:00 +0800 + qtav (1.4.2) unstable; urgency=low * Async load diff --git a/doc/BuildQtAV-zh_CN.md b/doc/BuildQtAV-zh_CN.md index a32d99e4a..7099c574a 100644 --- a/doc/BuildQtAV-zh_CN.md +++ b/doc/BuildQtAV-zh_CN.md @@ -1,85 +1,121 @@ -## 1. Setup the environment - -QtAV 依赖 FFmpeg, PortAudio,以及一些可选的库如direct2d, xvideo -可以从这里下载windows下FFmpeg和PortAudio开发用的文件 [QtAV sourceforge page](https://sourceforge.net/projects/qtav/files/depends) -windows 下的 FFmpeg 也可以从这里下载 [Zeranoe](http://ffmpeg.zeranoe.com/builds) -Or you can build them your self [Compile FFmpeg and PortAudio](https://github.com/wang-bin/QtAV/wiki/Compile-FFmpeg-and-PortAudio) - -首先你 *必须* 让编译器能找到 FFmpeg 的头文件和库文件., 否则在 qmake 时会出错。如果你已经把那些文件放到该放的位置了,可以忽略这步。 - -vc 编译器会在环境变量 __*INCLUDE*__ 制定的那些目录搜索头文件, __*LIB*__ 制定的目录搜索库文件,因此如果你使用命令行编译的话可以这样设置环境 - - set INCLUDE=ffmpeg_path\include;portaudio_path\include;%INCLUDE% - set LIB=ffmpeg_path\lib;portaudio_path\lib;%LIB% - - -GCC 会在环境变量 __*CPATH*__ 搜索头文件, __*LIBRARY_PATH*__ 里搜索库文件。因此你可以设置这些变量来包含 FFmpeg 和 PortAudio 相关的路径。 -unix shell环境下的 gcc (也包括环境中有sh.exe的mingw环境): - - export CPATH=ffmpeg_path/include:portaudio_path/include:$CPATH - export LIBRARY_PATH=ffmpeg_path/include:portaudio_path/lib:$LIBRARY_PATH - -由于包含 libQtAV.pri 的工程不会添加 FFmpeg 等相关的链接参数,所以链接器可能会从 $LD_LIBRARY_PATH 中去找 QtAV 库的依赖库: - - export LD_LIBRARY_PATH=ffmpeg_path/lib:portaudio_path/lib:$LD_LIBRARY_PATH - -windows 无sh.exe的环境下的 gcc - - set CPATH=ffmpeg_path\include;portaudio_path\include;%CPATH% - set LIBRARY_PATH=ffmpeg_path\lib;portaudio_path\lib;%LIBRARY_PATH% - -如果使用 QtCreator 进行编译, 打开左边的 '工程' 页面,添加或追加相应的环境变量就行 - -## 2. qmake - -对于大多数系统, 只要 - - qmake - make - -强烈建议不要在源码目录编译,而是使用如下的方法 - - cd your_build_dir - qmake QtAV_source_dir/QtAV.pro - make - -qmake 在第一次运行的时候会检测所依赖的库, 你要保证这些库能被找到。 -然后 qmake 会在编译目录生成一个 cache 文件 _.qmake.cache_ . cache 文件包含了检测结果,比如 portaudio 是否支持。 如果你想重新检测, 则可以删除 _**.qmake.cache**_ 再运行 qmake, 也可以直接给 qmake 加个额外参数 - - qmake QtAV_source_dir/QtAV.pro CONFIG+=recheck - - -_WARNING_: If you are in windows mingw with sh.exe environment, you may need run qmake twice. I have not find out the reason! - -## 3. Make - -使用 make, jom, nmake 或者 QtCreator 进行编译. - - - -## Windows 下的编译 - -你必须在qmake前配置好环境,如最开始所说的。 - -#### Visual Studio - -我没有在 QtAV 里放任何 vs 的工程文件,因为这些工程很容易由 qmake 生成 - -打开命令行 - - qmake -r -tp vc QtAV.pro - -然后 sln 和 vcxproj(vcproj) 文件会创建. 用 Visual Studio 打开 QtAV.sln 进行编译. - -另外你也可以使用 Qt vs plugin 来导入qmake 工程(未测试) - -#### QtCreator 里使用 MSVC - -QtCreator 会检测 VC 编译器,编译过程和 gcc 的差不多,很简单。 - - -#### VC 命令行下编译 - -我从 VS2012 Update1 中提取了 VC 编译器和 windows sdk. 可以从这里下载 http://qtbuild.googlecode.com/files/vs2012-x86.7z - -这个编译环境很精简但是开发C++的功能很完整,至少能用它成功编译 Qt。 +## 0. 依赖 + +FFmpeg (>=1.0) 或 Libav (>=9.0). 强烈建议使用最新的 FFmpeg release版本,我主要用这个. 使用libav可能会导致dxva, vaapi, vda 和 libavfilter 不能使用。 + +编译好的FFmpeg可以这里下载 [QtAV sourceforge page](https://sourceforge.net/projects/qtav/files/depends/FFmpeg) +或者windows版[Zeranoe](http://ffmpeg.zeranoe.com/builds) +或者自己编译[Build FFmpeg](https://github.com/wang-bin/QtAV/wiki/Build-FFmpeg) + +其他依赖 + +#### Windows + +PortAudio 或 OpenAL(建议). + +#### OSX, iOS + +无. 调用系统 OpenAL + +#### Android + +OpenAL(OpenSL为后端). 当前 OpenSL 不能正常工作. + +#### Ubuntu + +OpenAL. 要启用所有功能需要安装 XVideo 和 VAAPI 的开发包. + + sudo apt-get install libopenal-dev libva-dev libxv-dev + +运行时可能要安装vaapi driver让vaapi工作 + + sudo apt-get install libva-intel-vaapi-driver + + +## 1. Setup the environment + +首先你 *必须* 让编译器能找到 FFmpeg 的头文件和库文件., 否则在 qmake 时会出错。如果你已经把那些文件放到该放的位置了,可以忽略这步。 + +#### 把头文件和库放到 Qt 头文件和库的目录 + +这是让编译器找到 ffmpeg 和其他依赖库最简单的方法 + +#### 使用环境变量 + +vc 编译器会在环境变量 __*INCLUDE*__ 制定的那些目录搜索头文件, __*LIB*__ 制定的目录搜索库文件,因此如果你使用命令行编译的话可以这样设置环境 + + set INCLUDE=ffmpeg_path\include;portaudio_path\include;%INCLUDE% + set LIB=ffmpeg_path\lib;portaudio_path\lib;%LIB% + + +GCC 会在环境变量 __*CPATH*__ 搜索头文件, __*LIBRARY_PATH*__ 里搜索库文件。因此你可以设置这些变量来包含 FFmpeg 和 PortAudio 相关的路径。 +unix shell环境下的 gcc (也包括环境中有sh.exe的mingw环境): + + export CPATH=ffmpeg_path/include:portaudio_path/include:$CPATH + export LIBRARY_PATH=ffmpeg_path/include:portaudio_path/lib:$LIBRARY_PATH + +由于包含 libQtAV.pri 的工程不会添加 FFmpeg 等相关的链接参数,所以链接器可能会从 $LD_LIBRARY_PATH 中去找 QtAV 库的依赖库: + + export LD_LIBRARY_PATH=ffmpeg_path/lib:portaudio_path/lib:$LD_LIBRARY_PATH + +windows 无sh.exe的环境下的 gcc + + set CPATH=ffmpeg_path\include;portaudio_path\include;%CPATH% + set LIBRARY_PATH=ffmpeg_path\lib;portaudio_path\lib;%LIBRARY_PATH% + +如果使用 QtCreator 进行编译, 打开左边的 '工程' 页面,添加或追加相应的环境变量就行 + +![QtCreator Settings](http://wang-bin.github.io/qtav.org/images/qtc-set.jpg "QtCreator Settings") + +## 2. qmake + +对于大多数系统, 只要 + + qmake + make + +强烈建议不要在源码目录编译,而是使用如下的方法 + + cd your_build_dir + qmake QtAV_source_dir/QtAV.pro + make + +qmake 在第一次运行的时候会检测所依赖的库, 你要保证这些库能被找到。 +然后 qmake 会在编译目录生成一个 cache 文件 _.qmake.cache_ . cache 文件包含了检测结果,比如 portaudio 是否支持。 如果你想重新检测, 则可以删除 _**.qmake.cache**_ 再运行 qmake, 也可以直接给 qmake 加个额外参数 + + qmake QtAV_source_dir/QtAV.pro CONFIG+=recheck + + +_WARNING_: If you are in windows mingw with sh.exe environment, you may need run qmake twice. I have not find out the reason! + +## 3. Make + +使用 make, jom, nmake 或者 QtCreator 进行编译. + + + +## Windows 下的编译 + +你必须在qmake前配置好环境,如最开始所说的。 + +#### Visual Studio + +我没有在 QtAV 里放任何 vs 的工程文件,因为这些工程很容易由 qmake 生成 + +打开命令行 + + qmake -r -tp vc QtAV.pro + +然后 sln 和 vcxproj(vcproj) 文件会创建. 用 Visual Studio 打开 QtAV.sln 进行编译. + +另外你也可以使用 Qt vs plugin 来导入qmake 工程(未测试) + +#### QtCreator 里使用 MSVC + +QtCreator 会检测 VC 编译器,编译过程和 gcc 的差不多,很简单。 + + +#### VC 命令行下编译 + +我从 VS2012 Update1 中提取了 VC 编译器和 windows sdk. 可以从这里下载 http://qtbuild.googlecode.com/files/vs2012-x86.7z + +这个编译环境很精简但是开发C++的功能很完整,至少能用它成功编译 Qt。 \ No newline at end of file diff --git a/doc/BuildQtAV.md b/doc/BuildQtAV.md index 31b702caa..ca4798221 100644 --- a/doc/BuildQtAV.md +++ b/doc/BuildQtAV.md @@ -6,7 +6,7 @@ Get QtAV source code git submodule update --init -FFmpeg (>=1.0) or Libav (>=9.0) is always required. The latest FFmpeg release is recommended (that's what i use). If you use libav, you vaapi can not work in C++ apps and libavfilter does not work. +FFmpeg (>=1.0) or Libav (>=9.0) is always required. The latest FFmpeg release is recommended (that's what i use). You can download precompiled FFmpeg from [QtAV sourceforge page](https://sourceforge.net/projects/qtav/files/depends/FFmpeg), or if you are using Windows you can also download FFmpeg development files from [Zeranoe](http://ffmpeg.zeranoe.com/builds). @@ -28,9 +28,9 @@ OpenAL with OpenSL backend. Currently OpenSL code doesn't work correctly, but Op #### Ubuntu -OpenAL. To enable all supported features, you must install XVideo and VA-API dev packages. +OpenAL. To enable all supported features, you must install libass, XVideo and VA-API dev packages. - sudo apt-get install libopenal-dev libva-dev libxv-dev + sudo apt-get install libopenal-dev libva-dev libxv-dev libass-dev You may have to install VA-API drivers to make VA-API available at runtime. See https://github.com/wang-bin/QtAV/wiki/Enable-Hardware-Decoding @@ -47,26 +47,22 @@ This is the simplest and best way to let compilers find ffmpeg and other depend #### Use Environment Vars -On Windows, Visual Studio will search headers in `%INCLUDE%` and search libraries in `%LIB%`, so you can set the environment like below if your compile in command line: +On Windows, VC compiler will search headers in `%INCLUDE%` and search libraries in `%LIB%`, so you can set the environment like below if your compile in command line: - set INCLUDE=ffmpeg_path\include;portaudio_path\include;%INCLUDE% - set LIB=ffmpeg_path\lib;portaudio_path\lib;%LIB% + set INCLUDE=ffmpeg_path\include;openal_path\include;%INCLUDE% + set LIB=ffmpeg_path\lib;openal_path\lib;%LIB% -GCC will search headers in environment variables `$CPATH` and libraries in `$LIBRARY_PATH`. So you can set those vars to include your FFmepg and PortAudio dir. +GCC will search headers in environment variables `$CPATH` and libraries in `$LIBRARY_PATH`. So you can set those vars to include your FFmpeg and OpenAL dir. gcc in unix shell environment(including mingw with sh.exe): - export CPATH=ffmpeg_path/include:portaudio_path/include:$CPATH - export LIBRARY_PATH=ffmpeg_path/lib:portaudio_path/lib:$LIBRARY_PATH - -The project includes libQtAV.pri will not add linking options about FFmpeg etc., so the linker may find the dependent libraries from $LD_LIBRARY_PATH: - - export LD_LIBRARY_PATH=ffmpeg_path/lib:portaudio_path/lib:$LD_LIBRARY_PATH + export CPATH=ffmpeg_path/include:openal_path/include:$CPATH + export LIBRARY_PATH=ffmpeg_path/lib:openal_path/lib:$LIBRARY_PATH GCC on windows cmd.exe environment without UNIX Shell: - set CPATH=ffmpeg_path\include;portaudio_path\include;%CPATH% - set LIBRARY_PATH=ffmpeg_path\lib;portaudio_path\lib;%LIBRARY_PATH% + set CPATH=ffmpeg_path\include;openal_path\include;%CPATH% + set LIBRARY_PATH=ffmpeg_path\lib;openal_path\lib;%LIBRARY_PATH% If you are building in QtCreator, goto QtCreator's 'Projects' page and add or append those environment. @@ -134,3 +130,19 @@ run debuild -us -uc in QtAV source tree + +## Link to Static FFmpeg and OpenAL + +QtAV >=1.4.2 supports linking to static ffmpeg and openal libs. It's disabled by default. To enable it, add + + CONFIG += static_ffmpeg static_openal + +in $QtAV/.qmake.conf for Qt5 or $QtAV_BUILD_DIR/.qmake.cache + +## Ubuntu 12.04 Support + +If QtAV, FFmpeg and OpenAL are built on newer OS, some symbols will not be found on 12.04. For example, clock_gettime is in both librt and glibc2.17, we must force the linker link against librt because 12.04 glibc does not have that symbol. add + + CONFIG += glibc_compat + +to .qmake.conf or .qmake.cache \ No newline at end of file diff --git a/doc/QtAVBuildConfigurations.md b/doc/QtAVBuildConfigurations.md index 4e9a4a9ed..27aacf1b4 100644 --- a/doc/QtAVBuildConfigurations.md +++ b/doc/QtAVBuildConfigurations.md @@ -27,6 +27,16 @@ in *QtAV_SRC/user.conf* to disable it then qmake will be faster. But you then mu in *user.conf*. +Link Against Static FFmpeg +========================== + +It is supported since 1.4.2. You can add `CONFIG += static_ffmpeg` in QTAV_BUILD_DIR/.qmake.cache. Additional link flags will be added. Only ffmpeg build with QtAV/script/build_ffmpeg.sh is tested. + +Old GLibc Compatibility +====================== + +QtAV built from a newer linux system like ubuntu 14.04 may not work on old system like ubuntu 12.04 because of some symbols is missing. For example, `clock_get_time` is in glibc>=2.17 and librt. An convenience option is added since 1.4.2. Just add `CONFIG += glibc_compat` in QTAV_BUILD_DIR/.qmake.cache + TODO ==== diff --git a/doc/UseQtAVinYourProjects-zh_CN.md b/doc/UseQtAVinYourProjects-zh_CN.md index d82654fca..bff5deaa5 100644 --- a/doc/UseQtAVinYourProjects-zh_CN.md +++ b/doc/UseQtAVinYourProjects-zh_CN.md @@ -1,3 +1,28 @@ +QtAV 1.3.4 之后可以很方便地使之作为一个Qt模块,就像其他Qt模块那样。首先要编译QtAV,编译好后在编译目录会生成安装为Qt模块的脚本 `sdk_install.sh` 和 `sdk_uninstall.sh`,windows为`sdk_install.bat` 和 `sdk_uninstall.bat`,运行`sdk_install.sh` 或`sdk_install.bat`进行安装。安装后要使用QtAV只要在你的qmake工程里加上 + + CONFIG += av + +就行。对于Qt5,也可以使用 + + QT += av + +在 C++ 文件中,加入 + + #include + +自 QtAV 1.5 基于 QWidget 的渲染器被移到了新模块 QtAVWidgets, 若需要使用这些渲染器比如 OpenGLWidgetRenderer,在工程文件加入 + + QT += avwidgets + +C++ 代码中加入 + + #include + #include + +请确保在使用渲染器前调用`QtAV::Widgets::registerRenderers()` + +## QtAV < 1.3.4 + 在你的项目中包含 QtAV 非常容易. 因为 QtAV 的qmake工程是精心设计的. (可以参考: https://github.com/wang-bin/LibProjWizard4QtCreator) 你可以参考 QtAV 里的例子来了解如何使用 QtAV, 或者也可以使用以下步骤 diff --git a/doc/UseQtAVinYourProjects.md b/doc/UseQtAVinYourProjects.md index ce105abef..adc2a5565 100644 --- a/doc/UseQtAVinYourProjects.md +++ b/doc/UseQtAVinYourProjects.md @@ -1,3 +1,34 @@ +For QtAV version >= 1.3.4, QtAV can be installed as a Qt5 module easily. Integrating QtAV in your project is very easy. + +First, you have to build QtAV. Then go to building directory, you will find `sdk_install.sh` and `sdk_uninstall.sh` (`sdk_install.bat` and `sdk_uninstall.bat` on windows). Run `sdk_install.sh` or `sdk_install.bat` to install QtAV as a Qt module. + +To use QtAV, just add the following line in your project + + CONFIG += av + +For Qt5, use the following works too + + QT += av + +In your C++ files, add + + #include + +In addition, you must copy ffmpeg and portaudio/openal libraries to Qt dir manually. Otherwise your application may not able to run in QtCreator. On windows, put the the dlls in QtDir/bin. On linux, put in QtDir/lib + +Since QtAV 1.5 QWidget based renderers are moved to a new module QtAVWidgets. If you want to use QWidget based renderers, for example `OpenGLWidgetRenderer`, in project file add + + QT += avwidgets + +In your C++ files, add + + #include + #include + +Make sure `QtAV::Widgets::registerRenderers()` is called before creating a renderer. + +# For QtAV < 1.3.4 + It's easy to include QtAV in your project. Because it's pro file are well designed. For more information about the pro file i use, see my another project: https://github.com/wang-bin/LibProjWizard4QtCreator You can see examples in QtAV to know how to use QtAV, or follow the steps below diff --git a/examples/QMLPlayer/qml/QMLPlayer/About.qml b/examples/QMLPlayer/qml/QMLPlayer/About.qml index 98eadc746..cf0dbf53d 100644 --- a/examples/QMLPlayer/qml/QMLPlayer/About.qml +++ b/examples/QMLPlayer/qml/QMLPlayer/About.qml @@ -18,9 +18,9 @@ Page { font.pixelSize: Utils.scaled(14) onContentHeightChanged: parent.height = contentHeight + 2*anchors.margins onLinkActivated: Qt.openUrlExternally(link) - text: "

QMLPlayer based on QtAV 1.4.2

" + text: "

QMLPlayer based on QtAV 1.5.0

" + "

Distributed under the terms of LGPLv2.1 or later.

" - + "

Copyright (C) 2012-2014 Wang Bin (aka. Lucas Wang) wbsecg1@gmail.com

" + + "

Copyright (C) 2012-2015 Wang Bin (aka. Lucas Wang) wbsecg1@gmail.com

" + "

Shanghai University->S3 Graphics->Deepin, Shanghai, China

" + "

Source code: https://github.com/wang-bin/QtAV

" + "

Home page: http://www.qtav.org

" diff --git a/qtc_packaging/ifw/build.sh b/qtc_packaging/ifw/build.sh index 9929e3178..5d0b94a39 100755 --- a/qtc_packaging/ifw/build.sh +++ b/qtc_packaging/ifw/build.sh @@ -18,6 +18,7 @@ MKSPEC=`grep mkspecs_cached $BUILD/.qmake.cache |cut -d "=" -f 2` MKSPEC=`echo $MKSPEC` TARGET=${MKSPEC}-${ARCH} +mkdir -p $TARGET QTAV_VER_MAJOR=`grep -m 1 QTAV_MAJOR_VERSION ../../.qmake.conf |cut -d "=" -f 2 | tr -d ' '` QTAV_VER_MINOR=`grep -m 1 QTAV_MINOR_VERSION ../../.qmake.conf |cut -d "=" -f 2 | tr -d ' '` QTAV_VER_PATCH=`grep -m 1 QTAV_PATCH_VERSION ../../.qmake.conf |cut -d "=" -f 2 | tr -d ' '` diff --git a/qtc_packaging/ifw/packages/com.qtav.product.dev/meta/package.xml b/qtc_packaging/ifw/packages/com.qtav.product.dev/meta/package.xml index 8ce4cab71..aee09e394 100644 --- a/qtc_packaging/ifw/packages/com.qtav.product.dev/meta/package.xml +++ b/qtc_packaging/ifw/packages/com.qtav.product.dev/meta/package.xml @@ -2,8 +2,8 @@ Development files Install QtAV headers and lib. - 1.4.2-0 - 2014-12-27 + 1.5.0-0 + 2015-02-13 com.qtav.product.dev script diff --git a/qtc_packaging/ifw/packages/com.qtav.product.examples/meta/package.xml b/qtc_packaging/ifw/packages/com.qtav.product.examples/meta/package.xml index 8a88f96ba..76185fd6d 100644 --- a/qtc_packaging/ifw/packages/com.qtav.product.examples/meta/package.xml +++ b/qtc_packaging/ifw/packages/com.qtav.product.examples/meta/package.xml @@ -2,8 +2,8 @@ Examples Install QtAV examples. - 1.4.2-0 - 2014-12-27 + 1.5.0-0 + 2015-02-13 com.qtav.product.examples script diff --git a/qtc_packaging/ifw/packages/com.qtav.product.player/meta/package.xml b/qtc_packaging/ifw/packages/com.qtav.product.player/meta/package.xml index f5c2d931b..d221d1154 100644 --- a/qtc_packaging/ifw/packages/com.qtav.product.player/meta/package.xml +++ b/qtc_packaging/ifw/packages/com.qtav.product.player/meta/package.xml @@ -2,8 +2,8 @@ Player Default player. - 1.4.2-0 - 2014-12-27 + 1.5.0-0 + 2015-02-13 com.qtav.product.player true true diff --git a/qtc_packaging/ifw/packages/com.qtav.product.runtime/meta/package.xml b/qtc_packaging/ifw/packages/com.qtav.product.runtime/meta/package.xml index 5eea15737..811fd57a8 100644 --- a/qtc_packaging/ifw/packages/com.qtav.product.runtime/meta/package.xml +++ b/qtc_packaging/ifw/packages/com.qtav.product.runtime/meta/package.xml @@ -2,8 +2,8 @@ Runtime library Install QtAV runtime library. - 1.4.2-0 - 2014-12-27 + 1.5.0-0 + 2015-02-13 com.qtav.product.runtime zh_CN.qm diff --git a/qtc_packaging/ifw/packages/com.qtav.product/meta/package.xml b/qtc_packaging/ifw/packages/com.qtav.product/meta/package.xml index 7e5f0307b..2c2339ef4 100644 --- a/qtc_packaging/ifw/packages/com.qtav.product/meta/package.xml +++ b/qtc_packaging/ifw/packages/com.qtav.product/meta/package.xml @@ -2,8 +2,8 @@ QtAV Install QtAV multimedia library - 1.4.2-0 - 2014-12-27 + 1.5.0-0 + 2015-02-13 com.qtav.product diff --git a/root.pri b/root.pri index 1edb1a386..b61491ea8 100644 --- a/root.pri +++ b/root.pri @@ -49,10 +49,8 @@ defineTest(qtRunCommandQuitly) { return(true) } -isEmpty(QTAV_VERSION) { - QTAV_MAJOR_VERSION = 1 - QTAV_MINOR_VERSION = 4 - QTAV_PATCH_VERSION = 2 +lessThan(QT_MAJOR_VERSION, 5) { + include(.qmake.conf) QTAV_VERSION = $${QTAV_MAJOR_VERSION}.$${QTAV_MINOR_VERSION}.$${QTAV_PATCH_VERSION} message("QTAV_VERSION not set, cache the default $$QTAV_VERSION") cache(QTAV_MAJOR_VERSION, set, QTAV_MAJOR_VERSION) diff --git a/src/QtAV/version.h b/src/QtAV/version.h index 2957ea195..cadd0d120 100644 --- a/src/QtAV/version.h +++ b/src/QtAV/version.h @@ -23,8 +23,8 @@ #define QTAV_VERSION_H #define QTAV_MAJOR 1 //((QTAV_VERSION&0xff0000)>>16) -#define QTAV_MINOR 4 //((QTAV_VERSION&0xff00)>>8) -#define QTAV_PATCH 2 //(QTAV_VERSION&0xff) +#define QTAV_MINOR 5 //((QTAV_VERSION&0xff00)>>8) +#define QTAV_PATCH 0 //(QTAV_VERSION&0xff) #define QTAV_VERSION_MAJOR(V) ((V & 0xff0000) >> 16) diff --git a/src/QtAV_Global.cpp b/src/QtAV_Global.cpp index 130dab690..933080011 100644 --- a/src/QtAV_Global.cpp +++ b/src/QtAV_Global.cpp @@ -130,6 +130,7 @@ void print_library_info() info = Internal::get_ffmpeg_component_info(info); } } + } //namespace Internal QString aboutFFmpeg_HTML() @@ -170,7 +171,7 @@ QString aboutQtAV_HTML() static QString about = "

QtAV " QTAV_VERSION_STR_LONG "

\n" "

" + QObject::tr("A media playing library base on Qt and FFmpeg.\n") + "

" "

" + QObject::tr("Distributed under the terms of LGPLv2.1 or later.\n") + "

" - "

Copyright (C) 2012-2014 Wang Bin (aka. Lucas Wang) wbsecg1@gmail.com

\n" + "

Copyright (C) 2012-2015 Wang Bin (aka. Lucas Wang) wbsecg1@gmail.com

\n" "

" + QObject::tr("Shanghai University->S3 Graphics->Deepin, Shanghai, China") + "

\n" "

" + QObject::tr("Donate") + ": http://www.qtav.org#donate

\n" "

" + QObject::tr("Source") + ": https://github.com/wang-bin/QtAV

\n" @@ -199,6 +200,9 @@ void setFFmpegLogHandler(void (*callback)(void *, int, const char *, va_list)) static void qtav_ffmpeg_log_callback(void* ctx, int level,const char* fmt, va_list vl) { + // AV_LOG_DEBUG is used by ffmpeg developers + if (level > AV_LOG_VERBOSE) + return; AVClass *c = ctx ? *(AVClass**)ctx : 0; QString qmsg = QString().sprintf("[FFmpeg:%s] ", c ? c->item_name(ctx) : "?") + QString().vsprintf(fmt, vl); qmsg = qmsg.trimmed(); diff --git a/tools/sdk_osx.sh b/tools/sdk_osx.sh index 67705c7fb..5d9864fac 100755 --- a/tools/sdk_osx.sh +++ b/tools/sdk_osx.sh @@ -2,7 +2,7 @@ THIS_DIR=`dirname "${BASH_SOURCE[0]}"` ARGV=($@) ARGC=${#ARGV[@]} echo $THIS_DIR |grep "\.app" && test -d $THIS_DIR/Contents/Frameworks/QtCore.framework && IS_BOUNDLE=0 -[ $ARGC -gt 0 ] && QT_LIBS=${ARGV[$((ARGC-1))]} +[ $ARGC -gt 0 ] && QT_LIBS=${ARGV[ARGC-1]} if [ -n "$IS_BOUNDLE" ]; then if [ ! -e $QT_LIBS/QtCore.framework ]; then QT_VER=`otool -L $THIS_DIR/Contents/Frameworks/QtCore.framework/QtCore | grep -v ":" |grep "QtCore\.framework" |sed 's,.*current version \(.*\)\.[0-9]),\1,'`