summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenny Prijono <bennylp@teluu.com>2008-01-04 17:57:51 +0000
committerBenny Prijono <bennylp@teluu.com>2008-01-04 17:57:51 +0000
commit9fdd2e1b7cd645c5eb82f364f0f54431b204923e (patch)
tree98f7eb72217cc0eec6097252446f6a15cef352aa
parente9683885ee12f39ab4c84bd2e5a8f15aaea37aef (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.c15
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)