Difference between revisions of "FFmpeg audio API"

From MultimediaWiki
Jump to navigation Jump to search
Line 3: Line 3:
== Features needed ==
== Features needed ==


* Generalized downmixing (SIMD optimized)
* Generalized channel mixing (SIMD optimized):
Users should be able to set their own downmix coeffs.
Users should be able to set their own channel mixing coefficients.
* Codec setable downmixing coeffs:
* Codec alterable channel mixing coefficients:
The codec should be able to set and update the coefs during runtime(dca supports that feature, maybe ac3 also).
The codec should be able to set and update the channel mixing coefficients during runtime (DCA supports this feature, maybe AC-3 also).
* Output channel request function (ie, request a specified number of channels, default should be >2 channels mapped to 2 channels).
* Output channel request function (ie, request a specified number of channels, default should be >2 channels mapped to 2 channels).
* Channel reordering, currently there are diffrent orders depending on the codec.
* Channel reordering - currently there are different orders depending on the codec.
* Simd optimized interleaving
* SIMD optimized interleaving
* Allow planer output, (don't duplicate interleaving code in every codec)
* Allow planar output - don't duplicate the interleaving code in every codec
* Add support for other bitdepths then 16bits (ie 24/8/32/float)
* Support bit depths other than 16-bit - 8-bit/24-bit/32-bit/float
* Ability to access one channel from a multichannel stream
* Channel selection - ability to access one channel from a multichannel stream


== Feature wish list ==
== Feature wish list ==

Revision as of 10:50, 12 November 2007

This page is for discussion regarding the reworking of the FFmpeg audio API to accommodate the requirements needed for today's audio codecs.

Features needed

  • Generalized channel mixing (SIMD optimized):

Users should be able to set their own channel mixing coefficients.

  • Codec alterable channel mixing coefficients:

The codec should be able to set and update the channel mixing coefficients during runtime (DCA supports this feature, maybe AC-3 also).

  • Output channel request function (ie, request a specified number of channels, default should be >2 channels mapped to 2 channels).
  • Channel reordering - currently there are different orders depending on the codec.
  • SIMD optimized interleaving
  • Allow planar output - don't duplicate the interleaving code in every codec
  • Support bit depths other than 16-bit - 8-bit/24-bit/32-bit/float
  • Channel selection - ability to access one channel from a multichannel stream

Feature wish list

  • Add a better FFT routine. (Would the KISS implementation be a good candidate?)
  • Fixed point MDCT/FFT implementations
  • Custom audio filter support. (Basing it on the video filter API ideas?)

Current ideas

Thread with previous discussions in the subject. The thread has several ideas already implemented.

http://thread.gmane.org/gmane.comp.video.ffmpeg.devel/47485/focus=48097