summaryrefslogtreecommitdiff
path: root/pjsip
diff options
context:
space:
mode:
authorNanang Izzuddin <nanang@teluu.com>2014-01-21 10:59:25 +0000
committerNanang Izzuddin <nanang@teluu.com>2014-01-21 10:59:25 +0000
commit8c5296fba455adc138bce1d8c643659db575c7b1 (patch)
tree09c96130d5afa86746f4582f69e873b510ecfdc3 /pjsip
parent0703ebd85dd35f119bc5ca2554b1e98da1ab1dad (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.cpp20
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,