3#ifndef QFFMPEGSTREAMDECODER_P_H
4#define QFFMPEGSTREAMDECODER_P_H
16#include <QtFFmpegMediaPluginImpl/private/qffmpeg_p.h>
17#include <QtFFmpegMediaPluginImpl/private/qffmpegplaybackengineobject_p.h>
18#include <QtFFmpegMediaPluginImpl/private/qffmpegframe_p.h>
19#include <QtFFmpegMediaPluginImpl/private/qffmpegpacket_p.h>
20#include <QtFFmpegMediaPluginImpl/private/qffmpegplaybackutils_p.h>
21#include <QtMultimedia/private/qplatformmediaplayer_p.h>
23#include <QtCore/qqueue.h>
38 void seek(quint64 sessionID, TrackPosition pos,
const LoopOffset &offset);
64 void decodeMedia(
const Packet &packet);
66 void decodeSubtitle(
const Packet &packet);
68 void onFrameFound(
const Frame &frame);
70 int sendAVPacket(
const Packet &packet);
72 void receiveAVFrames(
bool flushPacket =
false);
75 CodecContext m_codecContext;
77 const QPlatformMediaPlayer::TrackType m_trackType;
81 TrackPosition absSeekPos = TrackPosition(0);
82 qint32 pendingFramesCount = 0;
83 LoopOffset offset = {};
84 QQueue<Packet> packets = {};
87 SessionContext m_sessionCtx;
bool canDoNextStep() const override
~StreamDecoder() override
static qint32 maxQueueSize(QPlatformMediaPlayer::TrackType type)
void doNextStep() override
void onFrameProcessed(const Frame &frame)
void onFinalPacketReceived(PlaybackEngineObjectID sourceID)
void packetProcessed(Packet)
void seek(quint64 sessionID, TrackPosition pos, const LoopOffset &offset)
QPlatformMediaPlayer::TrackType trackType() const
QT_MANGLE_NAMESPACE(QMacScreenCaptureStreamDelegate) QMacScreenCaptureStreamDelegate
QString subtitleTextFromAVSubtitle(const AVSubtitle &subtitle)
static QString extractSubtitleText(const AVSubtitleRect &r)
Combined button and popup list for selecting options.