From ea47fd0e42771df9318ac669b4288716d5031132 Mon Sep 17 00:00:00 2001 From: Nicolas Pennequin Date: Thu, 11 Oct 2007 15:06:17 +0200 Subject: [PATCH] Only ask once for buffering, then wait for the data to become available --- apps/playback.c | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/apps/playback.c b/apps/playback.c index e85216580..b37fb79d8 100644 --- a/apps/playback.c +++ b/apps/playback.c @@ -1516,19 +1516,17 @@ static size_t codec_filebuf_callback(void *ptr, size_t size) if (copy_n == 0) return 0; - /* Let the disk buffer catch fill until enough data is available */ - while (copy_n == -2) - { -#if 0 - if (!filling) - { - LOGFQUEUE("codec > audio Q_AUDIO_FILL_BUFFER"); - queue_post(&audio_queue, Q_AUDIO_FILL_BUFFER, 0); - } -#endif + if (copy_n == -2) + { LOGFQUEUE("codec >| buffering Q_BUFFER_HANDLE"); queue_send(&buffering_queue, Q_BUFFER_HANDLE, CUR_TI->audio_hid); + } + + /* Let the disk buffer catch fill until enough data is available */ + while (copy_n == -2) + { + sleep(1); if (ci.stop_codec || ci.new_track) return 0; @@ -1566,19 +1564,15 @@ static void* codec_request_buffer_callback(size_t *realsize, size_t reqsize) return NULL; } - while (ret == -2) + if (ret == -2) { -#if 0 - if (!filling) - { - LOGFQUEUE("codec > audio Q_AUDIO_FILL_BUFFER"); - queue_post(&audio_queue, Q_AUDIO_FILL_BUFFER, 0); - } -#endif - LOGFQUEUE("codec >| buffering Q_BUFFER_HANDLE"); queue_send(&buffering_queue, Q_BUFFER_HANDLE, CUR_TI->audio_hid); + } + /* Let the disk buffer catch fill until enough data is available */ + while (ret == -2) + { sleep(1); if (ci.stop_codec || ci.new_track) -- 2.11.4.GIT