dev builds
themes manual
device status forums
mailing lists
IRC bugs
dev guide

Wiki > Main > SummerOfCode2007 (compare)

Difference: SummerOfCode2007 (r2 vs. r1)

Google Summer of Code 2007


Rockbox is officially accepted as a mentor organization for GSoC 2007: GSoC 2007 : the project page is here.

Accepted projects for GSoC 2007

Project nameStudentMentor
WMA Decoder?Michael GiacomelliThom Johansen
Metadata-on-buffer and album art implementationNicolas PennequinPaul Louden
Real-time text-to-speechOzgur OzturkMarcoen Hirschberg
USB StackChristian GmeinerPeter D'Hoye

Students/mentors are The results encouraged to make a Wiki page describing the status and progress of their project. our GSoC 2007 are summarised in GsocRoundup2007.

Possible 2008 Project Ideas projects

Add your suggested This is the list of proposed projects here to be possible for applicating 2007. students. These are only ideas and suggestions, students are free to make up and describe their own project when they apply.

Note: This is not a general wish list for Rockbox features. Don't add a project here without discussing it with the Rockbox developers first.

General Projects

ARM Emulator

  • Since virtually all new DAPs coming to market contain an ARM core, a well working ARM emulator would be extremely useful to future ports. An emulator could be used to help reverse hash/encryption algorithms used in many retail firmwares (such as Apple, Creative players), to help determine addresses of memory mapped hardware, and to optimize codecs by allowing more detailed analysis of memory/IRAM/etc.
  • A simple but only semi-functional Windows emulator exists for the Sansa E200 series which emulates much of the PortalPlayer hardware. It currently can boot some builds of rockbox, but is not stable enough to be very useful. This project should resume work on the emulator, first getting it to run rockbox or a retail (Sandisk, Apple, etc) firmware without instability. Additional goals could include emulating the pipeline latencies of various ARM cores, emulating cache to allow memory profiling, porting to linux, and introducing a general framework that would allow for easy adaptation to the differing memory maps of various ARM cores.

Rockbox as an Application

  • Portable devices which allow third party applications to run within the retail OS are becoming increasingly popular. Convert rockbox to an application that runs on a Windows, Linux or Apple based cellphone, PDA, iPhone, or similar device that allows third party applications.

Target specific

Port to a new target

  • possibly TMS320-based
  • Comment by DanielStenberg: I suggested a TMS320-based target mainly because ArchOpen already exists and have code working on TMS320, so it could be a slightly easier to port to such a platform than many others.


WMA codec

  • Fixed point implementation

Various optimizations

  • Comment by bascule: This is not specific enough. Noting a collection of related Bugs/Feature Requests would be better.

Rockbox codebase


  • currently music metadata is loaded and handled in a fixed-size array which makes a much more limited system with more fixed limits and less flexibilty. MoB is what we want to enable good support for Album Art but even to enable large amount of songs loaded into memory simultanously (like SIDs etc), and more.

Playback engine re-write or major bugfix

  • would be biggest step towards a first SWCODEC release
  • could also help unifying the HW-/SWCODEC playback engines

USB Stack (Host and device)


  • amiconn (easier to meet in IRC) has a clear imagination about how it should work. Documentation started here: ViewPorts

Album Art support

  • Both embedded and separate (per folder) .jpg files should be supported

Real-time text-to-speech

  • eSpeak is a good candidate: supports many languages (uses UTF-8 text), active development, designed for embedded systems (runs on a ~28MHz ARM9), it is however written in C++ and would have to be translated/converted to C to fit in with the rockbox core.
  • Flite is a re-implementation of parts of Festival in portable C with embedded systems in mind, might be worth checking out.


Better video support

  • Rockbox currently has a work-in-progress MPEG (MPEG-1 and MPEG-2) video player. Work to extend Rockbox's video playing capabilities could include: finishing the implementation of MPEG-1/MPEG-2 playback (see PluginMpegplayer for a to-do list); exploring the possiblity of other codecs (e.g. MPEG-4); optimisation of the video codec(s); incorporating video playback into the core playback engine.


  • Features wanted: Basic formatting, links, tables and images (for viewing Wikipedia articles or converting HTML, PDF files for Rockbox)

Software fax/modem

Port ScummVM to Rockbox.

  • Will probably not be feasible on old Archos targets but should work fine on newer targets with larger screens, but might be the most fun on a color display
  • Comment by MartinArver: scummVM is written in c++. Read this scummVM developer discussion for their thoughts on a rockbox port. See also


  • Code maintanence - Boring task but needed... The following needs doing...
    • organise settings_list.c
    • organise struct user_settings
    • organise plugin api struct, possibly take groups of functions out and replace them with a single struct for the group?
    • FIXME's through the code

Benchmarking tools

  • For optimization testing (codec decode timing vs realtime, text draw speed for LCD optimizations, etc).

LLVM Compiler Infrastructure

  • Make rockbox compile using LLVM to investigate if it's a viable alternative to GCC (doesn't have a m68k and sh1 backend yet)


Add yourself here if you are a very much involved Rockbox hacker who would consider to become a mentor for a Summer of Code student:

And when added here, apply "officially" using google's online application:


r3 - 30 Nov 2007 - 09:04:49 - LinusNielsenFeltzing

Revision r2 - 27 Sep 2007 - 00:13 - NicolasPennequin
Revision r1 - 26 Sep 2007 - 23:44 - PeterDHoye
Copyright by the contributing authors.