From 19b542b36350666602165ddd36987a209da452ed Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Thu, 21 Jun 2012 08:09:53 +0000 Subject: [PATCH] Fixed #1541: Crash in third party media sample application after library is restarted git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@4174 74dad513-b988-da41-8d7b-12977e46ad98 --- pjsip-apps/src/3rdparty_media_sample/alt_pjsua_aud.c | 7 +++++-- pjsip-apps/src/3rdparty_media_sample/alt_pjsua_vid.c | 10 ++++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/pjsip-apps/src/3rdparty_media_sample/alt_pjsua_aud.c b/pjsip-apps/src/3rdparty_media_sample/alt_pjsua_aud.c index 5bf80ae52..2b85421ee 100644 --- a/pjsip-apps/src/3rdparty_media_sample/alt_pjsua_aud.c +++ b/pjsip-apps/src/3rdparty_media_sample/alt_pjsua_aud.c @@ -224,7 +224,7 @@ static void timer_to_send_aud_rtp(void *user_data) pjsua_call_media *call_med = (pjsua_call_media*) user_data; const char *pkt = "Not RTP packet"; - if (call_med->call->inv == NULL) { + if (!call_med->call || !call_med->call->inv || !call_med->tp) { /* Call has been disconnected. There is race condition here as * this cb may be called sometime after call has been disconnected */ return; @@ -240,7 +240,7 @@ static void timer_to_send_aud_rtcp(void *user_data) pjsua_call_media *call_med = (pjsua_call_media*) user_data; const char *pkt = "Not RTCP packet"; - if (call_med->call->inv == NULL) { + if (!call_med->call || !call_med->call->inv || !call_med->tp) { /* Call has been disconnected. There is race condition here as * this cb may be called sometime after call has been disconnected */ return; @@ -301,6 +301,9 @@ on_return: return status; } +void pjsua_check_snd_dev_idle() +{ +} /***************************************************************************** * diff --git a/pjsip-apps/src/3rdparty_media_sample/alt_pjsua_vid.c b/pjsip-apps/src/3rdparty_media_sample/alt_pjsua_vid.c index e10131f50..aac10e65a 100644 --- a/pjsip-apps/src/3rdparty_media_sample/alt_pjsua_vid.c +++ b/pjsip-apps/src/3rdparty_media_sample/alt_pjsua_vid.c @@ -234,6 +234,12 @@ pj_status_t pjsua_vid_subsys_start(void) /* Cleanup and deinitialize the video library */ pj_status_t pjsua_vid_subsys_destroy(void) { + if (pjmedia_vid_codec_mgr_instance()) + pjmedia_vid_codec_mgr_destroy(NULL); + + if (pjmedia_video_format_mgr_instance()) + pjmedia_video_format_mgr_destroy(NULL); + /* * TODO: put your 3rd party library cleanup routine here */ @@ -291,7 +297,7 @@ static void timer_to_send_vid_rtp(void *user_data) pjsua_call_media *call_med = (pjsua_call_media*) user_data; const char *pkt = "Not RTP packet"; - if (call_med->call->inv == NULL) { + if (!call_med->call || !call_med->call->inv || !call_med->tp) { /* Call has been disconnected. There is race condition here as * this cb may be called sometime after call has been disconnected */ return; @@ -307,7 +313,7 @@ static void timer_to_send_vid_rtcp(void *user_data) pjsua_call_media *call_med = (pjsua_call_media*) user_data; const char *pkt = "Not RTCP packet"; - if (call_med->call->inv == NULL) { + if (!call_med->call || !call_med->call->inv || !call_med->tp) { /* Call has been disconnected. There is race condition here as * this cb may be called sometime after call has been disconnected */ return;