diff options
author | Jens Arnold <amiconn@rockbox.org> | 2005-03-09 19:36:53 +0000 |
---|---|---|
committer | Jens Arnold <amiconn@rockbox.org> | 2005-03-09 19:36:53 +0000 |
commit | 58aa4c98bb61020beffde5759c7bd65e190d160c (patch) | |
tree | 3e6ebb193f3a1d3e4f32432ef25fa78511f9c653 /apps/plugins | |
parent | bb9dfa0b02f00f94168640f18491dd65f4309782 (diff) | |
download | rockbox-58aa4c98bb61020beffde5759c7bd65e190d160c.tar.gz rockbox-58aa4c98bb61020beffde5759c7bd65e190d160c.zip |
Fixes for the codec test environment: (1) Long aligned codec_malloc(). (2) Update all stats at most once per second.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6176 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins')
-rw-r--r-- | apps/plugins/lib/xxx2wav.c | 50 |
1 files changed, 28 insertions, 22 deletions
diff --git a/apps/plugins/lib/xxx2wav.c b/apps/plugins/lib/xxx2wav.c index 3f9fab062b..4d0c139f1b 100644 --- a/apps/plugins/lib/xxx2wav.c +++ b/apps/plugins/lib/xxx2wav.c | |||
@@ -36,13 +36,18 @@ unsigned char* filebuf; // The rest of the MP3 buffer | |||
36 | void* codec_malloc(size_t size) { | 36 | void* codec_malloc(size_t size) { |
37 | void* x; | 37 | void* x; |
38 | char s[32]; | 38 | char s[32]; |
39 | static long last_tick = 0; | ||
39 | 40 | ||
40 | x=&mallocbuf[mem_ptr]; | 41 | x=&mallocbuf[mem_ptr]; |
41 | mem_ptr+=size+(size%4); // Keep memory 32-bit aligned (if it was already?) | 42 | mem_ptr+=(size+3)&~3; // Keep memory 32-bit aligned (if it was already?) |
42 | 43 | ||
43 | local_rb->snprintf(s,30,"Memory used: %d",mem_ptr); | 44 | if(TIME_AFTER(*(local_rb->current_tick), last_tick + HZ)) { |
44 | local_rb->lcd_putsxy(0,80,s); | 45 | local_rb->snprintf(s,30,"Memory used: %d",mem_ptr); |
45 | local_rb->lcd_update(); | 46 | local_rb->lcd_putsxy(0,80,s); |
47 | |||
48 | last_tick = *(local_rb->current_tick); | ||
49 | local_rb->lcd_update(); | ||
50 | } | ||
46 | return(x); | 51 | return(x); |
47 | } | 52 | } |
48 | 53 | ||
@@ -111,32 +116,32 @@ void display_status(file_info_struct* file_info) { | |||
111 | unsigned long xspeed; | 116 | unsigned long xspeed; |
112 | static long last_tick = 0; | 117 | static long last_tick = 0; |
113 | 118 | ||
114 | local_rb->snprintf(s,32,"Bytes read: %d",file_info->curpos); | 119 | if(TIME_AFTER(*(local_rb->current_tick), last_tick + HZ)) { |
115 | local_rb->lcd_putsxy(0,0,s); | 120 | local_rb->snprintf(s,32,"Bytes read: %d",file_info->curpos); |
116 | local_rb->snprintf(s,32,"Samples Decoded: %d",file_info->current_sample); | 121 | local_rb->lcd_putsxy(0,0,s); |
117 | local_rb->lcd_putsxy(0,20,s); | 122 | local_rb->snprintf(s,32,"Samples Decoded: %d",file_info->current_sample); |
118 | local_rb->snprintf(s,32,"Frames Decoded: %d",file_info->frames_decoded); | 123 | local_rb->lcd_putsxy(0,20,s); |
119 | local_rb->lcd_putsxy(0,40,s); | 124 | local_rb->snprintf(s,32,"Frames Decoded: %d",file_info->frames_decoded); |
125 | local_rb->lcd_putsxy(0,40,s); | ||
120 | 126 | ||
121 | ticks_taken=*(local_rb->current_tick)-file_info->start_tick; | 127 | ticks_taken=*(local_rb->current_tick)-file_info->start_tick; |
122 | 128 | ||
123 | /* e.g.: | 129 | /* e.g.: |
124 | ticks_taken=500 | 130 | ticks_taken=500 |
125 | sam_fmt.rate=44,100 | 131 | sam_fmt.rate=44,100 |
126 | samples_decoded=172,400 | 132 | samples_decoded=172,400 |
127 | (samples_decoded/sam_fmt.rate)*100=400 (time it should have taken) | 133 | (samples_decoded/sam_fmt.rate)*100=400 (time it should have taken) |
128 | % Speed=(400/500)*100=80% | 134 | % Speed=(400/500)*100=80% |
129 | */ | 135 | */ |
130 | 136 | ||
131 | if (ticks_taken==0) { ticks_taken=1; } // Avoid fp exception. | 137 | if (ticks_taken==0) { ticks_taken=1; } // Avoid fp exception. |
132 | 138 | ||
133 | if(TIME_AFTER(*(local_rb->current_tick), last_tick + HZ)) { | ||
134 | last_tick = *(local_rb->current_tick); | ||
135 | speed=(100*file_info->current_sample)/file_info->samplerate; | 139 | speed=(100*file_info->current_sample)/file_info->samplerate; |
136 | xspeed=(speed*10000)/ticks_taken; | 140 | xspeed=(speed*10000)/ticks_taken; |
137 | local_rb->snprintf(s,32,"Speed %ld.%02ld %% Secs: %d",(xspeed/100),(xspeed%100),ticks_taken/100); | 141 | local_rb->snprintf(s,32,"Speed %ld.%02ld %% Secs: %d",(xspeed/100),(xspeed%100),ticks_taken/100); |
138 | local_rb->lcd_putsxy(0,60,s); | 142 | local_rb->lcd_putsxy(0,60,s); |
139 | 143 | ||
144 | last_tick = *(local_rb->current_tick); | ||
140 | local_rb->lcd_update(); | 145 | local_rb->lcd_update(); |
141 | } | 146 | } |
142 | } | 147 | } |
@@ -204,6 +209,7 @@ int local_init(char* infilename, char* outfilename, file_info_struct* file_info, | |||
204 | i+=n; bytesleft-=n; | 209 | i+=n; bytesleft-=n; |
205 | } | 210 | } |
206 | local_rb->close(file_info->infile); | 211 | local_rb->close(file_info->infile); |
212 | local_rb->lcd_clear_display(); | ||
207 | return(0); | 213 | return(0); |
208 | } | 214 | } |
209 | 215 | ||