never-ending mp3 saga

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@9172 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Anthony Minessale 2008-07-24 18:43:10 +00:00
parent 270ef7f67d
commit 948557162f
1 changed files with 7 additions and 6 deletions

View File

@ -223,13 +223,13 @@ static size_t decode_fd(shout_context_t *context, void *data, size_t bytes)
int dlen = 0;
int x = 0;
char *in;
int inlen;
int inlen = 0;
char *out;
int outlen;
int usedlen;
char inbuf[MP3_SCACHE];
int done = 0;
size_t used;
size_t lp;
size_t rb = 0;
@ -248,10 +248,9 @@ static size_t decode_fd(shout_context_t *context, void *data, size_t bytes)
x = 0;
if (inlen < bytes) {
bytes = inlen;
done = 1;
}
do {
decode_status = decodeMP3(&context->mp, in, inlen, out, outlen, &dlen);
@ -310,8 +309,10 @@ static size_t decode_fd(shout_context_t *context, void *data, size_t bytes)
}
}
if (done || switch_buffer_inuse(context->audio_buffer) >= bytes) {
rb = switch_buffer_read(context->audio_buffer, data, bytes);
used = switch_buffer_inuse(context->audio_buffer);
if (done || used >= bytes) {
rb = switch_buffer_read(context->audio_buffer, data, used);
return rb;
}