Note that there are some explanatory texts on larger screens.

plurals
  1. POBest practice: Where to resample PCM and which tool?
    primarykey
    data
    text
    <p>I have developed a kernel module (Android) which provides me:</p> <pre><code>PCM 16-bit 48000 Hz 2 channel </code></pre> <p>and I want to stream it to an Apple's Airport Express (AEX) in java.</p> <p>The AEX needs 44.1 kHz PCM so I have to resample the PCM-stream.</p> <p>I have following possibilities, but which is the best?</p> <h2>1. Use the C-program "raop_play" (part of <a href="http://raop-play.sourceforge.net/">raop-play</a>)</h2> <pre><code>advantages: high-performant due to native C already uses libsamplerate to resample wav, mp3, ogg, flac, aac, pls openssl as static library usable via command-line from my java-program via Runtime.exec() disadvantages: I am relative new to C overloaded: I don't need wav, mp3.. only PCM many dependencies with GPL-libraries which I have to compile for Android only supports PCM already with 44.1 kHz, no resampling for PCM implemented yet -&gt; have to implement resampling for PCM </code></pre> <h2>2. Resample &amp; stream in java (with <a href="https://github.com/intervigilium/libresample">libresample JNI-bridge</a>)</h2> <pre><code>advantages: I CAN java :) middle-performant due to resamling in C , but streaming in java just one dependency to LGPL-library no Runtime.exec() needed disadvantages: needs [bouncycastle][3] for AES which is a bit larger than openssl less performant than solution #1 (but maybe fast enough) </code></pre> <h2>3. Resample already in kernel module</h2> <pre><code>advantages: most performant no resampling at higher level disadvantages: I am relative new to C Is it possible to use libsamplerate or libresample in kernel-space?! </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload