Lors de la creation d'un Timer, le core appel belle_sip_main_loop_add_source. Ce qui abouti à avoir une source dans la liste traitée par belle_sip_main_loop_iterate. Lors de l'appel à DestroyTimer (fait par exemple par MS2Stream par le jeu startEventHandling => stopEventHandling avec une source "Stream event processing timer"), la source était retirée par ce timer, et ensuite retirée par belle_sip_main_loop_iterate. Ce qui cause la réduction du nombre de sources belle_sip_main_loop_t->nSources à un nombre insuffisant et amene à un crash dans belle_sip_main_loop_iterate.
C'est pourquoi j'ai fait un appel à belle_sip_source_cancel qui met le membre cancelled à TRUE et qui permet ensuite à belle_sip_main_loop_iterate de la retirer elle-même lors de son test sur cet attribut. Ou alors la retirer de la liste pour ne pas qu'elle soit utilisée par la main loop.
Qu'en pense tu? Je trouve bizarre de ne pas avoir ce comportement avec Android (à moins que ça soit géré autrement)