3#ifndef QFFMPEGRESAMPLER_P_H
4#define QFFMPEGRESAMPLER_P_H
18#include <QtFFmpegMediaPluginImpl/private/qffmpeg_p.h>
19#include <QtMultimedia/private/qplatformaudioresampler_p.h>
35 template <
typename... Args>
36 static std::unique_ptr<QFFmpegResampler> createImpl(Args...);
41 qint64 startTime = 0);
44 qint64 startTime = 0);
59 int adjustMaxOutSamples(
int inputSamplesCount);
61 QAudioBuffer resample(
const uint8_t **inputData,
int inputSamplesCount);
66 qint64 m_startTime = 0;
67 QFFmpeg::SwrContextUPtr m_resampler;
68 qint64 m_samplesProcessed = 0;
70 qint32 m_sampleCompensationDelta = 0;
QAudioBuffer resample(const char *data, size_t size) override
static std::unique_ptr< QFFmpegResampler > createFromCodecContext(const QFFmpeg::CodecContext *, const QAudioFormat &output, qint64 startTime=0)
static std::unique_ptr< QFFmpegResampler > createFromInputFormat(const QAudioFormat &input, const QAudioFormat &output, qint64 startTime=0)
qint64 samplesProcessed() const
~QFFmpegResampler() override
void setSampleCompensation(qint32 delta, quint32 distance)
QAudioBuffer resample(const AVFrame *frame)
bool isInitialized() const
qint32 activeSampleCompensationDelta() const
RenderingResult pushFrameToOutput(const Frame &frame)
Microseconds durationForBytes(qsizetype bytes) const
~AudioRenderer() override
RenderingResult renderInternal(Frame frame) override
void updateOutputs(const Frame &frame)
void setPitchCompensation(bool enabled)
std::chrono::milliseconds timerInterval() const override
void setOutput(QAudioBufferOutput *bufferOutput)
void initAudioFrameConverter(const Frame &frame)
void updateSynchronization(const SynchronizationStamp &stamp, const Frame &frame)
void onAudioSinkStateChanged(QAudio::State state)
void onPlaybackRateChanged() override
void setOutput(QAudioOutput *output)
void pushFrameToBufferOutput(const Frame &frame)
Microseconds bufferLoadingTime(const SynchronizationStamp &syncStamp) const
void onPauseChanged() override
std::conditional_t< QT_FFMPEG_AVIO_WRITE_CONST, const uint8_t *, uint8_t * > AvioWriteBufferType
Microseconds minSoundDelay
Microseconds maxSoundDelay
Microseconds actualBufferDuration
const char * data() const
qsizetype bufferBytesWritten
qsizetype audioSinkBytesFree
QAudio::State audioSinkState