Files
QtAV/qml/libQmlAV.pro
wang-bin b562ab9820 version 1.9.0
Changelog:
- No audio thread if audio stream < 0. null AudioOutput now still create
audio thread.
- VideoOutput: fix lock error
- Filter: add X11 text rendering for X11Renderer/XVRenderer.
- LibAVFilter supports HW frames(not recommended)
- VideoFrame copy and init issue, bpp compute error
- Avoid using some stl APIs that breaks ABI
- Add x11 renderer
- XV: support NV12 and packed yuv formats
- Fix factory initialization for static build(iOS for example)
- Fix ffmpeg log level
- Remove AVPicture which is deprecated
- SWS 16 alignment, output to user defined buffer
- Always define the registered id so we can use everywhere
- Better iOS support: build, run, deploy(prl)
- use libuchardet now, use system one if possible
- Fix android build on windows
- XAudio2: fix crash. `double` sample format is not supported
- Fix clock value if speed changed
- VideoRenderer.updateUi
- VideoCapture: fix HW frame save
- New logo ![](http://qtav.org/blog/images/QtAV1.9.0-logo.png "Logo")
- Android: support protocol 'content'. Now can play from Gallery.
- MediaIO is not writable by default
- WinRT (Windows Store) support:
 * Link to XAudio2
 * File open and protocol
- VA-API:
 * Add hevc, vp9. Not tested
 * Support more profiles
 * Improve nvidia support
 * Interop with egl support(dma, tfp). libva 0.38 and Qt>=5.5 are
required.
 * Check resolution support before open
 * Add thread count option (new ffmpeg >2.8 does not support)
 * Prefer /dev/dri/renderD128 for drm
 * Correctly release X11/drm resource
- OpenGL:
 * OpenGL ES3 optimization
 * use new OpenGL and GLSL APIs if possible
- CI:
 * Add windows. Build with latest Qt release. Using msbuild, nmake and
mingw32-make
- API:
 * AVPlayer.stepForward(), stepBackword(). playNextFrame() is deprecated
 * AVPlayer.state
 * AVPlayer.videoDecoderPriority with name list
 * VideoRenderer.frameSize (C++), VideoOutput.frameSize
 * XXXDecoder/Encoder::supportedCodecs, AV(De)Muxer.supportedFormats/
Extensions
 * QML: more metaData keys: startTime, sampleFormat, channelLayout,
pixelFormat, videoFrames
- QMLPlayer/Player:
 * fix OpenGLWidgetRenderer crash
 * Handle Home/Back button for mobile
 * Preview item is movable
 * ppa: rename /usr/bin/player to /usr/bin/Player
2015-12-21 02:24:08 +08:00

127 lines
4.3 KiB
Prolog

TEMPLATE = lib
CONFIG += qt plugin
TARGET = QmlAV
QT += quick qml
CONFIG *= qmlav-buildlib
#QMAKE_RPATHLINKDIR
#CONFIG *= qml_module relative_qt_rpath
#https://github.com/wang-bin/QtAV/issues/368#issuecomment-73246253
#http://qt-project.org/forums/viewthread/38438
# mkspecs/features/qml_plugin.prf
URI = QtAV #uri used in QtAVQmlPlugin::registerTypes(uri)
greaterThan(QT_MAJOR_VERSION, 4) {
isEqual(QT_MAJOR_VERSION, 5) {
greaterThan(QT_MINOR_VERSION, 2) {
QMAKE_MOC_OPTIONS += -Muri=$$URI # not sure what moc does
}
} else {
QMAKE_MOC_OPTIONS += -Muri=$$URI # not sure what moc does
}
}
#var with '_' can not pass to pri?
PROJECTROOT = $$PWD/..
!include($$PROJECTROOT/src/libQtAV.pri): error("could not find libQtAV.pri")
!include(libQmlAV.pri): error("could not find libQmlAV.pri")
preparePaths($$OUT_PWD/../out)
#DESTDIR = $$BUILD_DIR/bin/QtAV
RESOURCES +=
QML_FILES = $$PWD/Video.qml
qtav_qml.files = $$PWD/qmldir $$PWD/Video.qml $$PWD/plugins.qmltypes
!ios: plugin.files = $$DESTDIR/$$qtSharedLib($$NAME)
plugin.path = $$BUILD_DIR/bin/QtAV/
mkpath($$plugin.path)
#plugin.depends = #makefile target
#windows: copy /y file1+file2+... dir. need '+'. $(COPY_FILE) is exists in makefile, not in vc projects (MAKEFILE_GENERATOR is MSBUILD or MSVC.NET)
if(equals(MAKEFILE_GENERATOR, MSVC.NET)|equals(MAKEFILE_GENERATOR, MSBUILD)) {
TRY_COPY = $$QMAKE_COPY
} else {
TRY_COPY = -$$QMAKE_COPY #makefile. or -\$\(COPY_FILE\)
}
for(f, plugin.files) {
plugin.commands += $$escape_expand(\\n\\t)$$TRY_COPY $$shell_path($$f) $$shell_path($$plugin.path)
}
#join values seperated by space. so quote is needed
#plugin.commands = $$join(plugin.commands,$$escape_expand(\\n\\t))
OTHER_FILES += $$qtav_qml.files
#just append as a string to $$QMAKE_POST_LINK
isEmpty(QMAKE_POST_LINK): QMAKE_POST_LINK = $$plugin.commands
else: QMAKE_POST_LINK = $${QMAKE_POST_LINK}$$escape_expand(\\n\\t)$$plugin.commands
#QMAKE_EXTRA_TARGETS = plugin
#POST_TARGETDEPS = plugin #vs, xcode does not support
#no write permision. do it in makefile
#mkpath($$[QT_INSTALL_QML]/QtAV)
#http://stackoverflow.com/questions/14260542/qmake-extra-compilers-processing-steps
#http://danny-pope.com/?p=86
#custom compiler: auto update if source is newer
# sa mkspecs/features/qml_plugin.prf
extra_copy.output = $$shell_path($$plugin.path)${QMAKE_FILE_BASE}${QMAKE_FILE_EXT}
# QMAKE_COPY_FILE, QMAKE_MKDIR_CMD ?
extra_copy.commands = $$TRY_COPY ${QMAKE_FILE_NAME} $$shell_path($$plugin.path)
#extra_copy.depends = $$EXTRA_COPY_FILES #.input is already the depends
extra_copy.input = EXTRA_COPY_FILES
extra_copy.CONFIG += no_link
extra_copy.variable_out = POST_TARGETDEPS
QMAKE_EXTRA_COMPILERS += extra_copy #
# CAN NOT put $$TARGET here otherwise may result in circular dependency.
# update EXTRA_COPY_FILES will result in target relink
EXTRA_COPY_FILES = $$qtav_qml.files
QMAKE_WRITE_DEFAULT_RC = 1
QMAKE_TARGET_COMPANY = "Shanghai University->S3 Graphics->Deepin | wbsecg1@gmail.com"
QMAKE_TARGET_DESCRIPTION = "QtAV QML module. QtAV Multimedia framework. http://qtav.org"
QMAKE_TARGET_COPYRIGHT = "Copyright (C) 2012-2015 WangBin, wbsecg1@gmail.com"
QMAKE_TARGET_PRODUCT = "QtAV QML"
SOURCES += \
plugin.cpp \
QQuickItemRenderer.cpp \
SGVideoNode.cpp \
QmlAVPlayer.cpp \
QuickSubtitle.cpp \
MediaMetaData.cpp \
QuickSubtitleItem.cpp \
QuickVideoPreview.cpp
HEADERS += \
QmlAV/QuickSubtitle.h \
QmlAV/QuickSubtitleItem.h \
QmlAV/QuickVideoPreview.h
SDK_HEADERS += \
QmlAV/Export.h \
QmlAV/MediaMetaData.h \
QmlAV/SGVideoNode.h \
QmlAV/QQuickItemRenderer.h \
QmlAV/QmlAVPlayer.h
HEADERS *= \
$$SDK_HEADERS
greaterThan(QT_MINOR_VERSION, 1) {
HEADERS += QmlAV/QuickFBORenderer.h
SOURCES += QuickFBORenderer.cpp
}
unix:!android:!mac {
#debian
qml_module_files = qmldir Video.qml plugins.qmltypes libQmlAV.so
DEB_INSTALL_LIST = $$join(qml_module_files, \\n.$$[QT_INSTALL_QML]/QtAV/, .$$[QT_INSTALL_QML]/QtAV/)
deb_install_list.target = qml-module-qtav.install
deb_install_list.commands = echo \"$$join(DEB_INSTALL_LIST, \\n)\" >$$PROJECTROOT/debian/$${deb_install_list.target}
QMAKE_EXTRA_TARGETS += deb_install_list
target.depends += $${deb_install_list.target}
}
target.path = $$[QT_INSTALL_QML]/QtAV
qtav_qml.path = $$[QT_INSTALL_QML]/QtAV
!contains(QMAKE_HOST.os, Windows):INSTALLS *= target qtav_qml
MODULE = QmlAV
!contains(QMAKE_HOST.os, Windows):include($$PROJECTROOT/deploy.pri)