diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-12-03 13:29:26 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-12-03 13:29:26 +0000 |
| commit | 52b80d92b0749e9c01fa2c0c51ff46f7c5d04444 (patch) | |
| tree | 1979d5c5c806432b4161bd7cc277673f6fdea222 /src/QXmppCallManager.cpp | |
| parent | 179bc9f2d43b3db90f35f581fd848a18541978c9 (diff) | |
| download | qxmpp-52b80d92b0749e9c01fa2c0c51ff46f7c5d04444.tar.gz | |
overhaul RTP stack to support codec switching
Diffstat (limited to 'src/QXmppCallManager.cpp')
| -rw-r--r-- | src/QXmppCallManager.cpp | 16 |
1 files changed, 4 insertions, 12 deletions
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<QXmppJinglePayloadType> 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<QXmppJinglePayloadType> &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 QList<QXm sendRequest(call, iq); return false; } else { - call->d->audioChannel->setPayloadType(call->d->commonPayloadTypes.first()); call->updateOpenMode(); return true; } |
