diff options
author | Benny Prijono <bennylp@teluu.com> | 2008-01-04 17:57:51 +0000 |
---|---|---|
committer | Benny Prijono <bennylp@teluu.com> | 2008-01-04 17:57:51 +0000 |
commit | 9fdd2e1b7cd645c5eb82f364f0f54431b204923e (patch) | |
tree | 98f7eb72217cc0eec6097252446f6a15cef352aa | |
parent | e9683885ee12f39ab4c84bd2e5a8f15aaea37aef (diff) |
Fixed timestamp bug in pasound.c: timestamp is shared by both playback and record and it was incorrectly incremented by both
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@1662 74dad513-b988-da41-8d7b-12977e46ad98
-rw-r--r-- | pjmedia/src/pjmedia/pasound.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/pjmedia/src/pjmedia/pasound.c b/pjmedia/src/pjmedia/pasound.c index 9e0b39d1..cd28b26b 100644 --- a/pjmedia/src/pjmedia/pasound.c +++ b/pjmedia/src/pjmedia/pasound.c @@ -61,7 +61,8 @@ struct pjmedia_snd_stream pjmedia_snd_rec_cb rec_cb; pjmedia_snd_play_cb play_cb; - pj_uint32_t timestamp; + pj_uint32_t play_timestamp; + pj_uint32_t rec_timestamp; pj_uint32_t underflow; pj_uint32_t overflow; @@ -89,6 +90,8 @@ static int PaRecorderCallback(const void *input, pjmedia_snd_stream *stream = (pjmedia_snd_stream*) userData; pj_status_t status; + pj_assert(frameCount == stream->samples_per_frame * stream->channel_count); + PJ_UNUSED_ARG(output); PJ_UNUSED_ARG(timeInfo); @@ -110,9 +113,9 @@ static int PaRecorderCallback(const void *input, if (statusFlags & paInputOverflow) ++stream->overflow; - stream->timestamp += frameCount; + stream->rec_timestamp += frameCount; - status = (*stream->rec_cb)(stream->user_data, stream->timestamp, + status = (*stream->rec_cb)(stream->user_data, stream->rec_timestamp, (void*)input, frameCount * stream->bytes_per_sample * stream->channel_count); @@ -137,6 +140,8 @@ static int PaPlayerCallback( const void *input, unsigned size = frameCount * stream->bytes_per_sample * stream->channel_count; + pj_assert(frameCount == stream->samples_per_frame * stream->channel_count); + PJ_UNUSED_ARG(input); PJ_UNUSED_ARG(timeInfo); @@ -158,9 +163,9 @@ static int PaPlayerCallback( const void *input, if (statusFlags & paOutputOverflow) ++stream->overflow; - stream->timestamp += frameCount; + stream->play_timestamp += frameCount; - status = (*stream->play_cb)(stream->user_data, stream->timestamp, + status = (*stream->play_cb)(stream->user_data, stream->play_timestamp, output, size); if (status==0) |