3#ifndef QFFMPEGPLAYBACKENGINE_P_H
4#define QFFMPEGPLAYBACKENGINE_P_H
54#include <unordered_map>
127 template<
typename T,
typename... Args>
139 void createDemuxer();
143 template<
typename C,
typename Action>
144 void forEachExistingObject(Action &&action);
146 template<
typename Action>
147 void forEachExistingObject(Action &&action);
151 void recreateObjects();
153 void createObjectsIfNeeded();
155 void updateObjectsPausedState();
157 void deleteFreeThreads();
159 void onRendererSynchronized(
quint64 id, std::chrono::steady_clock::time_point
time,
162 void onRendererFinished();
166 void triggerStepIfNeeded();
172 bool hasMediaStream()
const;
176 void finalizeOutputs();
178 bool hasRenderer(
quint64 id)
const;
183 std::unordered_map<QString, std::unique_ptr<QThread>> m_threads;
184 bool m_threadsDirty =
false;
192 std::array<StreamPtr, QPlatformMediaPlayer::NTrackTypes> m_streams;
193 std::array<RendererPtr, QPlatformMediaPlayer::NTrackTypes> m_renderers;
200template<
typename T,
typename... Args>
\qmltype AudioOutput \instantiates QAudioOutput
The QAudioSink class provides an interface for sending audio data to an audio output device.
void setLoops(int loopsCount)
void setVideoSink(QVideoSink *sink)
void setState(QMediaPlayer::PlaybackState state)
virtual RendererPtr createRenderer(QPlatformMediaPlayer::TrackType trackType)
void setPlaybackRate(float rate)
ObjectPtr< T > createPlaybackEngineObject(Args &&...args)
void setAudioSink(QAudioOutput *output)
qint64 currentPosition(bool topPos=true) const
void errorOccured(int, const QString &)
ObjectPtr< Renderer > RendererPtr
bool setMedia(const QUrl &media, QIODevice *stream)
~PlaybackEngine() override
std::unique_ptr< T, ObjectDeleter > ObjectPtr
ObjectPtr< StreamDecoder > StreamPtr
void setActiveTrack(QPlatformMediaPlayer::TrackType type, int streamNumber)
void updateActiveAudioOutput(QAudioOutput *output)
void updateActiveVideoOutput(QVideoSink *sink, bool cleanOutput=false)
float playbackRate() const
\inmodule QtCore \reentrant
\macro QT_RESTRICTED_CAST_FROM_ASCII
The QVideoSink class represents a generic sink for video data.
Combined button and popup list for selecting options.
GLenum GLuint GLintptr offset
GLsizei GLenum GLboolean sink
unsigned long long quint64
QT_BEGIN_NAMESPACE typedef uchar * output
void operator()(PlaybackEngineObject *) const