aboutsummaryrefslogtreecommitdiff
path: root/src/base/QXmppCodec_p.h
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2015-01-07 11:58:40 +0100
committerJeremy Lainé <jeremy.laine@m4x.org>2015-01-07 11:58:40 +0100
commit52432290b3b7a85affc54730ed41df56cc62ee26 (patch)
treeb204318a83f3a298387e8705d5e756254e70a5b3 /src/base/QXmppCodec_p.h
parent2d0ed960c037878d45670b58ea10beac1201f558 (diff)
parentff5969f3709b257a21a2d6e87c3413d35909b5ff (diff)
downloadqxmpp-52432290b3b7a85affc54730ed41df56cc62ee26.tar.gz
Merge pull request #20 from hipersayanX/master
Added Opus codec. Added FEC for Vp8 codec.
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);