![]() |
Qt 6.x
The Qt SDK
|
#include <qffmpegrenderer_p.h>
Classes | |
struct | RenderingResult |
Public Types | |
using | TimePoint = TimeController::TimePoint |
using | Clock = TimeController::Clock |
![]() | |
using | TimePoint = std::chrono::steady_clock::time_point |
using | TimePointOpt = std::optional< TimePoint > |
using | Id = quint64 |
Public Slots | |
void | onFinalFrameReceived () |
void | render (Frame) |
![]() | |
void | deleteLater () |
\threadsafe | |
Signals | |
void | frameProcessed (Frame) |
void | synchronized (Id id, TimePoint tp, qint64 pos) |
void | forceStepDone () |
void | loopChanged (Id id, qint64 offset, int index) |
![]() | |
void | atEnd () |
void | error (int code, const QString &errorString) |
![]() | |
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 | |
Renderer (const TimeController &tc, const std::chrono::microseconds &seekPosTimeOffset={}) | |
void | syncSoft (TimePoint tp, qint64 trackPos) |
qint64 | seekPosition () const |
qint64 | lastPosition () const |
void | setPlaybackRate (float rate) |
void | doForceStep () |
bool | isStepForced () const |
![]() | |
PlaybackEngineObject () | |
bool | isPaused () const |
bool | isAtEnd () const |
void | kill () |
void | setPaused (bool isPaused) |
Id | id () 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 . | |
Protected Member Functions | |
bool | setForceStepDone () |
void | onPauseChanged () override |
bool | canDoNextStep () const override |
virtual void | onPlaybackRateChanged () |
virtual RenderingResult | renderInternal (Frame frame)=0 |
float | playbackRate () const |
std::chrono::microseconds | frameDelay (const Frame &frame) const |
void | changeRendererTime (std::chrono::microseconds offset) |
template<typename Output , typename ChangeHandler > | |
void | setOutputInternal (QPointer< Output > &actual, Output *desired, ChangeHandler &&changeHandler) |
![]() | |
QTimer & | timer () |
void | scheduleNextStep (bool allowDoImmediatelly=true) |
virtual void | onPauseChanged () |
virtual bool | canDoNextStep () const |
virtual int | timerInterval () const |
void | setAtEnd (bool isAtEnd) |
virtual void | doNextStep () |
![]() | |
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) | |
Private Member Functions | |
void | doNextStep () override |
int | timerInterval () const override |
Additional Inherited Members | |
![]() | |
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) |
![]() | |
QScopedPointer< QObjectData > | d_ptr |
![]() | |
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 27 of file qffmpegrenderer_p.h.
Definition at line 32 of file qffmpegrenderer_p.h.
Definition at line 31 of file qffmpegrenderer_p.h.
QFFmpeg::Renderer::Renderer | ( | const TimeController & | tc, |
const std::chrono::microseconds & | seekPosTimeOffset = {} |
||
) |
Definition at line 13 of file qffmpegrenderer.cpp.
|
overrideprotectedvirtual |
Reimplemented from QFFmpeg::PlaybackEngineObject.
Definition at line 96 of file qffmpegrenderer.cpp.
References QFFmpeg::PlaybackEngineObject::canDoNextStep().
|
protected |
Definition at line 177 of file qffmpegrenderer.cpp.
References emit, QFFmpeg::PlaybackEngineObject::id(), now, pos, QFFmpeg::TimeController::positionFromTime(), and QFFmpeg::TimeController::sync().
Referenced by QFFmpeg::AudioRenderer::updateSynchronization().
void QFFmpeg::Renderer::doForceStep | ( | ) |
Definition at line 47 of file qffmpegrenderer.cpp.
References QMetaObject::invokeMethod(), QFFmpeg::PlaybackEngineObject::isAtEnd(), QFFmpeg::PlaybackEngineObject::scheduleNextStep(), and setForceStepDone().
|
overrideprivatevirtual |
Reimplemented from QFFmpeg::PlaybackEngineObject.
Definition at line 133 of file qffmpegrenderer.cpp.
References emit, frame, frameProcessed(), loopChanged(), QWidget::pos, renderInternal(), QFFmpeg::PlaybackEngineObject::scheduleNextStep(), QFFmpeg::PlaybackEngineObject::setAtEnd(), and setForceStepDone().
|
signal |
|
protected |
Definition at line 171 of file qffmpegrenderer.cpp.
References frame, and QFFmpeg::TimeController::timeFromPosition().
Referenced by QFFmpeg::AudioRenderer::updateSynchronization().
bool QFFmpeg::Renderer::isStepForced | ( | ) | const |
Definition at line 63 of file qffmpegrenderer.cpp.
qint64 QFFmpeg::Renderer::lastPosition | ( | ) | const |
Definition at line 33 of file qffmpegrenderer.cpp.
|
slot |
Definition at line 68 of file qffmpegrenderer.cpp.
References render().
|
overrideprotectedvirtual |
Reimplemented from QFFmpeg::PlaybackEngineObject.
Definition at line 90 of file qffmpegrenderer.cpp.
References QFFmpeg::PlaybackEngineObject::isPaused(), QFFmpeg::PlaybackEngineObject::onPauseChanged(), and QFFmpeg::TimeController::setPaused().
|
inlineprotectedvirtual |
Reimplemented in QFFmpeg::AudioRenderer.
Definition at line 68 of file qffmpegrenderer_p.h.
Referenced by setPlaybackRate().
|
protected |
Definition at line 101 of file qffmpegrenderer.cpp.
References QFFmpeg::TimeController::playbackRate().
Referenced by QFFmpeg::AudioRenderer::initResempler().
Definition at line 73 of file qffmpegrenderer.cpp.
References emit, frame, frameProcessed(), qCDebug, and QFFmpeg::PlaybackEngineObject::scheduleNextStep().
Referenced by onFinalFrameReceived().
|
protectedpure virtual |
Implemented in QFFmpeg::AudioRenderer, QFFmpeg::SubtitleRenderer, and QFFmpeg::VideoRenderer.
Referenced by doNextStep().
qint64 QFFmpeg::Renderer::seekPosition | ( | ) | const |
Definition at line 28 of file qffmpegrenderer.cpp.
|
protected |
Definition at line 123 of file qffmpegrenderer.cpp.
References emit, and forceStepDone().
Referenced by doForceStep(), and doNextStep().
|
inlineprotected |
Definition at line 85 of file qffmpegrenderer_p.h.
References Qt::AutoConnection, Qt::BlockingQueuedConnection, QThread::currentThread(), QMetaObject::invokeMethod(), and QObject::thread().
Referenced by QFFmpeg::AudioRenderer::setOutput(), QFFmpeg::SubtitleRenderer::setOutput(), and QFFmpeg::VideoRenderer::setOutput().
void QFFmpeg::Renderer::setPlaybackRate | ( | float | rate | ) |
Definition at line 38 of file qffmpegrenderer.cpp.
References QMetaObject::invokeMethod(), onPlaybackRateChanged(), QFFmpeg::PlaybackEngineObject::scheduleNextStep(), and QFFmpeg::TimeController::setPlaybackRate().
Definition at line 20 of file qffmpegrenderer.cpp.
References QMetaObject::invokeMethod(), QFFmpeg::PlaybackEngineObject::scheduleNextStep(), and QFFmpeg::TimeController::syncSoft().
|
overrideprivatevirtual |
Reimplemented from QFFmpeg::PlaybackEngineObject.
Definition at line 106 of file qffmpegrenderer.cpp.
References frame, and QFFmpeg::TimeController::timeFromPosition().