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
qffmpegresampler_p.h
Go to the documentation of this file.
1
// Copyright (C) 2022 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
QFFMPEGRESAMPLER_P_H
4
#
define
QFFMPEGRESAMPLER_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
"qaudiobuffer.h"
18
#
include
<
QtFFmpegMediaPluginImpl
/
private
/
qffmpeg_p
.
h
>
19
#
include
<
QtMultimedia
/
private
/
qplatformaudioresampler_p
.
h
>
20
21
QT_BEGIN_NAMESPACE
22
23
namespace
QFFmpeg
24
{
25
class
CodecContext
;
26
}
// namespace QFFmpeg
27
28
class
QFFmpegResampler
:
public
QPlatformAudioResampler
29
{
30
QFFmpegResampler(
const
QAudioFormat
&inputFormat,
const
QAudioFormat
&outputFormat,
31
qint64 startTime);
32
QFFmpegResampler(
const
QFFmpeg
::
CodecContext
*codecContext,
const
QAudioFormat
&outputFormat,
33
qint64 startTime);
34
35
template
<
typename
... Args>
36
static
std::unique_ptr<QFFmpegResampler> createImpl(Args...);
37
38
public
:
39
static
std
::
unique_ptr
<
QFFmpegResampler
>
createFromInputFormat
(
const
QAudioFormat
&input,
40
const
QAudioFormat
&output,
41
qint64 startTime = 0);
42
static
std
::
unique_ptr
<
QFFmpegResampler
>
createFromCodecContext
(
const
QFFmpeg
::
CodecContext
*,
43
const
QAudioFormat
&output,
44
qint64 startTime = 0);
45
46
~
QFFmpegResampler
()
override
;
47
48
bool
isInitialized
()
const
;
49
50
QAudioBuffer
resample
(
const
char
*data, size_t size)
override
;
51
52
QAudioBuffer
resample
(
const
AVFrame *frame);
53
54
qint64
samplesProcessed
()
const
{
return
m_samplesProcessed; }
55
void
setSampleCompensation
(qint32 delta, quint32 distance);
56
qint32
activeSampleCompensationDelta
()
const
;
57
58
private
:
59
int
adjustMaxOutSamples(
int
inputSamplesCount);
60
61
QAudioBuffer resample(
const
uint8_t **inputData,
int
inputSamplesCount);
62
63
private
:
64
QAudioFormat
m_inputFormat;
65
QAudioFormat
m_outputFormat;
66
qint64 m_startTime = 0;
67
QFFmpeg::SwrContextUPtr m_resampler;
68
qint64 m_samplesProcessed = 0;
69
qint64 m_endCompensationSample =
std
::
numeric_limits
<
qint64
>::
min
();
70
qint32 m_sampleCompensationDelta = 0;
71
};
72
73
QT_END_NAMESPACE
74
75
#
endif
QAudioBuffer
\inmodule QtMultimedia
Definition
qaudiobuffer.h:113
QAudioFormat
The QAudioFormat class stores audio stream parameter information.
Definition
qaudioformat.h:22
QAudioFormat::isValid
constexpr bool isValid() const noexcept
Returns true if all of the parameters are valid.
Definition
qaudioformat.h:82
QFFmpegResampler
Definition
qffmpegresampler_p.h:29
QFFmpegResampler::resample
QAudioBuffer resample(const char *data, size_t size) override
Definition
qffmpegresampler.cpp:85
QFFmpegResampler::createFromCodecContext
static std::unique_ptr< QFFmpegResampler > createFromCodecContext(const QFFmpeg::CodecContext *, const QAudioFormat &output, qint64 startTime=0)
Definition
qffmpegresampler.cpp:72
QFFmpegResampler::createFromInputFormat
static std::unique_ptr< QFFmpegResampler > createFromInputFormat(const QAudioFormat &input, const QAudioFormat &output, qint64 startTime=0)
Definition
qffmpegresampler.cpp:65
QFFmpegResampler::samplesProcessed
qint64 samplesProcessed() const
Definition
qffmpegresampler_p.h:54
QFFmpegResampler::~QFFmpegResampler
~QFFmpegResampler() override
QFFmpegResampler::setSampleCompensation
void setSampleCompensation(qint32 delta, quint32 distance)
Definition
qffmpegresampler.cpp:140
QFFmpegResampler::resample
QAudioBuffer resample(const AVFrame *frame)
Definition
qffmpegresampler.cpp:94
QFFmpegResampler::isInitialized
bool isInitialized() const
Definition
qffmpegresampler.cpp:78
QFFmpegResampler::activeSampleCompensationDelta
qint32 activeSampleCompensationDelta() const
Definition
qffmpegresampler.cpp:151
QFFmpeg::AudioRenderer
Definition
qffmpegaudiorenderer_p.h:33
QFFmpeg::AudioRenderer::pushFrameToOutput
RenderingResult pushFrameToOutput(const Frame &frame)
Definition
qffmpegaudiorenderer.cpp:144
QFFmpeg::AudioRenderer::onDeviceChanged
void onDeviceChanged()
Definition
qffmpegaudiorenderer.cpp:96
QFFmpeg::AudioRenderer::durationForBytes
Microseconds durationForBytes(qsizetype bytes) const
Definition
qffmpegaudiorenderer.cpp:416
QFFmpeg::AudioRenderer::freeOutput
void freeOutput()
Definition
qffmpegaudiorenderer.cpp:256
QFFmpeg::AudioRenderer::~AudioRenderer
~AudioRenderer() override
Definition
qffmpegaudiorenderer.cpp:85
QFFmpeg::AudioRenderer::renderInternal
RenderingResult renderInternal(Frame frame) override
Definition
qffmpegaudiorenderer.cpp:126
QFFmpeg::AudioRenderer::updateOutputs
void updateOutputs(const Frame &frame)
Definition
qffmpegaudiorenderer.cpp:275
QFFmpeg::AudioRenderer::setPitchCompensation
void setPitchCompensation(bool enabled)
Definition
qffmpegaudiorenderer.cpp:74
QFFmpeg::AudioRenderer::nextTimePoint
TimePoint nextTimePoint() const override
Definition
qffmpegaudiorenderer.cpp:218
QFFmpeg::AudioRenderer::setOutput
void setOutput(QAudioBufferOutput *bufferOutput)
Definition
qffmpegaudiorenderer.cpp:68
QFFmpeg::AudioRenderer::initAudioFrameConverter
void initAudioFrameConverter(const Frame &frame)
Definition
qffmpegaudiorenderer.cpp:245
QFFmpeg::AudioRenderer::seekInternal
void seekInternal() override
Definition
qffmpegaudiorenderer.cpp:101
QFFmpeg::AudioRenderer::updateVolume
void updateVolume()
Definition
qffmpegaudiorenderer.cpp:90
QFFmpeg::AudioRenderer::updateSynchronization
void updateSynchronization(const SynchronizationStamp &stamp, const Frame &frame)
Definition
qffmpegaudiorenderer.cpp:331
QFFmpeg::AudioRenderer::onAudioSinkStateChanged
void onAudioSinkStateChanged(QAudio::State state)
Definition
qffmpegaudiorenderer.cpp:410
QFFmpeg::AudioRenderer::onPlaybackRateChanged
void onPlaybackRateChanged() override
Definition
qffmpegaudiorenderer.cpp:213
QFFmpeg::AudioRenderer::setOutput
void setOutput(QAudioOutput *output)
Definition
qffmpegaudiorenderer.cpp:63
QFFmpeg::AudioRenderer::pushFrameToBufferOutput
void pushFrameToBufferOutput(const Frame &frame)
Definition
qffmpegaudiorenderer.cpp:197
QFFmpeg::AudioRenderer::bufferLoadingTime
Microseconds bufferLoadingTime(const SynchronizationStamp &syncStamp) const
Definition
qffmpegaudiorenderer.cpp:399
QFFmpeg::AudioRenderer::onPauseChanged
void onPauseChanged() override
Definition
qffmpegaudiorenderer.cpp:239
QFFmpeg::CodecContext
Definition
qffmpegcodeccontext_p.h:32
QFFmpeg
Definition
qandroidcacertificates.cpp:26
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
QFFmpeg::AbstractAudioFrameConverter
Definition
qffmpegaudioframeconverter_p.h:32
QFFmpeg::AudioRenderer::AudioTimings
Definition
qffmpegaudiorenderer_p.h:66
QFFmpeg::AudioRenderer::AudioTimings::minSoundDelay
Microseconds minSoundDelay
Definition
qffmpegaudiorenderer_p.h:69
QFFmpeg::AudioRenderer::AudioTimings::maxSoundDelay
Microseconds maxSoundDelay
Definition
qffmpegaudiorenderer_p.h:68
QFFmpeg::AudioRenderer::AudioTimings::actualBufferDuration
Microseconds actualBufferDuration
Definition
qffmpegaudiorenderer_p.h:67
QFFmpeg::AudioRenderer::BufferLoadingInfo
Definition
qffmpegaudiorenderer_p.h:58
QFFmpeg::AudioRenderer::BufferLoadingInfo::Type
Type
Definition
qffmpegaudiorenderer_p.h:59
QFFmpeg::AudioRenderer::BufferLoadingInfo::High
@ High
Definition
qffmpegaudiorenderer_p.h:59
QFFmpeg::AudioRenderer::BufferLoadingInfo::Moderate
@ Moderate
Definition
qffmpegaudiorenderer_p.h:59
QFFmpeg::AudioRenderer::BufferLoadingInfo::Low
@ Low
Definition
qffmpegaudiorenderer_p.h:59
QFFmpeg::AudioRenderer::BufferLoadingInfo::delay
Microseconds delay
Definition
qffmpegaudiorenderer_p.h:62
QFFmpeg::AudioRenderer::BufferLoadingInfo::type
Type type
Definition
qffmpegaudiorenderer_p.h:60
QFFmpeg::AudioRenderer::BufferLoadingInfo::timePoint
TimePoint timePoint
Definition
qffmpegaudiorenderer_p.h:61
QFFmpeg::AudioRenderer::BufferedDataWithOffset
Definition
qffmpegaudiorenderer_p.h:73
QFFmpeg::AudioRenderer::BufferedDataWithOffset::size
qsizetype size() const
Definition
qffmpegaudiorenderer_p.h:78
QFFmpeg::AudioRenderer::BufferedDataWithOffset::buffer
QAudioBuffer buffer
Definition
qffmpegaudiorenderer_p.h:74
QFFmpeg::AudioRenderer::BufferedDataWithOffset::isValid
bool isValid() const
Definition
qffmpegaudiorenderer_p.h:77
QFFmpeg::AudioRenderer::BufferedDataWithOffset::data
const char * data() const
Definition
qffmpegaudiorenderer_p.h:79
QFFmpeg::AudioRenderer::BufferedDataWithOffset::offset
qsizetype offset
Definition
qffmpegaudiorenderer_p.h:75
QFFmpeg::AudioRenderer::SynchronizationStamp
Definition
qffmpegaudiorenderer_p.h:50
QFFmpeg::AudioRenderer::SynchronizationStamp::timePoint
TimePoint timePoint
Definition
qffmpegaudiorenderer_p.h:54
QFFmpeg::AudioRenderer::SynchronizationStamp::bufferBytesWritten
qsizetype bufferBytesWritten
Definition
qffmpegaudiorenderer_p.h:53
QFFmpeg::AudioRenderer::SynchronizationStamp::audioSinkBytesFree
qsizetype audioSinkBytesFree
Definition
qffmpegaudiorenderer_p.h:52
QFFmpeg::AudioRenderer::SynchronizationStamp::audioSinkState
QAudio::State audioSinkState
Definition
qffmpegaudiorenderer_p.h:51
QFFmpeg::Frame
Definition
qffmpegframe_p.h:31
qtmultimedia
src
plugins
multimedia
ffmpeg
qffmpegresampler_p.h
Generated on
for Qt by
1.18.0