[opus] opus-tools resampler

Gregory Maxwell gmaxwell at gmail.com
Tue Sep 25 08:14:32 PDT 2012


On Wed, Sep 12, 2012 at 6:17 PM, Sherief Farouk
<sherief.personal at gmail.com> wrote:
> Hi,
>
>         I've noticed that the opus-tools is using a really old version of Speex's resampler code - a version that I've seen fail in the wild first-hand under low resource circumstances. I've actually submitted patches for some issues in the Speex resampler a while ago (and IIRC they were accepted): http://lists.xiph.org/pipermail/speex-dev/2009-November/007541.html , http://lists.xiph.org/pipermail/speex-dev/2009-November/007542.html , http://lists.xiph.org/pipermail/speex-dev/2009-November/007525.html .
>
> Is there any chance the resampling code could be spun off into a separate library? A commercial-license-friendly resampler would be really helpful (I needed one myself), and a single unified library would make it a lot easier to track updates and patches. I've spun off the resampler parts some time ago when I was working on a project that relied on the Speex resampler, and it can be found here: https://bitbucket.org/sherief/speex-resample . Whether someone wants to use that as a basis of a resampler library or do a clean spin-off off of Speex's code is fine by me - I'd just like to have a single, permissively licensed resampler library tested on a variety of platforms and under a variety of conditions. I only target Windows, OS X and a Clang-based embedded platform but so far the version I have has been working fine for me.

Greetings, sorry for the delay— I was expecting JM to reply.

The code in opus-tools is not old— at the moment in fact it has
bugfixes beyond what is in the Speex codebase— it seems your patches
were never merged. Though clearly the sizeof(int) is incorrect there,
and I'll merge it.

I'm currently disinclined to go the separate library route— the
resampler is quite small code— only about 1kloc, and I really don't
want to complicate the opus-tools build process with another
dependency.  Yet if there is a stand-alone library the various
GNU/Linux distributions have a somewhat obsessive hardline behavior to
not allow any 'bundled libraries' at least when they notice.


More information about the opus mailing list