4#ifndef QFFMPEGMEDIADATAHOLDER_P_H
5#define QFFMPEGMEDIADATAHOLDER_P_H
19#include <QtFFmpegMediaPluginImpl/private/qffmpegtime_p.h>
20#include <QtMultimedia/private/qplatformmediaplayer_p.h>
21#include <QtFFmpegMediaPluginImpl/private/qffmpeg_p.h>
23#include <QtMultimedia/private/qmultimediautils_p.h>
60 MediaDataHolder(AVFormatContextUPtr context,
const std::shared_ptr<ICancelToken> &cancelToken);
64 int activeTrack(QPlatformMediaPlayer::TrackType type)
const;
81 static Maybe create(
const QUrl &url, QIODevice *stream,
const QPlaybackOptions &options,
82 const std::shared_ptr<ICancelToken> &cancelToken);
84 bool setActiveTrack(QPlatformMediaPlayer::TrackType type,
int streamNumber);
87 void updateMetaData();
89 std::shared_ptr<ICancelToken> m_cancelToken;
92 AVFormatContextUPtr 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 void insertMediaData(QMediaMetaData &metaData, QPlatformMediaPlayer::TrackType trackType, const AVStream *stream)
static std::optional< TrackDuration > streamDuration(const AVStream &stream)
static QTransform displayMatrixToTransform(const int32_t *displayMatrix)
#define qCWarning(category,...)
#define qCDebug(category,...)
#define Q_STATIC_LOGGING_CATEGORY(name,...)
virtual bool isCancelled() const =0
virtual ~ICancelToken()=default