Silk Resampler, Wet noodle syndrome apparently |
![]() ![]() |
Silk Resampler, Wet noodle syndrome apparently |
Apr 25 2013, 15:50
Post
#1
|
|
|
Group: Members Posts: 9 Joined: 14-November 12 Member No.: 104501 |
I've read a number of threads in the forums that have mentioned a GPL resampler in the Opus tools source. Thus far the only one I was able to identify was the Silk one --> silk_resampler_init(...);silk_resampler(...); inside of resampler.c in the Silk subfolder.
Problem is, I'm having the worst time trying to figure out how to utilize it (typically for 44.1KHz CD audio) for the encoder. The function return values are not documented, the silk_resampler_state_struct member names are cryptic at best, doesn't specify what the minimum size of the output buffer is supposed to be, and I have yet to locate where the number of output samples are stored after a call to silk_resampler(...) (the code indicates that the return value is a success/fail only signal.) I've tried reading some of the internal code and by a cursory glance it looks like a method better suited for pulling my brains out of my right ear than it is for gleaning how to utilize the resampler. Is there documentation for silk_resampler somewhere that I'm just missing? I did a Google search and all I was able to find was more of the same undocumented source code. I will continue to kludge through the source code looking but I would very much like a short cut to the knowledge if possible. Any help appreciated. TIA |
|
|
|
Apr 25 2013, 16:06
Post
#2
|
|
|
Winamp Developer Group: Developer Posts: 662 Joined: 17-July 05 From: Ashburn, VA Member No.: 23375 |
A cursory glance suggests that this code only does integer-multiple resampling. (e.g. 48khz -> 24khz). That might not help for your needs. If you are looking for GPL code for resampling, libsamplerate might be your best bet.
Also, the Speex resampler is another viable option. It's not nearly as featureful as libsamplerate, but you probably don't need all that stuff anyway. It's BSD-licensed This post has been edited by benski: Apr 25 2013, 16:08 |
|
|
|
Apr 25 2013, 16:51
Post
#3
|
|
|
Xiph.org Speex developer Group: Developer Posts: 430 Joined: 21-August 02 Member No.: 3134 |
I've read a number of threads in the forums that have mentioned a GPL resampler in the Opus tools source. Thus far the only one I was able to identify was the Silk one --> silk_resampler_init(...);silk_resampler(...); inside of resampler.c in the Silk subfolder. As you're saying yourself, the resampler is in "opus-tools", not the opus package. It's simply a copy of the Speex resampler with some fixes on top of it. And BTW, it's BSD-licensed, not GPL. See http://git.xiph.org/?p=opus-tools.git;a=bl...=src/resample.c |
|
|
|
![]() ![]() |
|
Lo-Fi Version | Time is now: 23rd May 2013 - 14:16 |