All Projects

IDProjectTask TypeCategorySeveritySummaryOpened
 10026 RockboxPatchesDriversLow E200: Improve USB detection in WinXP 2009-03-158 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 RockboxPatchesBattery/ChargingLow Sansa e200v1: Increased runtime by ~20% 2008-11-2281 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 RockboxPatchesRecordingLow MP3 encoder (codec & plugin) quality improvements 2008-05-1831 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.

8830RockboxPatchesDriversLowSansa: DMA support for sd-card data access (experimenta...2008-03-3061 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.

7660RockboxPatchesPluginsLowPlugin espeak TTS engine for rockbox2007-08-26303 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 RockboxFeature RequestsMusic playbackLow Align audio data reading in the playback engine to even ...2007-05-261 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 RockboxPatchesOperating System/DriversLow ARM Disassembler 2007-05-1745 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 RockboxPatchesDriversLow Sansa: external sd-card support 2007-05-088922 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 RockboxPatchesDriversLow Sansa: bugfix in rtc date/time calculation 2007-05-0231 Task Description

This patch fixes the reported bug #7096 and bug #7097 in date/time calculation.

 7099 RockboxPatchesDriversLow Sansa: bugfix in AS3514 shadow register handling 2007-05-021 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 RockboxPatchesBattery/ChargingLow Sansa: Increase battery runtime 2007-04-15263 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 RockboxBugsPluginsLow 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 RockboxPatchesDriversLow Sansa: avoid audio glitches, vinyl like effect 2007-03-25396 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 RockboxPatchesBootloaderLow Avoid crashes on the Sansa during booting 2007-03-1921 Task Description

This patch should fix the occasional crashes during booting.

 6524 RockboxPatchesOperating System/DriversLow Sansa E2x0 emulator 2007-01-102910 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 RockboxPatchesRecordingLow Avoid full cpu boost during radio recordings 2006-11-1121 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 RockboxPatchesRecordingMedium DivideByZero fix with recordings 2006-09-1121 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 RockboxBugsCodecsLow mp3 encoder codec patch 2006-09-081 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 RockboxPatchesCodecsLow Performance optimizations for libmad mp3 decoder (mainl ...2006-04-2314 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 RockboxPatchesCodecsLow erformance improvements in libmad mp3 decoder 2006-04-0921 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 RockboxPatchesCodecsLow mp3_encoder: Bugfixes and performance improvements 2006-04-041 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 RockboxBugsCodecsLow mp3_encoder: Bugfixes and performance improvements 2006-04-041 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 RockboxBugsRecordingHigh Iriver hangs after longer recording with voice enabled 2006-02-284 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 RockboxPatchesLow Encoder codec interface + encoder codecs 2006-01-22287 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 RockboxPatchesPluginsLow wav to mp3 encoder plugin for H1xx 2005-09-2743 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 RockboxPatchesLow Bugfixes in iriver pcm record & FM-record on "record" b ...2005-09-0541 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 RockboxPatchesLow FMTuner i2c driver support 2005-08-1211 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 RockboxPatchesLow FM menu for iriver models and simulators 2005-07-31124 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 RockboxPatchesLow Font fine tuning on 5 fonts (my favorites) 2005-06-2762 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 RockboxPatchesGamesLow Rockblox patch file 2005-05-0174 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 RockboxBugsLow Missing make.inc(s) 2004-09-251 Task Description

Please include the missing make.inc(s) in firmware and
apps folder, because with current sources the
compilation is not possible.

Thanks.

Showing tasks 1 - 31 of 31 Page 1 of 1

Available keyboard shortcuts

Tasklist

Task Details

Task Editing