3#ifndef QFFMPEGRENDERER_P_H
4#define QFFMPEGRENDERER_P_H
84 template<
typename Output,
typename ChangeHandler>
90 auto doer = [desired, changeHandler, &actual]() {
91 const auto prev = std::exchange(actual, desired);
105 std::atomic<qint64> m_lastPosition = 0;
106 std::atomic<qint64> m_seekPos = 0;
110 std::atomic_bool m_isStepForced =
false;
111 std::optional<TimePoint> m_explicitNextFrameTime;
int timerInterval() const override
void onPauseChanged() override
void syncSoft(TimePoint tp, qint64 trackPos)
void doNextStep() override
TimeController::TimePoint TimePoint
virtual RenderingResult renderInternal(Frame frame)=0
void frameProcessed(Frame)
bool canDoNextStep() const override
TimeController::Clock Clock
void setPlaybackRate(float rate)
qint64 seekPosition() const
float playbackRate() const
std::chrono::microseconds frameDelay(const Frame &frame) const
virtual void onPlaybackRateChanged()
void onFinalFrameReceived()
void setOutputInternal(QPointer< Output > &actual, Output *desired, ChangeHandler &&changeHandler)
void changeRendererTime(std::chrono::microseconds offset)
void loopChanged(Id id, qint64 offset, int index)
qint64 lastPosition() const
bool isStepForced() const
Clock::time_point TimePoint
std::chrono::steady_clock Clock
QThread * thread() const
Returns the thread in which the object lives.
static QThread * currentThread()
Combined button and popup list for selecting options.
@ BlockingQueuedConnection
GLenum GLuint GLintptr offset
std::chrono::microseconds recheckInterval