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:
parent
1f214f2732
commit
1521a1c38a
1 changed files with 8 additions and 3 deletions
|
|
@ -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)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue