24 #ifndef QXMPPRTPCHANNEL_H 
   25 #define QXMPPRTPCHANNEL_H 
   30 #include "QXmppJingleIq.h" 
   31 #include "QXmppLogger.h" 
   35 class QXmppRtpAudioChannelPrivate;
 
   36 class QXmppRtpVideoChannelPrivate;
 
   38 class QXMPP_EXPORT QXmppRtpChannel
 
   44     virtual void close() = 0;
 
   47     virtual QIODevice::OpenMode openMode() 
const = 0;
 
   49     QList<QXmppJinglePayloadType> localPayloadTypes();
 
   50     void setRemotePayloadTypes(
const QList<QXmppJinglePayloadType> &remotePayloadTypes);
 
   52     quint32 localSsrc() 
const;
 
   53     void setLocalSsrc(quint32 ssrc);
 
   57     virtual void payloadTypesChanged() = 0;
 
   59     QList<QXmppJinglePayloadType> m_incomingPayloadTypes;
 
   60     QList<QXmppJinglePayloadType> m_outgoingPayloadTypes;
 
   61     bool m_outgoingPayloadNumbered;
 
   65     quint32 m_outgoingSsrc;
 
  104     qint64 bytesAvailable() 
const;
 
  106     bool isSequential() 
const;
 
  107     QIODevice::OpenMode openMode() 
const;
 
  110     bool seek(qint64 pos);
 
  114     void sendDatagram(
const QByteArray &ba);
 
  120     void datagramReceived(
const QByteArray &ba);
 
  126     void debug(
const QString &message)
 
  131     void warning(
const QString &message)
 
  136     void logReceived(
const QString &message)
 
  141     void logSent(
const QString &message)
 
  146     void payloadTypesChanged();
 
  147     qint64 readData(
char * data, qint64 maxSize);
 
  148     qint64 writeData(
const char * data, qint64 maxSize);
 
  153     void writeDatagram();
 
  156     friend class QXmppRtpAudioChannelPrivate;
 
  157     QXmppRtpAudioChannelPrivate * d;
 
  189     QXmppVideoFrame(
int bytes, 
const QSize &size, 
int bytesPerLine, PixelFormat format);
 
  191     const uchar *bits() 
const;
 
  192     int bytesPerLine() 
const;
 
  194     bool isValid() 
const;
 
  195     int mappedBytes() 
const;
 
  196     PixelFormat pixelFormat() 
const;
 
  205     PixelFormat m_pixelFormat;
 
  209 class QXMPP_EXPORT QXmppVideoFormat
 
  214         , m_frameSize(QSize(320, 240))
 
  218     int frameHeight()
 const {
 
  219         return m_frameSize.height();
 
  222     int frameWidth()
 const {
 
  223         return m_frameSize.width();
 
  226     qreal frameRate()
 const {
 
  230     void setFrameRate(qreal frameRate) {
 
  231         m_frameRate = frameRate;
 
  234     QSize frameSize()
 const {
 
  238     void setFrameSize(
const QSize &frameSize) {
 
  239         m_frameSize = frameSize;
 
  243         return m_pixelFormat;
 
  247         m_pixelFormat = pixelFormat;
 
  270     QIODevice::OpenMode openMode() 
const;
 
  273     QXmppVideoFormat decoderFormat() 
const;
 
  274     QList<QXmppVideoFrame> readFrames();
 
  277     QXmppVideoFormat encoderFormat() 
const;
 
  278     void setEncoderFormat(
const QXmppVideoFormat &format);
 
  283     void sendDatagram(
const QByteArray &ba);
 
  286     void datagramReceived(
const QByteArray &ba);
 
  290     void payloadTypesChanged();
 
  294     friend class QXmppRtpVideoChannelPrivate;
 
  295     QXmppRtpVideoChannelPrivate * d;