speex-float-1 provides poor performance on armel

Bug #623242 reported by Emmet Hikory
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
pulseaudio (Ubuntu)
Fix Released
Low
Luke Yelavich

Bug Description

Binary package hint: pulseaudio

using the speex-float-1 resample-method in pulseaudio provides poor performance on armel: floating point operations are expensive in part due to the use of the softfloat ABI, and in part due to limited implementation on most hardware (many ARM solutions have dedicated hardware to handle many of the tasks often handled by floating point accelleration on other architectures).

To address this, please use the speex-fixed-1 resample-method. When doing so, performance is further improved by reducing the default number of fragments from 8 to 2.

Tags: patch armel
Revision history for this message
Emmet Hikory (persia) wrote :

The attached patch replaces the current method to set the default resample-method, default-fragments, and default-fragment-size-msec with text processing calls in debian/rules rather than a patch. It may not be the best solution to allow architecture-specific configurations to be shipped by default, but it should be acceptable so long as there are not significant changes to the manner in which upstream ships the base configuration.

tags: added: armel patch
Changed in pulseaudio (Ubuntu):
importance: Undecided → Low
status: New → Triaged
Revision history for this message
Sebastien Bacher (seb128) wrote :

Thank you for your work, Luke could you review this change?

Changed in pulseaudio (Ubuntu):
assignee: nobody → Luke Yelavich (themuso)
Revision history for this message
Colin Watson (cjwatson) wrote :

pulseaudio (1:0.9.22~0.9.21+stable-queue-32-g8478-0ubuntu18) maverick; urgency=low

  [ Emmet Hikory ]
  * Drop 0001-change-resample-and-buffering.patch
  * debian/rules: Add arch-specific build-time configuration patching system
    - set resample-method to speex-fixed-1 and fragments to 2 for armel
    - set resample-method to speex-float-1 and fragments to 8 for other arches
    - Closes LP: #623242

  [ Luke Yelavich ]
  * debian/rules:
    - Back up src/daemon/daemon.conf.in, restoring on package clean, allowing
      the package to be built more than once, and keeping the diff sane
    - Disable flat volumes via regular expression instead of a patch, to
      prevent the mess that goes with touching a file multiple times, and
      with multiple methods
  * 0093-backport-fixes-stable-queue-head.patch: Backport the following
    changesets from the stable-queue branch:
    + 6c8660a (alsa: Fix assertion on mmap_write (triggered via a52 plugin))
    + aaae99d (alsa: disable rewinds when using ALSA plugins)
    + 4a1072e (udev: fix hex decoding)
    + 2b88634 (x11: Partially convert to XCB.)
    + 9375019 (alsa: resume smoother after unsuspend)
    + 4fb02d8 (alsa: increase the smoother window)
    + e2ef3a1 (alsa: don't make use of tsched related variables when tsched is
               disabled)
    + 514fd1e (add rewind-safeguard parameter)
    + 8748ebd (alsa-sink: Get rid of a compiler warning regarding
               rewind_safeguard type.)
    + a65825f (alsa: Set the rewind safeguard proportionally to sample spec)
    + 3d9b710 (smoother: avoid losing precision)
    + 1503b8c (alsa-source: refactor smoother and device start)
    + 74c117f (alsa-time-test: make test usable for capture too)
    + 1c29f55 (alsa: work around slightly broken _delay implementations)
    + 1ff360c (alsa: make defines for smoother configuration)
    + 28f4aeb (alsa-mixer: add profile for Traktor Kontrol S4)
    + eef247b (alsa: Only set the 'first' flag to false when we actually call
               snd_pcm_start())
  * debian/control: Add libxcb-atom1-dev and libx11-xcb-dev to build depends
  * debian/patches/0090-disable-flat-volumes.patch: Drop, as per above
  * debian/patches/0097-regenerate-configure.patch: Refreshed
  * debian/patches/0098-tarball-version.patch: Ensure the version string for
    pulseaudio internally stays the same, in case the build process wants
    to regenerate autotools files
  * debian/patches/0094-add-missing-mixer-paths-and-rerun-automake.patch:
    - Remove the patch to Makefile.in, easier to do it all at once in a
      single patch later in the series

 -- Luke Yelavich <email address hidden> Wed, 15 Sep 2010 13:57:55 +1000

Changed in pulseaudio (Ubuntu):
status: Triaged → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.