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;
66 class QXMPP_EXPORT QXmppRtpChannel
72 virtual void close() = 0;
75 virtual QIODevice::OpenMode openMode()
const = 0;
77 QList<QXmppJinglePayloadType> localPayloadTypes();
78 void setRemotePayloadTypes(
const QList<QXmppJinglePayloadType> &remotePayloadTypes);
82 virtual void payloadTypesChanged() = 0;
84 QList<QXmppJinglePayloadType> m_incomingPayloadTypes;
85 QList<QXmppJinglePayloadType> m_outgoingPayloadTypes;
86 bool m_outgoingPayloadNumbered;
126 qint64 bytesAvailable()
const;
128 bool isSequential()
const;
129 QIODevice::OpenMode openMode()
const;
132 bool seek(qint64 pos);
136 void sendDatagram(
const QByteArray &ba);
142 void datagramReceived(
const QByteArray &ba);
148 void debug(
const QString &message)
153 void warning(
const QString &message)
158 void logReceived(
const QString &message)
163 void logSent(
const QString &message)
168 void payloadTypesChanged();
169 qint64 readData(
char * data, qint64 maxSize);
170 qint64 writeData(
const char * data, qint64 maxSize);
175 void writeDatagram();
178 friend class QXmppRtpAudioChannelPrivate;
179 QXmppRtpAudioChannelPrivate * d;
211 QXmppVideoFrame(
int bytes,
const QSize &size,
int bytesPerLine, PixelFormat format);
213 const uchar *bits()
const;
214 int bytesPerLine()
const;
216 bool isValid()
const;
217 int mappedBytes()
const;
218 PixelFormat pixelFormat()
const;
227 PixelFormat m_pixelFormat;
231 class QXMPP_EXPORT QXmppVideoFormat
234 int frameHeight()
const {
235 return m_frameSize.height();
238 int frameWidth()
const {
239 return m_frameSize.width();
242 qreal frameRate()
const {
246 void setFrameRate(qreal frameRate) {
247 m_frameRate = frameRate;
250 QSize frameSize()
const {
254 void setFrameSize(
const QSize &frameSize) {
255 m_frameSize = frameSize;
259 return m_pixelFormat;
263 m_pixelFormat = pixelFormat;
286 QIODevice::OpenMode openMode()
const;
289 QXmppVideoFormat decoderFormat()
const;
290 QList<QXmppVideoFrame> readFrames();
293 QXmppVideoFormat encoderFormat()
const;
294 void setEncoderFormat(
const QXmppVideoFormat &format);
299 void sendDatagram(
const QByteArray &ba);
302 void datagramReceived(
const QByteArray &ba);
306 void payloadTypesChanged();
310 friend class QXmppRtpVideoChannelPrivate;
311 QXmppRtpVideoChannelPrivate * d;