[FFmpeg-trac] #5583(undetermined:new): support for openmp of soxr

FFmpeg trac at avcodec.org
Sat May 21 13:58:07 CEST 2016

#5583: support for openmp of soxr
             Reporter:  ponpon       |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:               |                  Version:
  undetermined                       |  unspecified
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
 i requests support for openmp of soxr.

 i did some tests. from it, it doesn't seem that ffmpeg suppors openmp of
 soxr, though ffmpeg might support the multithreads of soxr with override.

 i exchanged e-mail with the developerof soxr, Rob. he said that
 soxr threading is based on the number of audio channels being processed,
 i.e. one thread can be assigned to each channel.  However, soxr threading
 is not enabled in ffmpeg.

 With the latest soxr in git, it is possible to override runtime parameters
 set by the application, e.g.

 export SOXR_NUM_THREADS=0  # 0 means automatic: under control of OpenMP
 export OMP_NUM_THREADS=2 # For stereo audio.

 However, this does not work well with ffmpeg.  I guess that the reason for
 this is that ffmpeg tries to minimise latency by using small buffer sizes,
 and small buffer sizes give a large overhead when multi-threading.  I
 don't know if ffmpeg buffer size (for audio) can be adjusted.

 Using an application with larger buffers (e.g. the soxr examples, with
 input + output buffer sizes = 15k samples/channel), I find that 2 openmp
 threads (on 2 cores, not 2 x86 hyperthreads on one core) will reduce
 processing time for stereo audio to about 66% (x86), 54% (ARM).
 and, moreover, that
 SIMD improvements for both single and double precision are coming soon!

 i believe that combination ffmpeg and soxr with the openmp and new simd is
 useful for many users.

Ticket URL: <https://trac.ffmpeg.org/ticket/5583>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker

More information about the FFmpeg-trac mailing list