diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2011-04-15 15:37:30 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2011-04-15 15:37:30 +0000 |
| commit | cd0d9d479db3a88501f9d6bc472384cf3eeaa745 (patch) | |
| tree | 0a9d663595c324589dd04502299e25aaa4c1c00a /src/QXmppCodec.h | |
| parent | 0eb47a83dceb3f3268984596e782a811043fd8b8 (diff) | |
| download | qxmpp-cd0d9d479db3a88501f9d6bc472384cf3eeaa745.tar.gz | |
start laying groundwork for video codecs
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 |
