aboutsummaryrefslogtreecommitdiff
path: root/src/base/QXmppCodec_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/base/QXmppCodec_p.h')
-rw-r--r--src/base/QXmppCodec_p.h32
1 files changed, 31 insertions, 1 deletions
diff --git a/src/base/QXmppCodec_p.h b/src/base/QXmppCodec_p.h
index 4cccdb41..2b6c0371 100644
--- a/src/base/QXmppCodec_p.h
+++ b/src/base/QXmppCodec_p.h
@@ -108,6 +108,36 @@ private:
};
#endif
+#ifdef QXMPP_USE_OPUS
+typedef struct OpusEncoder OpusEncoder;
+typedef struct OpusDecoder OpusDecoder;
+
+/// \internal
+///
+/// The QXmppOpusCodec class represent a Opus codec.
+
+class QXMPP_AUTOTEST_EXPORT QXmppOpusCodec : public QXmppCodec
+{
+public:
+ QXmppOpusCodec(int clockrate, int channels);
+ ~QXmppOpusCodec();
+
+ qint64 encode(QDataStream &input, QDataStream &output);
+ qint64 decode(QDataStream &input, QDataStream &output);
+
+private:
+ OpusEncoder *encoder;
+ OpusDecoder *decoder;
+ int sampleRate;
+ int nChannels;
+ QList<float> validFrameSize;
+ int nSamples;
+ QByteArray sampleBuffer;
+
+ int readWindow(int bufferSize);
+};
+#endif
+
/// \brief The QXmppVideoDecoder class is the base class for video decoders.
///
@@ -198,7 +228,7 @@ private:
class QXMPP_AUTOTEST_EXPORT QXmppVpxEncoder : public QXmppVideoEncoder
{
public:
- QXmppVpxEncoder();
+ QXmppVpxEncoder(uint clockrate=0);
~QXmppVpxEncoder();
bool setFormat(const QXmppVideoFormat &format);