Files
QtAV/qml/plugin.cpp
wang-bin 1f53443c8f version 1.10.0
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
2016-03-02 15:26:03 +08:00

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"