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

Search | Go
Wiki > Main > SummerOfCode > SummerOfCode2010 > NewWMAAudioCodecs

New WMA Audio Codecs

This project is part of the Google Summer of Code 2010 project.

Project name Student Mentor Backup mentor
New WMA Audio Codecs Mohamed Tarek (mt) Michael Giacomelli (saratoga) Dave Chapman (linuxstb)

Rockbox already contains an ASF parser and a decoder for the WMA standard codec. The primary goal for this project is to add support for the WMA Professional codec, and then if there were still time, WMA Voice codec.

Relevant resources

Project plan

  • Factor out the ASF-specific code from apps/codecs/wma.c and apps/codecs/libwma to create an independent ASF parsing library.
  • For both codecs, the plan would roughly proceed from here as follows :

    • Extract the codec files from ffmpeg and make them compile standalone.
    • Modify the ASF parser if needed to support the new codec.
    • Write a .codec file and get the taget audio streams working in the sim.
    • Modify the codec's files to use fixed-point arithmetic instead of floating-point.
    • Test and debug on target.

Currently working on

  • Optimising wma pro.
  • Initial work on WMA Voice port.

Current Status

  • WMA Pro codec plays real time and seeks on all targets.
  • Still no multichannel (>2 channel streams) support in WMA Pro.
  • WMA Voice plays and seeks in the sim only, code is still in floating point.


Date Achievement Code in SVN
Fri, 30 Apr Extracted the necessary files for WMA Pro from ffmpeg r22886 and copied them to apps/codecs/libwmapro. r25763
Fri, 30 Apr Applied a minimal set of modifications to the files in libwmapro to make them compile standalone. See libwmapro/README.rockbox. r25764
Sun, 2 May Factored out the ASF-specific code from apps/codecs/wma.c, created an independent ASF packet-handling library, and applied the necessary changes to use that library in the ASF metadata parser and the current wma codec.



Mon, 10 May Modified the ASF metadata parser to work with wma pro streams. ASF packets seem to be independent of the codec type, so no modifications were done on the packet-handling functions. r25922
Mon, 21 June Wrote apps/codecs/wmapro.c and modified libwmapro to make the codec work in the sim. (For compiling see README.rockbox) r27006
Mon, 5 July Partial conversion of the WMA Pro decoder to fixed point arithmetic. Currently inverse quantization & rescaling, imdct and windowing are all in fixed point. r27302m
Mon, 12 July Complete conversion of WMA Pro to fixed point arithmetic. r27402
Wed, 14 July Removal of the floating point code from apps/codecs/wmaprodec.c, and some additional modifications to make it compile on target, with Rafaël Carré (funman) doing some bug squashing in revisions r27419 to 27423 (Thanks!)



Thu, 15 July Initial codec cleanup for libwmapro. r27425
Sat, 17 July Enabled ff_copy_bits in ffmpeg_bitstream.c and added put_bits.h and intreadwrite.h to codeclib. r27452

Sat, 17 July

Completed cleaning up libwmapro.




Mon, 26 July Optimisations by Andree Buschmann, Nils Wallménius and myself.




Tue, 27 July More optimisations by Nils Wallménius.



-- MohamedTarek - 2010-05-02

r12 - 02 Apr 2021 - 20:46:07 - UnknownUser

Copyright © by the contributing authors.