|
10026 | Rockbox | Patches | Drivers | Low | E200: Improve USB detection in WinXP | 2009-03-15 | |
Task Description
E200: Improve WinXP rockbox USB detection
With current SVN (in fact since the beginning of rockbox USB) I had the problem, that 7 out of 10 WinXP connections failed on the first try. A second try without reboot caused rockbox to freeze in the USB screen. If a connection was established (on the first try), I had no problems copying files from / to the sansa. After investigating the OF, I found the evil register, which seems to cause the problems.
In usb_init_device(void) (usb-fw-pp502x.c) I added the following register manipulation behind the udelay(100000) statement. This one liner solves the problems here and leads to the same behaviour as the OF. (no failed connections). After a short test I found no negative impact on other software parts.
XMB_RAM_CFG |= 0x47A; (added below udelay(100000); in usb-fw-pp502x.c
|
|
9570 | Rockbox | Patches | Battery/Charging | Low | Sansa e200v1: Increased runtime by ~20% | 2008-11-22 | 1 |
Task Description
This patch improves the runtime on flash based players with PP5022 and PP5024 (Sansa e200v1/c200v1) per battery cycle by about 20%. The average current at MP3 playback decreases from 34mA to 28mA. This could be achieved by powering off the SD controller when not needed and switching off the PLL at 30MHz. Only tested on Sansa E200v1 with no negative side effects.
|
|
9007 | Rockbox | Patches | Recording | Low | MP3 encoder (codec & plugin) quality improvements | 2008-05-18 | 1 |
Task Description
This patch gives better quality than the current due to the following changes: (1) bugfix in bit allocation (correct sign for '1' values) (2) increase range of mdct freq values (improves quality for single frequency peaks, dc-offset) (3) bugfix in the encoding of 'big' frequency peaks (avoid misencoding of remaining data) did not happen without (2) (4) make use of scale factors (reduces mp3 noise) (5) unifications of mp3 encoder plugin and codec (6) preserve integer scale factors for mdct calculation, small performance tweak (7) separate mdct sign and absolute values, keep performance The overall performance has slightely decreased.
|
|
8830 | Rockbox | Patches | Drivers | Low | Sansa: DMA support for sd-card data access (experimenta... | 2008-03-30 | 1 |
Task Description
First approach, to add dma read/write disk access to the sansa.
There are some restrictions on the dma functionality with this patch: - only stabile at 80MHz ⇒ cpu boost control added to the driver - only on 16byte aligned data ptr ⇒ all data are copied to/from aligned memory - no interrupt support ⇒ using polling method
At 30MHz the driver is much more stable with the following PLL settings: PLL_CONTROL = 0x8a221e0c; /* 30 MHz = (48MHz/12*30) / 4 */ CLOCK_SOURCE = 0×40007777; /* source #1, #2, #3, #4: PLL (#4 active) */
Reading seems to be in general more reliable than writing of the cards. The data throughput is a little worse than in the current implementation. This is partly due to the data copying. The sporadical ‘2bytes inserted’ problem with the USB file transfer is still there. Interestingly @30MHz with the above settings, there is another problem: sporadically ‘2bytes missing’ and ‘2bytes inserted’. Perhaps the DMA transfer needs some more initialization for proper synchronization.
|
|
7660 | Rockbox | Patches | Plugins | Low | Plugin espeak TTS engine for rockbox | 2007-08-26 | 3 |
Task Description
A first port of espeak running on rockbox. Warning: Only tested on Sansa player!
I have skipped some advanced features of espeak, for example: - mbrola - on the fly Translator language switching (try: ‘spring’ with german selected)
Because this plugin is very basic, there is no file input selection. It always reads from the ‘test.txt’ in the root. You have to unzip the espeak-data to the root of your player.
|
|
7213 | Rockbox | Feature Requests | Music playback | Low | Align audio data reading in the playback engine to even ... | 2007-05-26 | |
Task Description
In the current playback system after reading an odd length audio (mp3) file all following ata reads for the next audio file have to deal with unaligned read buffers. This reduces the file reading speed on many (all?) targets. I could solve this issue with following lines in playback.c:
/* rc is the actual amount read */ rc = read(current_fd, &filebuf[buf_widx], copy_n);
/* align audio filesize, faster ata reading (even address) */ if(rc > 0) rc = (rc + 1) & ~1;
This align looks a little bit dangerous, so I am not sure, wether it works for all audio input formats.
|
|
7182 | Rockbox | Patches | Operating System/Drivers | Low | ARM Disassembler | 2007-05-17 | 5 |
Task Description
First approach of a simple ARM disassembler. Compared to the gnu objdump it has following enhancements: - shows 'const' data in the disassembly - shows calculated 'const' data (i.e. mov rx, #v1 followed by sub/add rx, rx, #v2) - skips disassembly of accessed 'const' data Currently thumb disassembly is not supported. The binary input must not exceed 8MB.
|
|
7134 | Rockbox | Patches | Drivers | Low | Sansa: external sd-card support | 2007-05-08 | 22 |
Task Description
This patch adds sd-card support to the software. It still has some freeze issues during hotswap. A 15sec press of the power button is your friend here. Please give feedback, wether the patched software basically runs with your sd-card. Tag-/DirCache had to be disabled, because that part is not completely prepared for multi volume support. You have to update also the codecs and plugins.
|
|
7101 | Rockbox | Patches | Drivers | Low | Sansa: bugfix in rtc date/time calculation | 2007-05-02 | 1 |
Task Description
This patch fixes the reported bug #7096 and bug #7097 in date/time calculation.
|
|
7099 | Rockbox | Patches | Drivers | Low | Sansa: bugfix in AS3514 shadow register handling | 2007-05-02 | 1 |
Task Description
Fixes two bugs in the shadow register handling: - shadow array size adjusted - shadow register read loop adjusted These bugs seem to have no bad impact currently. I included an array under-/overflow check too.
|
|
7036 | Rockbox | Patches | Battery/Charging | Low | Sansa: Increase battery runtime | 2007-04-15 | 3 |
Task Description
Increase battery runtime on the sansa e200 by: 1. enabling frequency scaling 2. shutdown of the lcd controller (if backlight off) 3. shutdown of the ata controller (if no diskaccess in progress) According to the current measurements the current is reduced from 65mA (current svn) to 45mA (patched) with mp3 128kB and medium volume. That means some more hours of runtime per battery cycle. In addition this patch includes the updated anti audio glitch patch.
|
|
6964 | Rockbox | Bugs | Plugins | Low | Plugin header info incorrect? | 2007-04-03 | |
Task Description
For some reason the plugin header 'end_addr' entry can be smaller than the plugin filesize. This may create serious problems with the clearing of the bss area by the following rb code: memset(pluginbuf + readsize, 0, plugin_size - readsize); The hiss in the mpegplayer on the sansa seems to be a result from this bug.
|
|
6908 | Rockbox | Patches | Drivers | Low | Sansa: avoid audio glitches, vinyl like effect | 2007-03-25 | 6 |
Task Description
Workaround to avoid audio glitches (very short audio dropouts) in conjunction with heavy screen update tasks like: - wps with peakmeter - fast scrolling lists
This patch also allows flawless frequency scaling (if enabled in the binary). It maybe also avoid the bug reported in http://www.rockbox.org/tracker/task/6900.
Please test.
|
|
6859 | Rockbox | Patches | Bootloader | Low | Avoid crashes on the Sansa during booting | 2007-03-19 | 1 |
Task Description
This patch should fix the occasional crashes during booting.
|
|
6524 | Rockbox | Patches | Operating System/Drivers | Low | Sansa E2x0 emulator | 2007-01-10 | 10 |
Task Description
Here is the source code to emulate Sansa firmware on a PC.
Until now I have done following components (rockbox used functionality only!): - emulate cpu - emulate ata (read only functionality) - emulate display - emulate memory - emulate keys - emulate timers - log the executed code to disassembler file (including rockbox.map infos) I can run the compiled rockbox.bin and play some games. It is still very hackish, but works sufficiently to get an idea, what the original/rockbox firmware does (unknown address access, program flow, timings). Hopefully this also gives some hints, how the DAC can be controlled (not in the near future).
Not supported yet: - thumb code - coprocessor - firq / audio Untested: - audio codecs
Input files needed in the emulator executable directory: - partition.bin from the sansa - rockbox.map (for rockbox binary) - rockbox.bin (or of.bin from sansa)
Output file: - disassembly.txt (logs the last n instructions in the instruction loop)
I compiled under MSVC, so be aware to get some porting problems, if you use another compiler.
Toni
|
|
6316 | Rockbox | Patches | Recording | Low | Avoid full cpu boost during radio recordings | 2006-11-11 | 1 |
Task Description
Avoid full cpu boost during radio recordings (on H1xx and others?)
Synptom: Entering the recording screen via radio menu leads to cpu full boost recording. This unnecessary drains the battery during recordings.
Reason for full boost: The thread.c module only unboosts when all threads are sleeping. Unfortunately the encoder codecs never sleep.
But this works fine, if the latency between the last trigger_cpu_boost() and loading the codecs is big enough to do the unboost before the encoder codec has been loaded. The rec_set_source() in recording.c gives this latency if the source is REALLY changed.
But when starting a recording from the radio screen, the latency is smaller, because there is no real recording source change. So the new encoder thread will be started (and never sleep) before thread.c stops boosting.
Solution: To solve the described problem, this patch applies a small sleep() to the encoders, so that thread.c gets the chance to do the unboost even after the encoders have been started.
|
|
5972 | Rockbox | Patches | Recording | Medium | DivideByZero fix with recordings | 2006-09-11 | 1 |
Task Description
This patch solves the DivideByZero problem (I05 at 0x31020634) at recording start/end on iriver. In read_peak_levels() were 2 uncontrolled divisions with variable values. This patch fixes http://www.rockbox.org/tracker/task/5961.
|
|
5959 | Rockbox | Bugs | Codecs | Low | mp3 encoder codec patch | 2006-09-08 | 1 |
Task Description
This patch updates the mp3 encoder codec to the current mp3 encoder plugin. For details see http://www.rockbox.org/tracker/task/5034 Main improvements: - better overall quality at low volume recordings - improved quality at 64kB/mono - performance improvements - supports MPEG2 sample rates (24000, 22050, 16000) The patch has been tested on iriver H120.
|
|
5219 | Rockbox | Patches | Codecs | Low | Performance optimizations for libmad mp3 decoder (mainl ... | 2006-04-23 | 4 |
Task Description
The three patches give a cumulative performance increase of ~19% to the swcodec on iHxxx players. At least the huffdecode.patch should affect other swcodec based players too. I measured following boost ratio on my H120: current: 10% @34MHz ⇒ 43.0MHz realtime patches: 3% @34MHz ⇒ 36.7MHz realtime This leads to ~15% performance improvement on the whole system. If the cpu speed is the main battery eater, then 1h more play time can be expected from these patches if the "normal" cpu speed is lowered to 34MHz.
The optimizations in detail: huffdecode: * simplify bit read functions (and extend to 32bit access) * restructure huffdecode function (less if/else statements) * more effective bit caching * less error checking on inconsistent mp3 input data
imdct: * reduce multiple access of identical scalefactors * usage of all four emac accus
synth_full * reduce number of variables * extend the asm code to odd / even segments * remove double access of identical scalefactors
The output of the modified sw is exactly the same as with current sw for consistent mp3 files. For inconsistent files it may differ slightly.
The following table shows a time measurement with current sw and patched sw. The used test file has been encoded with lame -preset extreme option:
function: current patched huffdecode 23F 1B7 ⇒ 6% of total < huffdecode.patch (algorithmic changes) joint stereo F E aliasreduce 66 65 imdct 296 1D8 ⇒ 8% of total < imdct.patch (more asm optimized) dct32 191 185 synth_full 21C 1B2 ⇒ 5% of total < synth.patch (more asm optimized)
sum 8F7 739 ⇒ 19% faster swcodec on H1xx/H3xx
|
|
5078 | Rockbox | Patches | Codecs | Low | erformance improvements in libmad mp3 decoder | 2006-04-09 | 1 |
Task Description
This patch improves the performance of the libmad mp3 decoder by roughly 10% (measured on "lame –preset extreme" encoded music) with exactly the same pcm output as before. I could only test the improvements with iriver, but these should be effective also for other swcodec based players. Warning: The patch has been compiled only for iriver.
The changes in detail: - move huffman tables to IRAM - move cs- & ca- tables to IRAM - improved cache hit decision in 'big values' calculation - bit structures in rq_table removed
The data extraction part in libmad still takes nearly 25% of the decoder time, so the next patch is in work. :)
|
|
5034 | Rockbox | Patches | Codecs | Low | mp3_encoder: Bugfixes and performance improvements | 2006-04-04 | 1 |
Task Description
This patch is a major rewrite of the mp3_encoder. Bugfixes: - avoid overflows in the granules' bit reservour at high bitrates - correct bitorder for bit quadruples in huffman coding - avoid compiler complaining in 'logf' compilations - correctly use the encoder in viewer plugin mode (no double file selection) Optimizations: - use latest lame 3.97 windowing and mdct algorithms - up to 5% better bit reservour usage by distributing overhang bits to remaining granules of current audio frame - faster noise allocation - better quality at low volume audio input (two path integer calculation) - reduce screen updates The patch gives better quality at low volume and high bit rate encodings at 40% increased speed with less IRAM usage.
|
|
5033 | Rockbox | Bugs | Codecs | Low | mp3_encoder: Bugfixes and performance improvements | 2006-04-04 | 1 |
Task Description
This patch is a major rewrite of the mp3_encoder. Bugfixes: - avoid overflows in the granules' bit reservour at high bitrates - correct bitorder for bit quadruples in huffman coding - avoid compiler complaining in 'logf' compilations - correctly use the encoder in viewer plugin mode (no double file selection) Optimizations: - use latest lame 3.97 windowing and mdct algorithms - up to 5% better bit reservour usage by distributing overhang bits to remaining granules of current audio frame - faster noise allocation - better quality at low volume audio input (two path integer calculation) - reduce screen updates The patch gives better quality at low volume and high bit rate encodings at 40% increased speed with less IRAM usage.
|
|
4754 | Rockbox | Bugs | Recording | High | Iriver hangs after longer recording with voice enabled | 2006-02-28 | |
Task Description
I found a problem with current recording and voice enabled on my iriver with a custom build based on 20060226 dailies. After investigation I think it is related to the audiobuffer system of the audio codecs. My theory: If the audiobuffer gets completely filled with audio data (t-record > 2min) the pcmtable descriptors of the audio thread get overwritten. For some reason these now corrupted descriptors seem to be accessed by the voice audio decoder after leaving the recording screen, which makes the player hang. In my experiments the problem started, if pcm record data is written up to 200-400 Bytes near audiobuffer end. Because the current recording pcm chunk size is a multiple of 8192, the chance is big, to get no trouble. But to my understanding the audio buffer start address is flexible so sooner or later there will be a problem with the current dailies.
my theory is based on this structure in pcmbuf.c /* …CODECBUFFER|———PCMBUF———|GUARDBUF|DESCS| */
|
|
2939 | Rockbox | Patches | | Low | Encoder codec interface + encoder codecs | 2006-01-22 | 7 |
Task Description
This patch includes the stuff to support encoder codecs. I have ported the current rockbox encoders (wav_2_wav / wav_2_mp3 / wav_2_wv) to this encoder codec interface.
Included in the attached zip file: - compiled encoder codecs - patch file with changes to the main program - source code for 3 encoder codecs
Current main flow: - wav2wav, wav2mp3 and wav2wv encoders can be selected via the quality setting (MP3=0-5, WV=6, WAV=7) - the encoder (in encoder thread) starts on recording screen opening - two circular buffers are used: pcm-buffer (2MB), enc- buffer (remaining space) - upon DMA writing the codec starts encoding - pcm_callback function collects the processed chunks and writes the data to file on record stop and on enc_buffer full
Known issues (independent from this patch) - no beep on recording - no peakmeter if file writing is active - input: PCM 44100 stereo only - quality settings are not saved to disk for SW_CODEC recorders - new codecs have not been added to the build system
|
|
2700 | Rockbox | Patches | Plugins | Low | wav to mp3 encoder plugin for H1xx | 2005-09-27 | 3 |
Task Description
Very basic plugin mp3 encoder for iriver - you either have to create a new plugin or simply overwrite the patch file to an existing plugin (ex: logo.c) - no data caching: reads/writes chunks of audio data from/to disk all the time - wav-files have to be located in the root - user interface: 1. select wav-file with <up><down> then <right> 2. select bitrate with <up><down> then <right> Hint: wav files should be recorded with high audio level, to get best quality from this encoder
|
|
2668 | Rockbox | Patches | | Low | Bugfixes in iriver pcm record & FM-record on "record" b ... | 2005-09-05 | 1 |
Task Description
This patch includes 2 major bugfixes in pcm_record.c and allows radio recording on record button for iriver H1xx.
New iriver FM recording feature: 1. direct FM recording with 'record' button ('off' button to stop recording). Recordings are saved in '/recordings'.
Not yet done: 1. No continues multiple records So do not press: record→record→record but press: record→off→record→off
Bugfixes: 1. avoid audio glitch at recording startup old pcm_record.c: DAR1 = (unsigned long)rec_buffers [write_index++]; new pcm_record.c: DAR1 = (unsigned long)rec_buffers [write_index];
2. avoid audio lock after recording (no reboot neccessary) old pcm_record.c: pcm_close_recording() not serialized new pcm_record.c: pcm_close_recording() serialized
|
|
2630 | Rockbox | Patches | | Low | FMTuner i2c driver support | 2005-08-12 | 1 |
Task Description
This patch adds i2c functionality to the fm-tuner for iriver models based on low level gpio functionality. It has been only tested for 11.85 MHz system clock. Still no sound.
|
|
2608 | Rockbox | Patches | | Low | FM menu for iriver models and simulators | 2005-07-31 | 4 |
Task Description
FM menu for iriver models and simulators
!! Do not expect to get sound output from this patch !!
But it includes the following: - simulate FM on iriver target and SW simulators - dummy functions for fm_radio_i2c_read/write() (SH7034 only) - screen: centered text (independent of font size) - screen: bounding box (iriver only) - automatically adding stations on opening the preset menu - extended radio menu (freeze mode / peekmeter on/off / tuning method) - button handling changed (left/right: tune prev/next station + other changes) - sound off after radio exit - minor other changes - slightly smaller codesize on archos
To be done - use language strings - clock update in FM screen on RTC targets
In addition this patch includes two bug fixes (and hopefully does not introduce new ones): 1.radio_load_presets(): if preset list includes >32 stations the SW crashed 2.status_draw(): updated every 0.5 sec because 'struct status_info info' was not 'static'
I zipped the patch file and added the modified files + screen shot, because for me 'patch < patchfile' does not work (cygwin version 2.5.8)
Enjoy
|
|
2546 | Rockbox | Patches | | Low | Font fine tuning on 5 fonts (my favorites) | 2005-06-27 | 2 |
Task Description
Font fine tuning on following fonts: - rockbox_default (improved positioning of 'r') - rockfont-8 (improved spacing/positioning of some characters) - atadore (improved spacing/positioning of some characters) - chicago12 (improved spacing/positioning of some characters) - xtal-14 (show 'comma', improved spacing/positioning of some characters)
|
|
2494 | Rockbox | Patches | Games | Low | Rockblox patch file | 2005-05-01 | 4 |
Task Description
The game image has been rotated by 90 degree to make it more playable on archos and iriver platforms. For iriver the blocksize has been increased from 4x4 to 7x7 pixels. In addition I reduced the virtual bitmap from 1byte/blockposition to 1pixel/blockposition.
|
|
2333 | Rockbox | Bugs | | Low | Missing make.inc(s) | 2004-09-25 | |
Task Description
Please include the missing make.inc(s) in firmware and apps folder, because with current sources the compilation is not possible.
Thanks.
|