Re: Upsampling while decoding / Updating
Nikos Chantziaras <[email protected]> Wed, 08 May 2013 19:18:06 +0300
| Newsgroups | gmane.comp.audio.compression.speex.devel |
|---|---|
| Organization | Lucas Barks |
| Message-ID | <[email protected]> |
I'm not using Opus at all. I'm just including its resampler in my own sources. It's not even a DLL; it's directly compiled together with the rest of my code. You need these sources from the opus-tools package (http://www.opus-codec.org/downloads/): arch.h resample.c resample_sse.h speex_resampler.h stack_alloc.h In your project file, define these macros: #define SPX_RESAMPLE_EXPORT #define OUTSIDE_SPEEX #define RANDOM_PREFIX NAME_OF_YOUR_SOFTWARE If your software is actually a library itself, you might to instead: #define SPX_RESAMPLE_EXPORT __declspec(dllexport) or whatever else you happen to be using. With that, you should be able to include the source files directly in your project and build them without issues. The license is a two clause BSD-style permissive one, so you can do that. On 08/05/13 07:38, Hermann Weber wrote: > Dear Nikos, > > thanks! > But you use Opus only for resampling, not for entirely replacing Speex, > don't you? > > Greetings! > Hermie > > Am 07.05.2013 22:53, schrieb Nikos Chantziaras: >> The Opus resampler is actually a bugfixed version of the Speex one. Same >> interface/API, but with the bugs removed. It's why I recommended it :-) >> Otherwise I would have recommended something entirely different, like >> SoXR. >> >> >> On 07/05/13 22:12, Hermann Weber wrote: >>> Dear Nikos, >>> >>> thank you very much for your advice! >>> >>> I am not a little bit new to C++, and experiments (like using another >>> third party library) always turn out to be days of work for me. >>> That is why I would first like to try Speex's new internal resampling >>> function. >>> >>> I am currently still using the old 1.0.4 version. >>> >>> I have now downloaded the new 1.2rc1 version. >>> Unfortunately it does not want to compile the libspeex.dll right away, >>> VS2010 tells me: >>> >>> Converting project file >>> 'C:\Users\MyUser\Desktop\speex-1.2rc1\win32\VS2008\libspeex\libspeex.vcproj'. >>> >>> Failed to upgrade platform 'Windows Mobile 5.0 Pocket PC SDK (ARMV4I)'. >>> Please make sure you have it installed under >>> '%vctargetspath%\platforms\Windows Mobile 5.0 Pocket PC SDK (ARMV4I)' >>> VCWebServiceProxyGeneratorTool is no longer supported. The tool has been >>> removed from your project settings. >>> Failed to upgrade 'Debug|Windows Mobile 5.0 Pocket PC SDK (ARMV4I)'. >>> Please make sure you have the corresponding platform installed under >>> '%vctargetspath%\platforms\Windows Mobile 5.0 Pocket PC SDK (ARMV4I)' >>> The project configuration dimension name/value "(Platform, Win32)" was >>> not found in the project manifest. >>> >>> Is it possible to compile the libspeex.dll without support for Windows >>> Mobile 5.0, or is there no other way? >>> I am afraid of messing anything up by install it. >>> >>> Greetings! >>> Hermie >>> >>> Am 07.05.2013 16:03, schrieb Nikos Chantziaras: >>>> On 07/05/13 13:07, Hermann Weber wrote: >>>>> Hello! >>>>> >>>>> I would like to know if it is possible to request encoding to a higher >>>>> samplerate than the original data. >>>>> For example my uncompressed data was 22 kHz, and I would now like to >>>>> decode the compressed data to 48 kHz (to feed it to a filter which >>>>> expects a high "input" format). >>>>> Is this possible with Speex? >>>> Speex comes with a resampler, so yes. You need to resample your signal >>>> after decoding it. >>>> >>>> However, I'd recommend using the Opus resampler instead of the Speex >>>> one. (It can be used stand-alone and directly included in your own code.)