aboutsummaryrefslogtreecommitdiff
path: root/src/base/QXmppCodec_p.h
diff options
context:
space:
mode:
authorGonzalo Exequiel Pedone <hipersayan.x@gmail.com>2014-11-26 19:44:50 -0300
committerGonzalo Exequiel Pedone <hipersayan.x@gmail.com>2014-11-26 19:44:50 -0300
commit6f5d29ac16ada8ba290f9278211ea9ab96850d36 (patch)
tree9e250bcc435c7f548a14fd2e1afe500cc930e48c /src/base/QXmppCodec_p.h
parentdf9a166a0f1657ebe8e529de692ba20558f23f13 (diff)
downloadqxmpp-6f5d29ac16ada8ba290f9278211ea9ab96850d36.tar.gz
Added Opus codec.
Diffstat (limited to 'src/base/QXmppCodec_p.h')
-rw-r--r--src/base/QXmppCodec_p.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/base/QXmppCodec_p.h b/src/base/QXmppCodec_p.h
index 4cccdb41..70f110c0 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.
///