From 52b80d92b0749e9c01fa2c0c51ff46f7c5d04444 Mon Sep 17 00:00:00 2001 From: Jeremy Lainé Date: Fri, 3 Dec 2010 13:29:26 +0000 Subject: overhaul RTP stack to support codec switching --- src/QXmppCallManager.cpp | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) (limited to 'src/QXmppCallManager.cpp') diff --git a/src/QXmppCallManager.cpp b/src/QXmppCallManager.cpp index 399c7dcb..f0288847 100644 --- a/src/QXmppCallManager.cpp +++ b/src/QXmppCallManager.cpp @@ -58,7 +58,6 @@ public: // RTP QXmppRtpChannel *audioChannel; - QList commonPayloadTypes; private: QXmppCall *q; @@ -351,7 +350,7 @@ QXmppCall *QXmppCallManager::call(const QString &jid) // description iq.content().setDescriptionMedia("audio"); - foreach (const QXmppJinglePayloadType &payload, call->d->audioChannel->supportedPayloadTypes()) + foreach (const QXmppJinglePayloadType &payload, call->d->audioChannel->localPayloadTypes()) iq.content().addPayloadType(payload); // transport @@ -410,7 +409,7 @@ void QXmppCallManager::callStateChanged(QXmppCall::State state) // description iq.content().setDescriptionMedia("audio"); - foreach (const QXmppJinglePayloadType &payload, call->d->commonPayloadTypes) + foreach (const QXmppJinglePayloadType &payload, call->d->audioChannel->localPayloadTypes()) iq.content().addPayloadType(payload); // transport @@ -431,14 +430,8 @@ void QXmppCallManager::callStateChanged(QXmppCall::State state) bool QXmppCallManagerPrivate::checkPayloadTypes(QXmppCall *call, const QList &remotePayloadTypes) { - foreach (const QXmppJinglePayloadType &payload, call->d->audioChannel->supportedPayloadTypes()) - { - int payloadIndex = remotePayloadTypes.indexOf(payload); - if (payloadIndex >= 0) - call->d->commonPayloadTypes << remotePayloadTypes[payloadIndex]; - } - if (call->d->commonPayloadTypes.isEmpty()) - { + call->d->audioChannel->setRemotePayloadTypes(remotePayloadTypes); + if (!call->d->audioChannel->isOpen()) { q->warning(QString("Remote party %1 did not provide any known payload types for call %2").arg(call->jid(), call->sid())); // terminate call @@ -451,7 +444,6 @@ bool QXmppCallManagerPrivate::checkPayloadTypes(QXmppCall *call, const QListd->audioChannel->setPayloadType(call->d->commonPayloadTypes.first()); call->updateOpenMode(); return true; } -- cgit v1.2.3