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>
61 MediaDataHolder(AVFormatContextUPtr context,
const std::shared_ptr<ICancelToken> &cancelToken);
65 int activeTrack(QPlatformMediaPlayer::TrackType type)
const;
82 static Maybe create(
const QUrl &url, QIODevice *stream,
const QPlaybackOptions &options,
83 const std::shared_ptr<ICancelToken> &cancelToken);
85 bool setActiveTrack(QPlatformMediaPlayer::TrackType type,
int streamNumber);
88 void updateMetaData();
90 std::shared_ptr<ICancelToken> m_cancelToken;
93 AVFormatContextUPtr m_context;
95 bool m_isSeekable =
false;
97 StreamIndexes m_currentAVStreamIndex = { -1, -1, -1 };
98 StreamsMap m_streamMap;
99 StreamIndexes m_requestedStreams = { -1, -1, -1 };
101 QMediaMetaData m_metaData;
102 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)
std::conditional_t< QT_FFMPEG_AVIO_WRITE_CONST, const uint8_t *, uint8_t * > AvioWriteBufferType
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