aboutsummaryrefslogtreecommitdiff
path: root/src/QXmppCodec.h
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2011-04-15 15:37:30 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2011-04-15 15:37:30 +0000
commitcd0d9d479db3a88501f9d6bc472384cf3eeaa745 (patch)
tree0a9d663595c324589dd04502299e25aaa4c1c00a /src/QXmppCodec.h
parent0eb47a83dceb3f3268984596e782a811043fd8b8 (diff)
downloadqxmpp-cd0d9d479db3a88501f9d6bc472384cf3eeaa745.tar.gz
start laying groundwork for video codecs
Diffstat (limited to 'src/QXmppCodec.h')
-rw-r--r--src/QXmppCodec.h55
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> &parameters) = 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> &parameters);
+
+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