From fe5579abb34fe16910799ae456b7df106b209004 Mon Sep 17 00:00:00 2001 From: Ghislain MARY Date: Mon, 1 Oct 2012 11:51:37 +0200 Subject: [PATCH] Fix change of payload type number. When changing the payload type number, the rtp profile needs to be changed also. --- daemon/commands/audio-codec-set.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/daemon/commands/audio-codec-set.cc b/daemon/commands/audio-codec-set.cc index b55bb8e0b..b06f49543 100644 --- a/daemon/commands/audio-codec-set.cc +++ b/daemon/commands/audio-codec-set.cc @@ -1,6 +1,7 @@ #include "audio-codec-set.h" /*hack, until this function comes to linphonecore*/ +#define _payload_type_get_number(pt) ((long)(pt)->user_data) #define _payload_type_set_number(pt,n) (pt)->user_data=(void*)(long)(n) using namespace std; @@ -71,7 +72,11 @@ void AudioCodecSetCommand::exec(Daemon *app, const char *args) { if (conflict) { app->sendResponse(Response("New payload type number is already used.", Response::Error)); } else { - _payload_type_set_number(payload, atoi(value.c_str())); + int idx = atoi(value.c_str()); + long old_idx = _payload_type_get_number(payload); + _payload_type_set_number(payload, idx); + rtp_profile_set_payload(&av_profile, idx, payload); + rtp_profile_clear_payload(&av_profile, old_idx); app->sendResponse(PayloadTypeResponse(app->getCore(), payload, index)); } return;