4#ifndef QANDROIDAUDIODECODER_P_H
5#define QANDROIDAUDIODECODER_P_H
17#include <QtMultimedia/private/qplatformaudiodecoder_p.h>
19#include <QtCore/qurl.h>
22#include "media/NdkMediaCodec.h"
23#include "media/NdkMediaExtractor.h"
24#include "media/NdkMediaFormat.h"
25#include "media/NdkMediaError.h"
29class Decoder :
public QObject
37 void setSource(
const QUrl &source);
42 void positionChanged(
const QAudioBuffer &buffer, qint64 position);
43 void durationChanged(
const qint64 duration);
44 void error(
const QAudioDecoder::Error error,
const QString &errorString);
46 void decodingChanged(
bool decoding);
51 AMediaCodec *m_codec =
nullptr;
52 AMediaExtractor *m_extractor =
nullptr;
53 AMediaFormat *m_format =
nullptr;
55 QAudioFormat m_outputFormat;
56 QString m_formatError;
69 void setSource(
const QUrl &fileName)
override;
91 void durationChanged(qint64 duration);
92 void error(
const QAudioDecoder::Error error,
const QString &errorString);
97 bool requestPermissions();
98 bool createTempFile();
101 QIODevice *m_device =
nullptr;
102 Decoder *m_decoder =
nullptr;
107 qint64 m_position = -1;
108 qint64 m_duration = -1;
110 QByteArray m_deviceBuffer;
112 QThread *m_threadDecoder =
nullptr;
bool bufferAvailable() const override
QAudioFormat audioFormat() const override
QUrl source() const override
virtual ~QAndroidAudioDecoder()
QAudioBuffer read() override
qint64 duration() const override
qint64 position() const override
QIODevice * sourceDevice() const override
void setSourceDevice(QIODevice *device) override
void setSource(const QUrl &fileName) override
void setAudioFormat(const QAudioFormat &) override
static QT_BEGIN_NAMESPACE const char tempFile[]
constexpr int dequeueTimeout
#define qCWarning(category,...)
#define Q_STATIC_LOGGING_CATEGORY(name,...)