diff options
| author | Brandon Low <lostlogic@rockbox.org> | 2006-10-23 12:44:11 +0000 |
|---|---|---|
| committer | Brandon Low <lostlogic@rockbox.org> | 2006-10-23 12:44:11 +0000 |
| commit | 500a761cb042ffd23a808c7d62d17809d3f1e543 (patch) | |
| tree | fc97e3e968ece9594c27e5fab71d8e17c25d9b43 | |
| parent | 4a4c67f660ffd5ab3aeada45562a09afb880a4f3 (diff) | |
| download | rockbox-500a761cb042ffd23a808c7d62d17809d3f1e543.zip rockbox-500a761cb042ffd23a808c7d62d17809d3f1e543.tar.gz rockbox-500a761cb042ffd23a808c7d62d17809d3f1e543.tar.bz2 rockbox-500a761cb042ffd23a808c7d62d17809d3f1e543.tar.xz | |
Last fix was wrong, I did the math this time, should fix more buffering edges
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11315 a1c6a512-1295-4272-9138-f99709370657
| -rw-r--r-- | apps/playback.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/apps/playback.c b/apps/playback.c index a74eee1..9e95c4f 100644 --- a/apps/playback.c +++ b/apps/playback.c @@ -2154,30 +2154,30 @@ static bool audio_read_file(size_t minimum) break; } - tracks[track_widx].available += rc; - tracks[track_widx].filerem -= rc; - /* How much of the playing track did we overwrite */ if (buf_widx == CUR_TI->buf_idx) { /* Special handling; zero or full overlap? */ - if (CUR_TI->filerem) - overlap = rc; + if (track_widx == track_ridx && CUR_TI->available == 0) + overlap = 0; else - overlap=0; + overlap = rc; } else overlap = RINGBUF_ADD_CROSS(buf_widx,rc,CUR_TI->buf_idx); /* Advance buffer */ buf_widx = RINGBUF_ADD(buf_widx, rc); + tracks[track_widx].available += rc; + tracks[track_widx].filerem -= rc; /* If we write into the playing track, adjust it's buffer info */ - if (overlap > 0 && CUR_TI->available != 0) { + if (overlap > 0) + { CUR_TI->buf_idx += overlap; CUR_TI->start_pos += overlap; } - + /* For a rebuffer, fill at least this minimum */ if (minimum > (unsigned)rc) minimum -= rc; |