diff options
author | Miika Pekkarinen <miipekk@ihme.org> | 2005-06-10 20:29:35 +0000 |
---|---|---|
committer | Miika Pekkarinen <miipekk@ihme.org> | 2005-06-10 20:29:35 +0000 |
commit | 9ff373cb6574675b9ae03c92d604b7ae87e39156 (patch) | |
tree | 5feef24a8452579f1089467f328b678b92642c77 /apps/playback.c | |
parent | 7e0b6880d9cfb5d4a528e2de091eb3b307beca2f (diff) | |
download | rockbox-9ff373cb6574675b9ae03c92d604b7ae87e39156.tar.gz rockbox-9ff373cb6574675b9ae03c92d604b7ae87e39156.zip |
Fixed a null pointer problem which caused crashing. Playback should be
now more stable.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6660 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/playback.c')
-rw-r--r-- | apps/playback.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/apps/playback.c b/apps/playback.c index a804103006..3e046fad6c 100644 --- a/apps/playback.c +++ b/apps/playback.c | |||
@@ -261,6 +261,7 @@ void* codec_request_buffer_callback(size_t *realsize, size_t reqsize) | |||
261 | while ((int)*realsize > cur_ti->available) { | 261 | while ((int)*realsize > cur_ti->available) { |
262 | yield(); | 262 | yield(); |
263 | if (ci.stop_codec) { | 263 | if (ci.stop_codec) { |
264 | *realsize = 0; | ||
264 | return NULL; | 265 | return NULL; |
265 | } | 266 | } |
266 | } | 267 | } |
@@ -286,7 +287,7 @@ void codec_advance_buffer_callback(size_t amount) | |||
286 | codecbufused = 0; | 287 | codecbufused = 0; |
287 | buf_ridx = buf_widx; | 288 | buf_ridx = buf_widx; |
288 | cur_ti->available = 0; | 289 | cur_ti->available = 0; |
289 | while ((int)amount < cur_ti->available) | 290 | while ((int)amount < cur_ti->available && !ci.stop_codec) |
290 | yield(); | 291 | yield(); |
291 | } else { | 292 | } else { |
292 | cur_ti->available -= amount; | 293 | cur_ti->available -= amount; |
@@ -427,7 +428,8 @@ void yield_codecs(void) | |||
427 | #ifndef SIMULATOR | 428 | #ifndef SIMULATOR |
428 | if (!pcm_is_playing()) | 429 | if (!pcm_is_playing()) |
429 | sleep(5); | 430 | sleep(5); |
430 | while (pcm_is_lowdata()) | 431 | while (pcm_is_lowdata() && !ci.stop_codec && |
432 | playing && queue_empty(&audio_queue)) | ||
431 | yield(); | 433 | yield(); |
432 | #else | 434 | #else |
433 | yield(); | 435 | yield(); |