diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2015-01-07 11:58:40 +0100 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2015-01-07 11:58:40 +0100 |
| commit | 52432290b3b7a85affc54730ed41df56cc62ee26 (patch) | |
| tree | b204318a83f3a298387e8705d5e756254e70a5b3 /src/base/QXmppCodec_p.h | |
| parent | 2d0ed960c037878d45670b58ea10beac1201f558 (diff) | |
| parent | ff5969f3709b257a21a2d6e87c3413d35909b5ff (diff) | |
| download | qxmpp-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.h | 32 |
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); |
