24 #ifndef QXMPPRTPCHANNEL_H
25 #define QXMPPRTPCHANNEL_H
27 #include "QXmppJingleIq.h"
28 #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 override;
105 void close()
override;
106 bool isSequential()
const override;
107 QIODevice::OpenMode openMode()
const override;
109 qint64 pos()
const override;
110 bool seek(qint64 pos)
override;
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()
override;
147 qint64 readData(
char *data, qint64 maxSize)
override;
148 qint64 writeData(
const char *data, qint64 maxSize)
override;
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
213 : m_frameRate(15.0), m_frameSize(QSize(320, 240)), m_pixelFormat(
QXmppVideoFrame::Format_YUYV)
217 int frameHeight()
const
219 return m_frameSize.height();
222 int frameWidth()
const
224 return m_frameSize.width();
227 qreal frameRate()
const
232 void setFrameRate(qreal frameRate)
234 m_frameRate = frameRate;
237 QSize frameSize()
const
242 void setFrameSize(
const QSize &frameSize)
244 m_frameSize = frameSize;
249 return m_pixelFormat;
254 m_pixelFormat = pixelFormat;
275 void close()
override;
276 QIODevice::OpenMode openMode()
const override;
279 QXmppVideoFormat decoderFormat()
const;
280 QList<QXmppVideoFrame> readFrames();
283 QXmppVideoFormat encoderFormat()
const;
284 void setEncoderFormat(
const QXmppVideoFormat &format);
289 void sendDatagram(
const QByteArray &ba);
292 void datagramReceived(
const QByteArray &ba);
296 void payloadTypesChanged()
override;
300 friend class QXmppRtpVideoChannelPrivate;
301 QXmppRtpVideoChannelPrivate *d;