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;