4#ifndef QGSTREAMERMEDIAPLAYER_P_H
5#define QGSTREAMERMEDIAPLAYER_P_H
18#include <QtCore/qstack.h>
19#include <private/qplatformmediaplayer_p.h>
20#include <private/qtmultimediaglobal_p.h>
21#include <private/qmultimediautils_p.h>
26#include <QtCore/qtimer.h>
77 void pause()
override;
96 void removeInputPad(
QGstPad pad);
97 void removeAllInputPads();
99 int activeInputIndex()
const {
return isConnected ? tracks.
indexOf(activeInputPad()) : -1; }
105 int trackCount()
const {
return tracks.
count(); }
109 QList<QGstPad> tracks;
110 bool isConnected =
false;
116 void disconnectDecoderHandlers();
117 static void uridecodebinElementAddedCallback(GstElement *uridecodebin, GstElement *
child,
119 static void sourceSetupCallback(GstElement *uridecodebin, GstElement *
source,
121 static void unknownTypeCallback(GstElement *decodebin, GstPad *pad, GstCaps *caps,
123 static void decodebinElementAddedCallback(GstBin *decodebin, GstBin *sub_bin,
125 static void decodebinElementRemovedCallback(GstBin *decodebin, GstBin *sub_bin,
128 void parseStreamsAndMetadata();
129 void connectOutput(TrackSelector &ts);
130 void removeOutput(TrackSelector &ts);
131 void removeDynamicPipelineElements();
132 void removeAllOutputs();
133 void stopOrEOS(
bool eos);
134 bool canTrackProgress()
const {
return decodeBinQueues > 0; }
135 void detectPipelineIsSeekable();
137 std::array<TrackSelector, NTrackTypes> trackSelectors;
142 int m_bufferProgress = 0;
146 enum class ResourceErrorState : uint8_t {
152 bool prerolling =
false;
153 bool m_requiresSeekOnPlay =
false;
154 bool m_initialBufferProgressSent =
false;
155 ResourceErrorState m_resourceErrorState = ResourceErrorState::NoError;
157 QTimer positionUpdateTimer;
173 QHash<QByteArray, QGstPad> decoderOutputMap;
184 int decodeBinQueues = 0;
QGstObject getObject(const char *property) const
void set(const char *property, const char *str)
\inmodule QtCore \reentrant
qsizetype count() const noexcept
The QNetworkAccessManager class allows the application to send network requests and receive replies.
QObject * parent() const
Returns a pointer to the parent object.
The QVideoSink class represents a generic sink for video data.
Combined button and popup list for selecting options.
n void setPosition(void) \n\
GLuint GLsizei const GLchar * message
GLsizei GLsizei GLchar * source
GLsizei GLenum GLboolean sink
GLenum GLenum GLenum input
QT_BEGIN_NAMESPACE typedef uchar * output
qsizetype indexOf(const AT &t, qsizetype from=0) const noexcept