diff options
author | Benny Prijono <bennylp@teluu.com> | 2008-02-28 14:16:43 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2008-02-28 14:16:43 +0000 |
commit | 5bf74069bdfcdbdccd58a386705d5c0a16581430 (patch) | |
tree | 65fc797f10a27655f90f2659148570521d3edf73 /pjmedia/src | |
parent | 01875d16a1138e0e72940f0f8214856f4f1540c2 (diff) |
Ticket #496: Crash on sound port when only player is opened and delaybuf enabled
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@1825 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia/src')
-rw-r--r-- | pjmedia/src/pjmedia/sound_port.c | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/pjmedia/src/pjmedia/sound_port.c b/pjmedia/src/pjmedia/sound_port.c index 760d79f0..79dbd7cc 100644 --- a/pjmedia/src/pjmedia/sound_port.c +++ b/pjmedia/src/pjmedia/sound_port.c @@ -99,12 +99,15 @@ static pj_status_t play_cb(/* in */ void *user_data, frame.timestamp.u32.lo = timestamp; #if PJMEDIA_SOUND_USE_DELAYBUF - status = pjmedia_delay_buf_get(snd_port->delay_buf, (pj_int16_t*)output); - if (status != PJ_SUCCESS) { - pj_bzero(output, size); - } + if (snd_port->delay_buf) { + status = pjmedia_delay_buf_get(snd_port->delay_buf, (pj_int16_t*)output); + if (status != PJ_SUCCESS) { + pj_bzero(output, size); + } - pjmedia_port_put_frame(port, &frame); + frame.type = PJMEDIA_FRAME_TYPE_AUDIO; + pjmedia_port_put_frame(port, &frame); + } #endif status = pjmedia_port_get_frame(port, &frame); @@ -200,10 +203,16 @@ static pj_status_t rec_cb(/* in */ void *user_data, } #if PJMEDIA_SOUND_USE_DELAYBUF - PJ_UNUSED_ARG(size); - PJ_UNUSED_ARG(timestamp); - PJ_UNUSED_ARG(frame); - pjmedia_delay_buf_put(snd_port->delay_buf, (pj_int16_t*)input); + if (snd_port->delay_buf) { + pjmedia_delay_buf_put(snd_port->delay_buf, (pj_int16_t*)input); + } else { + frame.buf = (void*)input; + frame.size = size; + frame.type = PJMEDIA_FRAME_TYPE_AUDIO; + frame.timestamp.u32.lo = timestamp; + + pjmedia_port_put_frame(port, &frame); + } #else frame.buf = (void*)input; frame.size = size; |