diff options
Diffstat (limited to 'src/QXmppCodec.h')
| -rw-r--r-- | src/QXmppCodec.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/src/QXmppCodec.h b/src/QXmppCodec.h index b25be9ef..4b31fcff 100644 --- a/src/QXmppCodec.h +++ b/src/QXmppCodec.h @@ -26,6 +26,9 @@ #include <QtGlobal> +class QXmppVideoFormat; +class QXmppVideoFrame; + /// \brief The QXmppCodec class is the base class for audio codecs capable of /// encoding and decoding audio samples. /// @@ -100,4 +103,56 @@ private: }; #endif +/// \brief The QXmppVideoDecoder class is the base class for video decoders. +/// + +class QXmppVideoDecoder +{ +public: + virtual QXmppVideoFormat format() const = 0; + virtual QList<QXmppVideoFrame> handlePacket(QDataStream &input) = 0; + virtual bool setParameters(const QMap<QString, QString> ¶meters) = 0; +}; + +class QXmppVideoEncoder +{ +public: + virtual bool setFormat(const QXmppVideoFormat &format) = 0; + virtual QList<QByteArray> handleFrame(const QXmppVideoFrame &frame) = 0; + virtual QMap<QString, QString> parameters() const = 0; +}; + +#ifdef QXMPP_USE_THEORA +class QXmppTheoraDecoderPrivate; +class QXmppTheoraEncoderPrivate; + +class QXmppTheoraDecoder : public QXmppVideoDecoder +{ +public: + QXmppTheoraDecoder(); + ~QXmppTheoraDecoder(); + + QXmppVideoFormat format() const; + QList<QXmppVideoFrame> handlePacket(QDataStream &input); + bool setParameters(const QMap<QString, QString> ¶meters); + +private: + QXmppTheoraDecoderPrivate *d; +}; + +class QXmppTheoraEncoder : public QXmppVideoEncoder +{ +public: + QXmppTheoraEncoder(); + ~QXmppTheoraEncoder(); + + bool setFormat(const QXmppVideoFormat &format); + QList<QByteArray> handleFrame(const QXmppVideoFrame &frame); + QMap<QString, QString> parameters() const; + +private: + QXmppTheoraEncoderPrivate *d; +}; +#endif + #endif |
