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
qffmpegtimecontroller_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
QFFMPEGTIMECONTROLLER_P_H
4
#
define
QFFMPEGTIMECONTROLLER_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
17
#
include
<
QtFFmpegMediaPluginImpl
/
private
/
qffmpegtime_p
.
h
>
18
19
#
include
<
chrono
>
20
#
include
<
optional
>
21
22
QT_BEGIN_NAMESPACE
23
24
namespace
QFFmpeg
{
25
26
class
TimeController
27
{
28
public
:
29
using
TimePoint
=
SteadyClock
::
time_point
;
30
using
PlaybackRate
=
float
;
31
32
TimeController
();
33
34
PlaybackRate
playbackRate
()
const
;
35
36
void
setPlaybackRate
(
PlaybackRate
playbackRate);
37
38
void
sync
(TrackPosition trackPos = TrackPosition(0));
39
40
void
sync
(TimePoint tp, TrackPosition pos);
41
42
void
syncSoft
(TimePoint tp, TrackPosition pos,
43
SteadyClock::duration fixingTime =
std
::
chrono
::
seconds
(4));
44
45
TrackPosition
currentPosition
(SteadyClock::duration offset =
SteadyClock
::
duration
{ 0 })
const
;
46
47
void
start
();
48
void
setPaused
(
bool
paused);
49
void
deactivate
();
50
51
TrackPosition
positionFromTime
(TimePoint tp,
bool
ignoreInactive =
false
)
const
;
52
53
TimePoint
timeFromPosition
(TrackPosition pos,
bool
ignoreInactive =
false
)
const
;
54
55
bool
isStarted
()
const
{
return
m_started; }
56
bool
isActive
()
const
{
return
m_active; }
57
58
private
:
59
struct
SoftSyncData
60
{
61
TimePoint srcTimePoint;
62
TrackPosition srcPosition = 0;
63
TimePoint dstTimePoint;
64
TrackDuration srcPosOffest = 0;
65
TrackPosition dstPosition = 0;
66
PlaybackRate
internalRate = 1;
67
};
68
69
void
updateActive();
70
71
SoftSyncData makeSoftSyncData(
const
TimePoint &srcTp,
const
TrackPosition &srcPos,
72
const
TimePoint &dstTp)
const
;
73
74
TrackPosition positionFromTimeInternal(
const
TimePoint &tp)
const
;
75
76
TimePoint timeFromPositionInternal(
const
TrackPosition &pos)
const
;
77
78
void
scrollTimeTillNow();
79
80
static
SteadyClock::duration toClockDuration(TrackDuration trackDuration,
81
PlaybackRate
rate = 1.f);
82
83
static
TrackDuration toTrackDuration(SteadyClock::duration clockDuration,
PlaybackRate
rate);
84
85
private
:
86
bool
m_paused =
true
;
87
bool
m_started =
false
;
88
bool
m_active =
false
;
// derived from m_paused and m_started
89
PlaybackRate
m_playbackRate = 1;
90
TrackPosition m_position = 0;
91
TimePoint m_timePoint;
92
std
::optional<SoftSyncData> m_softSyncData;
93
};
94
95
}
// namespace QFFmpeg
96
97
QT_END_NAMESPACE
98
99
#
endif
// QFFMPEGTIMECONTROLLER_P_H
QFFmpeg::TimeController
Definition
qffmpegtimecontroller_p.h:27
QFFmpeg::TimeController::start
void start()
Definition
qffmpegtimecontroller.cpp:62
QFFmpeg::TimeController::syncSoft
void syncSoft(TimePoint tp, TrackPosition pos, SteadyClock::duration fixingTime=std::chrono::seconds(4))
Definition
qffmpegtimecontroller.cpp:46
QFFmpeg::TimeController::playbackRate
PlaybackRate playbackRate() const
Definition
qffmpegtimecontroller.cpp:15
QFFmpeg::TimeController::isStarted
bool isStarted() const
Definition
qffmpegtimecontroller_p.h:55
QFFmpeg::TimeController::currentPosition
TrackPosition currentPosition(SteadyClock::duration offset=SteadyClock::duration{ 0 }) const
Definition
qffmpegtimecontroller.cpp:58
QFFmpeg::TimeController::TimeController
TimeController()
Definition
qffmpegtimecontroller.cpp:10
QFFmpeg::TimeController::PlaybackRate
float PlaybackRate
Definition
qffmpegtimecontroller_p.h:30
QFFmpeg::TimeController::isActive
bool isActive() const
Definition
qffmpegtimecontroller_p.h:56
QFFmpeg::TimeController::timeFromPosition
TimePoint timeFromPosition(TrackPosition pos, bool ignoreInactive=false) const
Definition
qffmpegtimecontroller.cpp:107
QFFmpeg::TimeController::positionFromTime
TrackPosition positionFromTime(TimePoint tp, bool ignoreInactive=false) const
Definition
qffmpegtimecontroller.cpp:92
QFFmpeg::TimeController::sync
void sync(TimePoint tp, TrackPosition pos)
Definition
qffmpegtimecontroller.cpp:39
QFFmpeg::TimeController::deactivate
void deactivate()
Definition
qffmpegtimecontroller.cpp:68
QFFmpeg::TimeController::setPlaybackRate
void setPlaybackRate(PlaybackRate playbackRate)
Definition
qffmpegtimecontroller.cpp:20
QFFmpeg::TimeController::setPaused
void setPaused(bool paused)
Definition
qffmpegtimecontroller.cpp:75
QFFmpeg::TimeController::sync
void sync(TrackPosition trackPos=TrackPosition(0))
Definition
qffmpegtimecontroller.cpp:34
QFFmpeg
Definition
qandroidcacertificates.cpp:26
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
qffmpegtimecontroller_p.h
Generated on
for Qt by
1.18.0