1
0
Fork 0
forked from len0rd/rockbox

Slightly more correct saving when recording

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2845 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Linus Nielsen Feltzing 2002-11-13 23:22:40 +00:00
parent 1f214f2732
commit 1521a1c38a

View file

@ -1036,6 +1036,7 @@ static void mpeg_thread(void)
int start_offset; int start_offset;
#ifdef HAVE_MAS3587F #ifdef HAVE_MAS3587F
int amount_to_save; int amount_to_save;
int writelen;
#endif #endif
is_playing = false; is_playing = false;
@ -1622,9 +1623,9 @@ static void mpeg_thread(void)
wrapped */ wrapped */
if(amount_to_save < 0) if(amount_to_save < 0)
{ {
amount_to_save = mp3buflen - mp3buf_read; amount_to_save += mp3buflen;
} }
/* Save data only if the buffer is getting full, /* Save data only if the buffer is getting full,
or if we should stop recording */ or if we should stop recording */
if(amount_to_save) if(amount_to_save)
@ -1632,8 +1633,12 @@ static void mpeg_thread(void)
if(mp3buflen - amount_to_save < MPEG_LOW_WATER || if(mp3buflen - amount_to_save < MPEG_LOW_WATER ||
stop_pending) stop_pending)
{ {
/* Only save up to the end of the buffer */
writelen = MIN(amount_to_save,
mp3buflen - mp3buf_read);
write(mpeg_file, mp3buf + mp3buf_read, write(mpeg_file, mp3buf + mp3buf_read,
amount_to_save); writelen);
mp3buf_read += amount_to_save; mp3buf_read += amount_to_save;
if(mp3buf_read >= mp3buflen) if(mp3buf_read >= mp3buflen)