diff options
author | Nanang Izzuddin <nanang@teluu.com> | 2014-01-21 10:59:25 +0000 |
---|---|---|
committer | Nanang Izzuddin <nanang@teluu.com> | 2014-01-21 10:59:25 +0000 |
commit | 8c5296fba455adc138bce1d8c643659db575c7b1 (patch) | |
tree | 09c96130d5afa86746f4582f69e873b510ecfdc3 /pjsip | |
parent | 0703ebd85dd35f119bc5ca2554b1e98da1ab1dad (diff) |
Re #1519 [into SVN trunk]: AudioMedia objects must not be destroyed before unregistered from conf bridge.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@4708 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjsip')
-rw-r--r-- | pjsip/src/pjsua2/media.cpp | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/pjsip/src/pjsua2/media.cpp b/pjsip/src/pjsua2/media.cpp index 175d5987..0c478feb 100644 --- a/pjsip/src/pjsua2/media.cpp +++ b/pjsip/src/pjsua2/media.cpp @@ -247,14 +247,20 @@ AudioMediaPlayer::AudioMediaPlayer() AudioMediaPlayer::~AudioMediaPlayer() { - if (playerId != PJSUA_INVALID_ID) + if (playerId != PJSUA_INVALID_ID) { + unregisterMediaPort(); pjsua_player_destroy(playerId); + } } void AudioMediaPlayer::createPlayer(const string &file_name, unsigned options) throw(Error) { + if (playerId != PJSUA_INVALID_ID) { + PJSUA2_RAISE_ERROR(PJ_EEXISTS); + } + pj_str_t pj_name = str2Pj(file_name); PJSUA2_CHECK_EXPR( pjsua_player_create(&pj_name, @@ -272,6 +278,10 @@ void AudioMediaPlayer::createPlaylist(const StringVector &file_names, unsigned options) throw(Error) { + if (playerId != PJSUA_INVALID_ID) { + PJSUA2_RAISE_ERROR(PJ_EEXISTS); + } + pj_str_t pj_files[MAX_FILE_NAMES]; unsigned i, count = 0; pj_str_t pj_lbl = str2Pj(label); @@ -317,8 +327,10 @@ AudioMediaRecorder::AudioMediaRecorder() AudioMediaRecorder::~AudioMediaRecorder() { - if (recorderId != PJSUA_INVALID_ID) + if (recorderId != PJSUA_INVALID_ID) { + unregisterMediaPort(); pjsua_recorder_destroy(recorderId); + } } void AudioMediaRecorder::createRecorder(const string &file_name, @@ -329,6 +341,10 @@ void AudioMediaRecorder::createRecorder(const string &file_name, { PJ_UNUSED_ARG(max_size); + if (recorderId != PJSUA_INVALID_ID) { + PJSUA2_RAISE_ERROR(PJ_EEXISTS); + } + pj_str_t pj_name = str2Pj(file_name); PJSUA2_CHECK_EXPR( pjsua_recorder_create(&pj_name, |