Index: include/speex/speex_jitter.h =================================================================== --- include/speex/speex_jitter.h (Revision 12672) +++ include/speex/speex_jitter.h (Arbeitskopie) @@ -81,6 +81,8 @@ #define JITTER_BUFFER_SET_MARGIN 0 /** Get minimum amount of extra buffering required (margin) */ #define JITTER_BUFFER_GET_MARGIN 1 +/** Get the amount of avaliable packets currently buffered */ +#define JITTER_BUFFER_GET_AVALIABLE_COUNT 2 #define JITTER_BUFFER_ADJUST_INTERPOLATE -1 #define JITTER_BUFFER_ADJUST_OK 0 Index: libspeex/jitter.c =================================================================== --- libspeex/jitter.c (Revision 12672) +++ libspeex/jitter.c (Arbeitskopie) @@ -516,6 +516,7 @@ /* Used like the ioctl function to control the jitter buffer parameters */ int jitter_buffer_ctl(JitterBuffer *jitter, int request, void *ptr) { + int count, i; switch(request) { case JITTER_BUFFER_SET_MARGIN: @@ -524,6 +525,17 @@ case JITTER_BUFFER_GET_MARGIN: *(spx_int32_t*)ptr = jitter->buffer_margin; break; + case JITTER_BUFFER_GET_AVALIABLE_COUNT: + count = 0; + for (i=0;ibuf[i] && LE32(jitter->pointer_timestamp, jitter->timestamp[i])) + { + count++; + } + } + *(spx_int32_t*)ptr = count; + break; default: speex_warning_int("Unknown jitter_buffer_ctl request: ", request); return -1;