J'ai eu un crash lors d'un linphone_call_terminate. Le payload n'existait plus.
Le crash était uniquement sur local_payload. J'en ai profité pour rajouter un check sur remote_payload au cas où.
Activity
requested review from @smorlat
assigned to @julienw
added 8 commits
-
f4f72c47...e3c82eb4 - 7 commits from branch
master
- a17084c4 - Payload could be empty on call termination. We have to check if it exists before getting metrics.
-
f4f72c47...e3c82eb4 - 7 commits from branch
mentioned in merge request linphone-sdk!3873 (closed)
Je l'ai déjà corrigé ce problème dans ce commit:
commit e3c82eb4 (HEAD -> fix/remove-mswinrtvid, origin/master, origin/fix/remove-mswinrtvid, origin/HEAD) Author: Simon Morlat simon.morlat@linphone.org Date: Mon Oct 16 15:58:48 2023 +0200
Enforce prohibition of the reuse of LinphoneCallParams obtained by linphone_call_get_current_params() or linphone_call_get_remote_params() through linphone_core_invite
_address_with_params()/linphone_call_accept_with_params()/linphone_call_update()/linphone_call_accept_update(). Despite documentation explicitely asks to use linphone_core _create_call_params(), developers tend to do this, which leads to unpredictable behaviors and failures.
Ca plantait effectivement à chaque fin d'appel dans les apps.
J'ai fait différement: diff --git a/src/conference/params/media-session-params-p.h b/src/conference/params/media-session-params-p.h index f2013875b..f413ce40a 100644 --- a/src/conference/params/media-session-params-p.h +++ b/src/conference/params/media-session-params-p.h @@ -98,16 +98,16 @@ public: } void setSentVideoDefinition(LinphoneVideoDefinition *value); void setUsedAudioCodec(OrtpPayloadType *pt) {
-
usedAudioCodec = PayloadType::create(nullptr, pt);
-
usedAudioCodec = pt ? PayloadType::create(nullptr, pt) : nullptr; } void setUsedVideoCodec(OrtpPayloadType *pt) {
-
usedVideoCodec = PayloadType::create(nullptr, pt);
-
usedVideoCodec = pt ? PayloadType::create(nullptr, pt) : nullptr; } void setUsedRealtimeTextCodec(OrtpPayloadType *pt) {
-
usedRealtimeTextCodec = PayloadType::create(nullptr, pt);
-
usedRealtimeTextCodec = pt ? PayloadType::create(nullptr, pt) : nullptr; } void setUsedFecCodec(OrtpPayloadType *pt) {
-
usedFecCodec = PayloadType::create(nullptr, pt);
-
usedFecCodec = pt ? PayloadType::create(nullptr, pt) : nullptr; } SalCustomSdpAttribute *getCustomSdpAttributes() const; void setCustomSdpAttributes(const SalCustomSdpAttribute *csa);
-