Skip to content

Commit 3a9b0ad

Browse files
committed
fixed a signed/unsigned problem in the margin computation.
git-svn-id: http://svn.xiph.org/trunk/speex@12805 0101bb08-14d6-0310-b084-bc0e0c8e3800
1 parent 86e2a84 commit 3a9b0ad

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

include/speex/speex_jitter.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ void jitter_buffer_put(JitterBuffer *jitter, const JitterBufferPacket *packet);
121121
* @param packet Returned packet
122122
* @param current_timestamp Timestamp for the returned packet
123123
*/
124-
int jitter_buffer_get(JitterBuffer *jitter, JitterBufferPacket *packet, spx_uint32_t *current_timestamp);
124+
int jitter_buffer_get(JitterBuffer *jitter, JitterBufferPacket *packet, spx_int32_t *start_offset);
125125

126126
/** Get pointer timestamp of jitter buffer
127127
*
@@ -144,7 +144,7 @@ void jitter_buffer_tick(JitterBuffer *jitter);
144144
*/
145145
int jitter_buffer_ctl(JitterBuffer *jitter, int request, void *ptr);
146146

147-
int jitter_buffer_update_delay(JitterBuffer *jitter, JitterBufferPacket *packet, spx_uint32_t *start_offset);
147+
int jitter_buffer_update_delay(JitterBuffer *jitter, JitterBufferPacket *packet, spx_int32_t *start_offset);
148148

149149
/* @} */
150150

libspeex/jitter.c

+4-4
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ void jitter_buffer_put(JitterBuffer *jitter, const JitterBufferPacket *packet)
196196

197197
/* Adjust the buffer size depending on network conditions.
198198
The arrival margin is how much in advance (or late) the packet it */
199-
arrival_margin = (packet->timestamp - jitter->current_timestamp)/jitter->tick_size - jitter->buffer_margin;
199+
arrival_margin = (((spx_int32_t)packet->timestamp) - ((spx_int32_t)jitter->current_timestamp))/jitter->tick_size - jitter->buffer_margin;
200200

201201
if (arrival_margin >= -jitter->late_cutoff)
202202
{
@@ -242,7 +242,7 @@ void jitter_buffer_put(JitterBuffer *jitter, const JitterBufferPacket *packet)
242242
}
243243

244244
/** Get one packet from the jitter buffer */
245-
int jitter_buffer_get(JitterBuffer *jitter, JitterBufferPacket *packet, spx_uint32_t *start_offset)
245+
int jitter_buffer_get(JitterBuffer *jitter, JitterBufferPacket *packet, spx_int32_t *start_offset)
246246
{
247247
int i;
248248
unsigned int j;
@@ -377,7 +377,7 @@ int jitter_buffer_get(JitterBuffer *jitter, JitterBufferPacket *packet, spx_uint
377377
jitter->buf[i] = NULL;
378378
/* Set timestamp and span (if requested) */
379379
if (start_offset)
380-
*start_offset = jitter->timestamp[i]-jitter->pointer_timestamp;
380+
*start_offset = (spx_int32_t)jitter->timestamp[i]-(spx_int32_t)jitter->pointer_timestamp;
381381
packet->timestamp = jitter->timestamp[i];
382382
packet->span = jitter->span[i];
383383
/* Point at the end of the current packet */
@@ -437,7 +437,7 @@ void jitter_buffer_tick(JitterBuffer *jitter)
437437
}
438438

439439
/* Let the jitter buffer know it's the right time to adjust the buffering delay to the network conditions */
440-
int jitter_buffer_update_delay(JitterBuffer *jitter, JitterBufferPacket *packet, spx_uint32_t *start_offset)
440+
int jitter_buffer_update_delay(JitterBuffer *jitter, JitterBufferPacket *packet, spx_int32_t *start_offset)
441441
{
442442
int i;
443443
float late_ratio_short;

0 commit comments

Comments
 (0)