release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide



Search | Go
Wiki > Main > SummerOfCode > SummerOfCode2010 > NewWMAAudioCodecs (r10)

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.

Current Status

  • WMA Pro codec plays and seek real-time.
  • Still no multichannel (>2 channel streams) support.

Progress

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.

r25780

r25783

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!)

r27416

r27417

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.

r27453

r27454

r27455

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

r27582

r27583

r27584

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

r27585

r27586

-- MohamedTarek - 2010-05-02
Edit | Attach | Print version | History: r11 < r10 < r9 < r8 | Backlinks | View wiki text | More topic actions...
r10 - 28 Jul 2010 - 19:09:31 - MohamedTarek
Copyright © by the contributing authors.