24 #ifndef QXMPPRTPCHANNEL_H
25 #define QXMPPRTPCHANNEL_H
30 #include "QXmppJingleIq.h"
31 #include "QXmppLogger.h"
35 class QXmppRtpAudioChannelPrivate;
36 class QXmppRtpVideoChannelPrivate;
44 bool decode(
const QByteArray &ba);
45 QByteArray encode()
const;
46 QString toString()
const;
58 class QXMPP_EXPORT QXmppRtpChannel
63 virtual void close() = 0;
64 virtual QIODevice::OpenMode openMode()
const = 0;
65 QList<QXmppJinglePayloadType> localPayloadTypes();
66 void setRemotePayloadTypes(
const QList<QXmppJinglePayloadType> &remotePayloadTypes);
69 virtual void payloadTypesChanged();
71 QList<QXmppJinglePayloadType> m_incomingPayloadTypes;
72 QList<QXmppJinglePayloadType> m_outgoingPayloadTypes;
73 bool m_outgoingPayloadNumbered;
115 qint64 bytesAvailable()
const;
117 bool isSequential()
const;
118 QIODevice::OpenMode openMode()
const;
120 bool seek(qint64 pos);
125 void sendDatagram(
const QByteArray &ba);
131 void datagramReceived(
const QByteArray &ba);
137 void debug(
const QString &message)
142 void warning(
const QString &message)
147 void logReceived(
const QString &message)
152 void logSent(
const QString &message)
157 void payloadTypesChanged();
158 qint64 readData(
char * data, qint64 maxSize);
159 qint64 writeData(
const char * data, qint64 maxSize);
164 void writeDatagram();
167 friend class QXmppRtpAudioChannelPrivate;
168 QXmppRtpAudioChannelPrivate * d;
188 QXmppVideoFrame(
int bytes,
const QSize &size,
int bytesPerLine, PixelFormat format);
190 const uchar *bits()
const;
191 int bytesPerLine()
const;
193 bool isValid()
const;
194 int mappedBytes()
const;
195 PixelFormat pixelFormat()
const;
204 PixelFormat m_pixelFormat;
208 class QXMPP_EXPORT QXmppVideoFormat
211 int frameHeight()
const {
212 return m_frameSize.height();
215 int frameWidth()
const {
216 return m_frameSize.width();
219 qreal frameRate()
const {
223 void setFrameRate(qreal frameRate) {
224 m_frameRate = frameRate;
227 QSize frameSize()
const {
231 void setFrameSize(
const QSize &frameSize) {
232 m_frameSize = frameSize;
235 QXmppVideoFrame::PixelFormat pixelFormat()
const {
236 return m_pixelFormat;
239 void setPixelFormat(QXmppVideoFrame::PixelFormat pixelFormat) {
240 m_pixelFormat = pixelFormat;
246 QXmppVideoFrame::PixelFormat m_pixelFormat;
263 QXmppVideoFormat decoderFormat()
const;
264 QList<QXmppVideoFrame> readFrames();
267 QXmppVideoFormat encoderFormat()
const;
268 void setEncoderFormat(
const QXmppVideoFormat &format);
271 QIODevice::OpenMode openMode()
const;
276 void sendDatagram(
const QByteArray &ba);
279 void datagramReceived(
const QByteArray &ba);
283 void payloadTypesChanged();
287 friend class QXmppRtpVideoChannelPrivate;
288 QXmppRtpVideoChannelPrivate * d;