summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2005-09-02 07:01:08 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2005-09-02 07:01:08 +0000
commit051f2cf3de7d6b839dea962f69a898a46f29f678 (patch)
tree8f13bdcd86d1b6724ed846548b4f5b9809b9e19f
parent60895bc107f5689f19de61828d8ffe0f2f1f59b5 (diff)
downloadrockbox-051f2cf3de7d6b839dea962f69a898a46f29f678.tar.gz
rockbox-051f2cf3de7d6b839dea962f69a898a46f29f678.zip
Adjusted the file size calculation when prerecording
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7451 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/mpeg.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/firmware/mpeg.c b/firmware/mpeg.c
index 933d02ce8a..cd413d60fd 100644
--- a/firmware/mpeg.c
+++ b/firmware/mpeg.c
@@ -1752,13 +1752,15 @@ static void mpeg_thread(void)
1752 if(is_prerecording) 1752 if(is_prerecording)
1753 { 1753 {
1754 int startpos, i; 1754 int startpos, i;
1755 int level;
1755 1756
1756 /* Go back prerecord_count seconds in the buffer */ 1757 /* Go back prerecord_count seconds in the buffer */
1757 startpos = prerecord_index - prerecord_count; 1758 startpos = prerecord_index - prerecord_count;
1758 if(startpos < 0) 1759 if(startpos < 0)
1759 startpos += prerecording_max_seconds; 1760 startpos += prerecording_max_seconds;
1760 1761
1761 /* Read the mp3 buffer pointer from the prerecord buffer */ 1762 /* Read the mp3 buffer pointer from the prerecord
1763 buffer */
1762 startpos = prerecord_buffer[startpos]; 1764 startpos = prerecord_buffer[startpos];
1763 1765
1764 DEBUGF("Start looking at address %x (%x)\n", 1766 DEBUGF("Start looking at address %x (%x)\n",
@@ -1770,10 +1772,16 @@ static void mpeg_thread(void)
1770 saved_header); 1772 saved_header);
1771 1773
1772 audiobuf_read = startpos + offset; 1774 audiobuf_read = startpos + offset;
1773 1775 if(audiobuf_read >= audiobuflen)
1776 audiobuf_read -= audiobuflen;
1777
1774 DEBUGF("New audiobuf_read address: %x (%x)\n", 1778 DEBUGF("New audiobuf_read address: %x (%x)\n",
1775 audiobuf+audiobuf_read, audiobuf_read); 1779 audiobuf+audiobuf_read, audiobuf_read);
1776 1780
1781 level = set_irq_level(HIGHEST_IRQ_LEVEL);
1782 num_rec_bytes = get_unsaved_space();
1783 set_irq_level(level);
1784
1777 /* Make room for headers */ 1785 /* Make room for headers */
1778 audiobuf_read -= MPEG_RESERVED_HEADER_SPACE; 1786 audiobuf_read -= MPEG_RESERVED_HEADER_SPACE;
1779 if(audiobuf_read < 0) 1787 if(audiobuf_read < 0)