Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qffmpegstreamdecoder_p.h
Go to the documentation of this file.
1
// Copyright (C) 2021 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
#
ifndef
QFFMPEGSTREAMDECODER_P_H
4
#
define
QFFMPEGSTREAMDECODER_P_H
5
6
//
7
// W A R N I N G
8
// -------------
9
//
10
// This file is not part of the Qt API. It exists purely as an
11
// implementation detail. This header file may change from version to
12
// version without notice, or even be removed.
13
//
14
// We mean it.
15
//
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
>
22
23
#
include
<
QtCore
/
qqueue
.
h
>
24
25
QT_BEGIN_NAMESPACE
26
27
namespace
QFFmpeg
{
28
29
class
StreamDecoder
:
public
PlaybackEngineObject
30
{
31
Q_OBJECT
32
public
:
33
using
TrackType
=
QPlatformMediaPlayer
::
TrackType
;
34
35
StreamDecoder
(
const
PlaybackEngineObjectID &id,
const
CodecContext &codecContext,
36
TrackPosition absSeekPos);
37
38
~
StreamDecoder
()
override
;
39
40
void
seek
(quint64 sessionID, TrackPosition pos,
const
LoopOffset &offset);
41
42
TrackType
trackType
()
const
;
43
44
// Maximum number of frames that we are allowed to keep in render queue
45
static
qint32
maxQueueSize
(TrackType type);
46
47
public
Q_SLOTS
:
48
49
void
decode
(
Packet
);
50
51
void
onFinalPacketReceived
(PlaybackEngineObjectID sourceID);
52
53
void
onFrameProcessed
(
const
Frame &frame);
54
55
Q_SIGNALS
:
56
void
requestHandleFrame
(
Frame
frame
);
57
58
void
packetProcessed
(
Packet
);
59
60
protected
:
61
bool
canDoNextStep
()
const
override
;
62
63
void
doNextStep
()
override
;
64
65
private
:
66
void
decodeMedia(
const
Packet &packet);
67
68
void
decodeSubtitle(
const
Packet &packet);
69
70
void
onFrameFound(
const
Frame &frame);
71
72
int
sendAVPacket(
const
Packet &packet);
73
74
void
receiveAVFrames(
bool
flushPacket =
false
);
75
76
private
:
77
CodecContext m_codecContext;
78
79
const
TrackType m_trackType;
80
81
struct
SessionContext
82
{
83
TrackPosition absSeekPos = TrackPosition(0);
84
qint32 pendingFramesCount = 0;
85
LoopOffset offset = {};
86
QQueue<Packet> packets = {};
87
};
88
89
SessionContext m_sessionCtx;
90
};
91
92
QString
subtitleTextFromAVSubtitle
(
const
AVSubtitle &subtitle);
93
94
}
// namespace QFFmpeg
95
96
QT_END_NAMESPACE
97
98
#
endif
// QFFMPEGSTREAMDECODER_P_H
QFFmpeg::StreamDecoder
Definition
qffmpegstreamdecoder_p.h:30
QFFmpeg::StreamDecoder::canDoNextStep
bool canDoNextStep() const override
Definition
qffmpegstreamdecoder.cpp:124
QFFmpeg::StreamDecoder::~StreamDecoder
~StreamDecoder() override
Definition
qffmpegstreamdecoder.cpp:30
QFFmpeg::StreamDecoder::StreamDecoder
StreamDecoder(const PlaybackEngineObjectID &id, const CodecContext &codecContext, TrackPosition absSeekPos)
Definition
qffmpegstreamdecoder.cpp:19
QFFmpeg::StreamDecoder::doNextStep
void doNextStep() override
Definition
qffmpegstreamdecoder.cpp:62
QFFmpeg::StreamDecoder::onFrameProcessed
void onFrameProcessed(const Frame &frame)
Definition
qffmpegstreamdecoder.cpp:113
QFFmpeg::StreamDecoder::onFinalPacketReceived
void onFinalPacketReceived(PlaybackEngineObjectID sourceID)
Definition
qffmpegstreamdecoder.cpp:43
QFFmpeg::StreamDecoder::packetProcessed
void packetProcessed(Packet)
QFFmpeg::StreamDecoder::maxQueueSize
static qint32 maxQueueSize(TrackType type)
Definition
qffmpegstreamdecoder.cpp:98
QFFmpeg::StreamDecoder::trackType
TrackType trackType() const
Definition
qffmpegstreamdecoder.cpp:93
QFFmpeg::StreamDecoder::seek
void seek(quint64 sessionID, TrackPosition pos, const LoopOffset &offset)
Definition
qffmpegstreamdecoder.cpp:35
QFFmpeg
Definition
qandroidcacertificates.cpp:26
QFFmpeg::subtitleTextFromAVSubtitle
QString subtitleTextFromAVSubtitle(const AVSubtitle &subtitle)
Definition
qffmpegstreamdecoder.cpp:265
QFFmpeg::extractSubtitleText
static QString extractSubtitleText(const AVSubtitleRect &r)
Definition
qffmpegstreamdecoder.cpp:248
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
std
[33]
Definition
src_corelib_tools_qhash.cpp:421
qtmultimedia
src
plugins
multimedia
ffmpeg
playbackengine
qffmpegstreamdecoder_p.h
Generated on
for Qt by
1.18.0