mirror of
https://github.com/wang-bin/QtAV.git
synced 2026-10-17 04:31:08 +08:00
1f53443c8f
Changelog - Improve seek speed, fix drop too much frames after seek - VideoFrameExtractor: seek faster if called many times. Speed up progress bar preview - Support media files from android assets. Use protocol 'assets:' - Apply video decoder options when playing - Better iOS support - VideoToolbox: * Check profile to avoid crash * Support RGB output * Use `rgb422_apple` texture * Support iOS 0-copy rendering using OpenGLES * More interop types for OSX and iOS - OpenGL * Use 16bit depth textures for >8bit videos (e.g. 10bit) if possible * Correct input/output color range. This fixes QtAV video different from other players * Fix high opengl and core profile rendering * Better EGL detection - VO: * Simplify signal emitting * Support background color, simplify background painting * VideoOutput delete crash, resize issues * Improve performance of QPainter based renderers - AudioOutput: * remove setBufferSize, add a better API setBufferSamples * Add flush(), clear(). Not implemented for backends. * Fix OpenAL playback for some audio formats * Dynamic load OpenAL by default except iOS * Add AudioToolbox support for OSX/iOS and becomes the default backend * PulseAudio: workaround noise for multiple instance - Subtitle: * Support ass font files in android assets * Fix srt decoding - QML: * Add QtMultimedia compatible APIs VideoOutput.contentRect/sourceRect - Simplify SurfaceType - Fix strange behaviors near eof: seek, stepForward, exit etc. - Fix playback block if audio duration is shorter than video - VideoFrame constructed from QImage takes image's ownership - Add VideoFrame.colorRange, AudioFrame.duration - encoder: support start time - Add AVPlayer.bufferSpeed, seekFinished(qint64) - Fix abort when loading - Examples: * Fix videos in videowall not synchronized * QMLPlayer has better touch screen experience * QMLPlayer supports win10 store (But Qt is not well supported) * Drag & Drop support on OSX * URL open dialog for QMLPlayer
60 lines
2.4 KiB
C++
60 lines
2.4 KiB
C++
/******************************************************************************
|
|
QtAV: Media play library based on Qt and FFmpeg
|
|
Copyright (C) 2012-2016 Wang Bin <wbsecg1@gmail.com>
|
|
|
|
* This file is part of QtAV (from 2013)
|
|
|
|
This library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Lesser General Public
|
|
License as published by the Free Software Foundation; either
|
|
version 2.1 of the License, or (at your option) any later version.
|
|
|
|
This library is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Lesser General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Lesser General Public
|
|
License along with this library; if not, write to the Free Software
|
|
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
******************************************************************************/
|
|
|
|
#include <QtQml/QQmlExtensionPlugin>
|
|
#include <QtQml/qqml.h>
|
|
#include "QmlAV/QQuickItemRenderer.h"
|
|
#include "QmlAV/QmlAVPlayer.h"
|
|
#include "QmlAV/QuickSubtitle.h"
|
|
#include "QmlAV/QuickSubtitleItem.h"
|
|
#include "QmlAV/MediaMetaData.h"
|
|
#include "QmlAV/QuickVideoPreview.h"
|
|
#if QT_VERSION >= QT_VERSION_CHECK(5, 2, 0)
|
|
#include "QmlAV/QuickFBORenderer.h"
|
|
#endif
|
|
|
|
namespace QtAV {
|
|
|
|
class QtAVQmlPlugin : public QQmlExtensionPlugin
|
|
{
|
|
Q_OBJECT
|
|
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
|
|
public:
|
|
void registerTypes(const char *uri)
|
|
{
|
|
Q_ASSERT(QLatin1String(uri) == QLatin1String("QtAV"));
|
|
qmlRegisterType<QQuickItemRenderer>(uri, 1, 3, "VideoOutput");
|
|
qmlRegisterType<QmlAVPlayer>(uri, 1, 3, "AVPlayer");
|
|
qmlRegisterType<QmlAVPlayer>(uri, 1, 3, "MediaPlayer");
|
|
qmlRegisterType<QuickSubtitle>(uri, 1, 4, "Subtitle");
|
|
qmlRegisterType<QuickSubtitleItem>(uri, 1, 4, "SubtitleItem");
|
|
qmlRegisterType<QuickVideoPreview>(uri, 1, 4, "VideoPreview");
|
|
#if QT_VERSION >= QT_VERSION_CHECK(5, 2, 0)
|
|
qmlRegisterType<QuickFBORenderer>(uri, 1, 5, "VideoOutput2");
|
|
#endif
|
|
qmlRegisterUncreatableType<VideoCapture>(uri, 1, 6, "VideoCapture", trUtf8("VideoCapture is provided by MediaPlayer"));
|
|
qmlRegisterType<MediaMetaData>();
|
|
}
|
|
};
|
|
} //namespace QtAV
|
|
|
|
#include "plugin.moc"
|