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
212 int frameHeight()
const {
213 return m_frameSize.height();
216 int frameWidth()
const {
217 return m_frameSize.width();
220 qreal frameRate()
const {
224 void setFrameRate(qreal frameRate) {
225 m_frameRate = frameRate;
228 QSize frameSize()
const {
232 void setFrameSize(
const QSize &frameSize) {
233 m_frameSize = frameSize;
237 return m_pixelFormat;
241 m_pixelFormat = pixelFormat;
264 QIODevice::OpenMode openMode()
const;
267 QXmppVideoFormat decoderFormat()
const;
268 QList<QXmppVideoFrame> readFrames();
271 QXmppVideoFormat encoderFormat()
const;
272 void setEncoderFormat(
const QXmppVideoFormat &format);
277 void sendDatagram(
const QByteArray &ba);
280 void datagramReceived(
const QByteArray &ba);
284 void payloadTypesChanged();
288 friend class QXmppRtpVideoChannelPrivate;
289 QXmppRtpVideoChannelPrivate * d;