[FFmpeg-devel] [PATCH] [RFC] libavfilter HRTF/room acoustics filter [1/2]

Yue Shi Lai ylai at users.sourceforge.net
Tue Aug 2 23:57:45 EEST 2016

On 08/02/2016 08:40 AM, Paul B Mahol wrote:
> On 8/2/16, Yue Shi Lai <ylai at users.sourceforge.net> wrote:
>> - integrated matrix decoder (probably better suited as a separate filter)
> This one does what?

This is an implementation of the steering or active matrix surround
decoder (e.g. Quadraphonic or Dolby Surround). Implemented are 2-to-4, 5
and 6 channels (the last one is to decode 5.1 into 7.1, either
consumer-type 4 rear/surround or SDDS downmix with 5 front channels).
Active matrix means that there is an active feed-back system suppressing
cross talk for point sources (e.g. Tate DES and ProLogic). I take the
statement from the users list
(https://ffmpeg.org/pipermail/ffmpeg-user/2013-May/015091.html) still
correct, there is no (even passive) matrix decoder in FFmpeg?

On a somewhat related matter: I was browsing through the matrix encoder
in libavresample/audio_mix_matrix.c, and possibly rediscovered the bug
in https://trac.ffmpeg.org/ticket/4175 . Also, the 5-channel coefficient
seems to disagrees with Dolby (see the notes I wrote at some point while
editing the Wikipedia section in
I have a properly implemented encoder with a FIR Hilbert transformer
around, and since there is FFT now in FFmpeg, may investigate later if
#4175 can be addressed.

> There is already function that does accumulated multiplication IIRC no
> need to use intrinsic,
> i think is called fdsp->vector_fmac_scalar so use that instead of your
> scale_accumulate.
> See how its called in sofalizer filter: libavfilter/af_sofalizer.c
> Similar to pthread usage there is internal wrapper which should be used.

I will include these together with other comments you may have.

> Can't filter be made so it load kemar data from file instead hardcoded
> into lavfi?

It is possible and I will try a modification in that regard.

Best wishes,

Yue Shi Lai

More information about the ffmpeg-devel mailing list