![]() |
Qt 6.x
The Qt SDK
|
#include <qffmpegplaybackengine_p.h>
Classes | |
struct | ObjectDeleter |
Signals | |
void | endOfStream () |
void | errorOccured (int, const QString &) |
void | loopChanged () |
![]() | |
void | destroyed (QObject *=nullptr) |
This signal is emitted immediately before the object obj is destroyed, after any instances of QPointer have been notified, and cannot be blocked. | |
void | objectNameChanged (const QString &objectName, QPrivateSignal) |
This signal is emitted after the object's name has been changed. | |
Public Member Functions | |
PlaybackEngine () | |
~PlaybackEngine () override | |
bool | setMedia (const QUrl &media, QIODevice *stream) |
void | setVideoSink (QVideoSink *sink) |
void | setAudioSink (QAudioOutput *output) |
void | setAudioSink (QPlatformAudioOutput *output) |
void | setState (QMediaPlayer::PlaybackState state) |
void | play () |
void | pause () |
void | stop () |
void | seek (qint64 pos) |
void | setLoops (int loopsCount) |
void | setPlaybackRate (float rate) |
float | playbackRate () const |
void | setActiveTrack (QPlatformMediaPlayer::TrackType type, int streamNumber) |
qint64 | currentPosition (bool topPos=true) const |
int | activeTrack (QPlatformMediaPlayer::TrackType type) const |
![]() | |
Q_INVOKABLE | QObject (QObject *parent=nullptr) |
Constructs an object with parent object parent. | |
virtual | ~QObject () |
Destroys the object, deleting all its child objects. | |
virtual bool | event (QEvent *event) |
This virtual function receives events to an object and should return true if the event e was recognized and processed. | |
virtual bool | eventFilter (QObject *watched, QEvent *event) |
Filters events if this object has been installed as an event filter for the watched object. | |
QString | objectName () const |
Q_WEAK_OVERLOAD void | setObjectName (const QString &name) |
Sets the object's name to name. | |
void | setObjectName (QAnyStringView name) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
QBindable< QString > | bindableObjectName () |
bool | isWidgetType () const |
Returns true if the object is a widget; otherwise returns false . | |
bool | isWindowType () const |
Returns true if the object is a window; otherwise returns false . | |
bool | isQuickItemType () const |
Returns true if the object is a QQuickItem; otherwise returns false . | |
bool | signalsBlocked () const noexcept |
Returns true if signals are blocked; otherwise returns false . | |
bool | blockSignals (bool b) noexcept |
If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it). | |
QThread * | thread () const |
Returns the thread in which the object lives. | |
void | moveToThread (QThread *thread) |
Changes the thread affinity for this object and its children. | |
int | startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer) |
This is an overloaded function that will start a timer of type timerType and a timeout of interval milliseconds. | |
int | startTimer (std::chrono::milliseconds time, Qt::TimerType timerType=Qt::CoarseTimer) |
void | killTimer (int id) |
Kills the timer with timer identifier, id. | |
template<typename T > | |
T | findChild (const QString &aName=QString(), Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
Returns the child of this object that can be cast into type T and that is called name, or \nullptr if there is no such object. | |
template<typename T > | |
QList< T > | findChildren (const QString &aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects. | |
template<typename T > | |
QList< T > | findChildren (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
const QObjectList & | children () const |
Returns a list of child objects. | |
void | setParent (QObject *parent) |
Makes the object a child of parent. | |
void | installEventFilter (QObject *filterObj) |
Installs an event filter filterObj on this object. | |
void | removeEventFilter (QObject *obj) |
Removes an event filter object obj from this object. | |
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const |
bool | disconnect (const char *signal=nullptr, const QObject *receiver=nullptr, const char *member=nullptr) const |
bool | disconnect (const QObject *receiver, const char *member=nullptr) const |
void | dumpObjectTree () const |
Dumps a tree of children to the debug output. | |
void | dumpObjectInfo () const |
Dumps information about signal connections, etc. | |
bool | setProperty (const char *name, const QVariant &value) |
Sets the value of the object's name property to value. | |
bool | setProperty (const char *name, QVariant &&value) |
QVariant | property (const char *name) const |
Returns the value of the object's name property. | |
QList< QByteArray > | dynamicPropertyNames () const |
QBindingStorage * | bindingStorage () |
const QBindingStorage * | bindingStorage () const |
QObject * | parent () const |
Returns a pointer to the parent object. | |
bool | inherits (const char *classname) const |
Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false . | |
![]() | |
int | activeTrack (QPlatformMediaPlayer::TrackType type) const |
const QList< StreamInfo > & | streamInfo (QPlatformMediaPlayer::TrackType trackType) const |
qint64 | duration () const |
const QMediaMetaData & | metaData () const |
bool | isSeekable () const |
Protected Types | |
template<typename T > | |
using | ObjectPtr = std::unique_ptr< T, ObjectDeleter > |
using | RendererPtr = ObjectPtr< Renderer > |
using | StreamPtr = ObjectPtr< StreamDecoder > |
Protected Member Functions | |
template<typename T , typename... Args> | |
ObjectPtr< T > | createPlaybackEngineObject (Args &&...args) |
virtual RendererPtr | createRenderer (QPlatformMediaPlayer::TrackType trackType) |
void | updateActiveAudioOutput (QAudioOutput *output) |
void | updateActiveVideoOutput (QVideoSink *sink, bool cleanOutput=false) |
![]() | |
QObject * | sender () const |
Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns \nullptr. | |
int | senderSignalIndex () const |
int | receivers (const char *signal) const |
Returns the number of receivers connected to the signal. | |
bool | isSignalConnected (const QMetaMethod &signal) const |
virtual void | timerEvent (QTimerEvent *event) |
This event handler can be reimplemented in a subclass to receive timer events for the object. | |
virtual void | childEvent (QChildEvent *event) |
This event handler can be reimplemented in a subclass to receive child events. | |
virtual void | customEvent (QEvent *event) |
This event handler can be reimplemented in a subclass to receive custom events. | |
virtual void | connectNotify (const QMetaMethod &signal) |
virtual void | disconnectNotify (const QMetaMethod &signal) |
QObject (QObjectPrivate &dd, QObject *parent=nullptr) | |
![]() | |
std::optional< ContextError > | recreateAVFormatContext (const QUrl &media, QIODevice *stream) |
void | updateStreams () |
void | updateMetaData () |
bool | setActiveTrack (QPlatformMediaPlayer::TrackType type, int streamNumber) |
Additional Inherited Members | |
![]() | |
using | StreamsMap = std::array< QList< StreamInfo >, QPlatformMediaPlayer::NTrackTypes > |
using | StreamIndexes = std::array< int, QPlatformMediaPlayer::NTrackTypes > |
![]() | |
void | deleteLater () |
\threadsafe | |
![]() | |
static QMetaObject::Connection | connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection) |
\threadsafe | |
static QMetaObject::Connection | connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection) |
template<typename Func1 , typename Func2 > | |
static QMetaObject::Connection | connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::ContextTypeForFunctor< Func2 >::ContextType *context, Func2 &&slot, Qt::ConnectionType type=Qt::AutoConnection) |
template<typename Func1 , typename Func2 > | |
static QMetaObject::Connection | connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, Func2 &&slot) |
static bool | disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member) |
\threadsafe | |
static bool | disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member) |
static bool | disconnect (const QMetaObject::Connection &) |
Disconnect a connection. | |
template<typename Func1 , typename Func2 > | |
static bool | disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiver, Func2 slot) |
template<typename Func1 > | |
static bool | disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *receiver, void **zero) |
![]() | |
static QPlatformMediaPlayer::TrackType | trackTypeFromMediaType (int mediaType) |
![]() | |
QScopedPointer< QObjectData > | d_ptr |
![]() | |
std::unique_ptr< AVFormatContext, AVFormatContextDeleter > | m_context |
bool | m_isSeekable = false |
StreamIndexes | m_currentAVStreamIndex = { { -1, -1, -1 } } |
StreamsMap | m_streamMap |
StreamIndexes | m_requestedStreams = { { -1, -1, -1 } } |
qint64 | m_duration = 0 |
QMediaMetaData | m_metaData |
![]() | |
QString | objectName |
the name of this object | |
![]() | |
template< class T > T | qobject_cast (const QObject *object) |
Returns the given object cast to type T if the object is of type T (or of a subclass); otherwise returns \nullptr. | |
template< typename T > T | qFindChildqFindChildren (const QObject *obj, const QString &name)() |
template< typename T > QList< T > | qFindChildrenqFindChildren (const QObject *obj, const QString &name)() |
QObjectList | |
\macro Q_CLASSINFO(Name, Value) | |
Definition at line 66 of file qffmpegplaybackengine_p.h.
|
protected |
Definition at line 122 of file qffmpegplaybackengine_p.h.
|
protected |
Definition at line 124 of file qffmpegplaybackengine_p.h.
|
protected |
Definition at line 125 of file qffmpegplaybackengine_p.h.
QFFmpeg::PlaybackEngine::PlaybackEngine | ( | ) |
Definition at line 41 of file qffmpegplaybackengine.cpp.
|
override |
Definition at line 51 of file qffmpegplaybackengine.cpp.
References qCDebug.
int QFFmpeg::MediaDataHolder::activeTrack | ( | QPlatformMediaPlayer::TrackType | type | ) | const |
|
protected |
Definition at line 201 of file qffmpegplaybackengine_p.h.
References args.
|
protectedvirtual |
Definition at line 199 of file qffmpegplaybackengine.cpp.
References QPlatformMediaPlayer::AudioStream, QPlatformMediaPlayer::SubtitleStream, and QPlatformMediaPlayer::VideoStream.
qint64 QFFmpeg::PlaybackEngine::currentPosition | ( | bool | topPos = true | ) | const |
Definition at line 489 of file qffmpegplaybackengine.cpp.
References QFFmpeg::TimeController::currentPosition(), QFFmpeg::MediaDataHolder::duration(), i, pos, QFFmpeg::LoopOffset::pos, qBound(), renderer, and QPlatformMediaPlayer::SubtitleStream.
|
signal |
Referenced by setMedia(), and QFFmpegMediaPlayer::setMedia().
|
signal |
|
inline |
Definition at line 87 of file qffmpegplaybackengine_p.h.
References QMediaPlayer::PausedState, and setState().
|
inline |
Definition at line 84 of file qffmpegplaybackengine_p.h.
References QMediaPlayer::PlayingState, and setState().
float QFFmpeg::PlaybackEngine::playbackRate | ( | ) | const |
Definition at line 296 of file qffmpegplaybackengine.cpp.
References QFFmpeg::TimeController::playbackRate().
Referenced by setPlaybackRate().
Definition at line 239 of file qffmpegplaybackengine.cpp.
References QFFmpeg::MediaDataHolder::duration(), pos, QFFmpeg::LoopOffset::pos, qBound(), QFFmpeg::TimeController::setPaused(), and QFFmpeg::TimeController::sync().
void QFFmpeg::PlaybackEngine::setActiveTrack | ( | QPlatformMediaPlayer::TrackType | type, |
int | streamNumber | ||
) |
Definition at line 513 of file qffmpegplaybackengine.cpp.
References QFFmpeg::MediaDataHolder::setActiveTrack().
void QFFmpeg::PlaybackEngine::setAudioSink | ( | QAudioOutput * | output | ) |
Definition at line 475 of file qffmpegplaybackengine.cpp.
References output, and updateActiveAudioOutput().
Referenced by setAudioSink().
void QFFmpeg::PlaybackEngine::setAudioSink | ( | QPlatformAudioOutput * | output | ) |
Definition at line 471 of file qffmpegplaybackengine.cpp.
References output, and setAudioSink().
void QFFmpeg::PlaybackEngine::setLoops | ( | int | loopsCount | ) |
Definition at line 249 of file qffmpegplaybackengine.cpp.
References QFFmpeg::LoopOffset::index, QFFmpeg::MediaDataHolder::isSeekable(), qCDebug, and qWarning.
Definition at line 443 of file qffmpegplaybackengine.cpp.
References emit, error, errorOccured(), QFFmpeg::MediaDataHolder::recreateAVFormatContext(), and stop().
void QFFmpeg::PlaybackEngine::setPlaybackRate | ( | float | rate | ) |
Definition at line 288 of file qffmpegplaybackengine.cpp.
References playbackRate(), renderer, and QFFmpeg::TimeController::setPlaybackRate().
void QFFmpeg::PlaybackEngine::setState | ( | QMediaPlayer::PlaybackState | state | ) |
Definition at line 123 of file qffmpegplaybackengine.cpp.
References QFFmpeg::MediaDataHolder::m_context, state, and QMediaPlayer::StoppedState.
Referenced by pause(), play(), and stop().
void QFFmpeg::PlaybackEngine::setVideoSink | ( | QVideoSink * | sink | ) |
Definition at line 457 of file qffmpegplaybackengine.cpp.
References updateActiveVideoOutput().
|
inline |
Definition at line 90 of file qffmpegplaybackengine_p.h.
References setState(), and QMediaPlayer::StoppedState.
Referenced by setMedia().
|
protected |
Definition at line 549 of file qffmpegplaybackengine.cpp.
References QPlatformMediaPlayer::AudioStream, get(), output, and renderer.
Referenced by setAudioSink().
|
protected |
Definition at line 556 of file qffmpegplaybackengine.cpp.
References get(), renderer, QPlatformMediaPlayer::SubtitleStream, and QPlatformMediaPlayer::VideoStream.
Referenced by setVideoSink().