From cd0d9d479db3a88501f9d6bc472384cf3eeaa745 Mon Sep 17 00:00:00 2001 From: Jeremy LainĂ© Date: Fri, 15 Apr 2011 15:37:30 +0000 Subject: start laying groundwork for video codecs --- src/QXmppCodec.h | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) (limited to 'src/QXmppCodec.h') 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 +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 handlePacket(QDataStream &input) = 0; + virtual bool setParameters(const QMap ¶meters) = 0; +}; + +class QXmppVideoEncoder +{ +public: + virtual bool setFormat(const QXmppVideoFormat &format) = 0; + virtual QList handleFrame(const QXmppVideoFrame &frame) = 0; + virtual QMap parameters() const = 0; +}; + +#ifdef QXMPP_USE_THEORA +class QXmppTheoraDecoderPrivate; +class QXmppTheoraEncoderPrivate; + +class QXmppTheoraDecoder : public QXmppVideoDecoder +{ +public: + QXmppTheoraDecoder(); + ~QXmppTheoraDecoder(); + + QXmppVideoFormat format() const; + QList handlePacket(QDataStream &input); + bool setParameters(const QMap ¶meters); + +private: + QXmppTheoraDecoderPrivate *d; +}; + +class QXmppTheoraEncoder : public QXmppVideoEncoder +{ +public: + QXmppTheoraEncoder(); + ~QXmppTheoraEncoder(); + + bool setFormat(const QXmppVideoFormat &format); + QList handleFrame(const QXmppVideoFrame &frame); + QMap parameters() const; + +private: + QXmppTheoraEncoderPrivate *d; +}; +#endif + #endif -- cgit v1.2.3