4#ifndef QFFMPEGMEDIADATAHOLDER_P_H
5#define QFFMPEGMEDIADATAHOLDER_P_H
18#include <QtCore/private/qexpected_p.h>
19#include <QtMultimedia/qmediametadata.h>
20#include <QtMultimedia/qvideoframe.h>
21#include <QtMultimedia/private/qplatformmediaplayer_p.h>
22#include <QtMultimedia/private/qmultimediautils_p.h>
23#include <QtFFmpegMediaPluginImpl/private/qffmpegtime_p.h>
24#include <QtFFmpegMediaPluginImpl/private/qffmpeg_p.h>
60 MediaDataHolder(AVDemuxerContextUPtr context,
const std::shared_ptr<ICancelToken> &cancelToken);
81 static Maybe create(
const QUrl &url, QIODevice *stream,
const QPlaybackOptions &options,
82 const std::shared_ptr<ICancelToken> &cancelToken);
87 void updateMetaData();
89 std::shared_ptr<ICancelToken> m_cancelToken;
92 AVDemuxerContextUPtr m_context;
94 bool m_isSeekable =
false;
96 StreamIndexes m_currentAVStreamIndex = { -1, -1, -1 };
97 StreamsMap m_streamMap;
98 StreamIndexes m_requestedStreams = { -1, -1, -1 };
100 QMediaMetaData m_metaData;
101 std::optional<QImage> m_cachedThumbnail;
static VideoTransformation streamTransformation(const AVStream *stream)
static bool colorTransferSupportsHdr(const AVStream *stream)
static std::optional< TrackDuration > streamDuration(const AVStream &stream)
static void insertMediaData(QMediaMetaData &metaData, TrackType trackType, const AVStream *stream)
static QTransform displayMatrixToTransform(const int32_t *displayMatrix)
static std::optional< TrackPosition > streamStart(const AVStream &stream, const AVDemuxerContextUPtr &context)
Combined button and popup list for selecting options.
virtual bool isCancelled() const =0
virtual ~ICancelToken()=default