Rockbox

  • Status Closed
  • Percent Complete
    100%
  • Task Type Patches
  • Category Codecs
  • Assigned To No-one
  • Operating System All players
  • Severity Low
  • Priority Very Low
  • Reported Version Release 3.9
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by Buschel - 2011-12-11
Last edited by Buschel - 2011-12-14

FS#12443 - Multichannel downmix for flac

The attached patch implements multichannel-to-stereo downmixing for flac. For this all channels need to be decoded and saved in a dedicated sample buffer. For each channel configuration (3.0, 4.0, 5.0, 5.1) there is a matrix for the downmixing defined and applied.

The following file very clearly proves and shows the effect of the downmixing: http://download.linnrecords.com/test/flac/surround88.aspx

Closed by  Buschel
2011-12-14 19:18
Reason for closing:  Accepted
Additional comments about closing:   Warning: Undefined array key "typography" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 371 Warning: Undefined array key "camelcase" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 407

Submitted with r31253

Next version:
- Moved donwmix to an own function
- Moved scaling into downmixing to improve performance
- Avoid divisisions to improve performance

A sample file (5.1, 88.2 kHz, 24 bit) on iPod Video needs:
svn → 96.8 MHz (no downmix, left/right only)
v02 → 101.9 MHz (5.1-downmix)

Now with manual changes as well.

ToDo's (maybe after the patch is in): A little more tweaking with IRAM allows a speed up of ~3 MHz on PP5022.

this is working on my device. (fuze+)

tested: patch v04 on both test file and a regular song, stereo flac still plays

FWIW if you're concerned about speed, the rounding probably isn't needed for 32 bit samples.

You are talking about sections like "(b + (b«2))»5"? This is equal to b*(1+4)/32 = b*5/32 ~= 1/6, but avoids multiplication or division.

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing