diff options
| author | Gonzalo Exequiel Pedone <hipersayan.x@gmail.com> | 2014-11-26 19:44:50 -0300 |
|---|---|---|
| committer | Gonzalo Exequiel Pedone <hipersayan.x@gmail.com> | 2014-11-26 19:44:50 -0300 |
| commit | 6f5d29ac16ada8ba290f9278211ea9ab96850d36 (patch) | |
| tree | 9e250bcc435c7f548a14fd2e1afe500cc930e48c /src/base/QXmppCodec_p.h | |
| parent | df9a166a0f1657ebe8e529de692ba20558f23f13 (diff) | |
| download | qxmpp-6f5d29ac16ada8ba290f9278211ea9ab96850d36.tar.gz | |
Added Opus codec.
Diffstat (limited to 'src/base/QXmppCodec_p.h')
| -rw-r--r-- | src/base/QXmppCodec_p.h | 30 |
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. /// |
