4#ifndef QANDROIDAUDIODECODER_P_H
5#define QANDROIDAUDIODECODER_P_H
17#include "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"
30class Decoder :
public QObject
38 void setSource(
const QUrl &source);
43 void positionChanged(
const QAudioBuffer &buffer, qint64 position);
44 void durationChanged(
const qint64 duration);
45 void error(
const QAudioDecoder::Error error,
const QString &errorString);
47 void decodingChanged(
bool decoding);
52 AMediaCodec *m_codec =
nullptr;
53 AMediaExtractor *m_extractor =
nullptr;
54 AMediaFormat *m_format =
nullptr;
56 QAudioFormat m_outputFormat;
57 QString m_formatError;
70 void setSource(
const QUrl &fileName)
override;
92 void durationChanged(qint64 duration);
93 void error(
const QAudioDecoder::Error error,
const QString &errorString);
98 bool requestPermissions();
99 bool createTempFile();
102 QIODevice *m_device =
nullptr;
103 Decoder *m_decoder =
nullptr;
108 qint64 m_position = -1;
109 qint64 m_duration = -1;
111 QByteArray m_deviceBuffer;
113 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,...)