From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jean-Marc Valin Subject: Re: Quality resampling code for libasound Date: Tue, 20 Feb 2007 16:53:22 +1100 Message-ID: <45DA8CD2.1040606@usherbrooke.ca> References: <45D92131.50601@usherbrooke.ca> <45D99DF7.90204@usherbrooke.ca> <45D9A848.9040803@usherbrooke.ca> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------050208020704050306040302" Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: alsa-devel-bounces@lists.sourceforge.net Errors-To: alsa-devel-bounces@lists.sourceforge.net To: Takashi Iwai Cc: alsa-devel@lists.sourceforge.net List-Id: alsa-devel@alsa-project.org This is a multi-part message in MIME format. --------------050208020704050306040302 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit > Well, did you take a look at alsa-plugins/rate/rate_samplerate.c? > That's _much_ easier than rewrting alsa-lib pcm_rate.c. This is > another reason I recommended the external plugin as a first attempt. > (And we can change the default thing later on, for example, after > checking whether it gets no performance drawback.) Here's the plugin code. It's self-contained (includes my Public Parrot Hack code) and it's based on on the libsamplerate plugin. I've tested it and it seems to work right, but I'm not sure the code handles "fractional samples" perfectly. By that I mean that I don't see how the plugin is supposed to handle the fact that the number of output samples may vary even with the same number of input samples (e.g. downsampling 1024 samples by a factor of 3 may produce either 341 or 342 samples). Jean-Marc --------------050208020704050306040302 Content-Type: application/x-gzip; name="pph.tar.gz" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="pph.tar.gz" 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 WT/rZ/2sn/WzftbP+lk/6+fLP/8PWsjpwwDwAAA= --------------050208020704050306040302 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV --------------050208020704050306040302 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Alsa-devel mailing list Alsa-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/alsa-devel --------------050208020704050306040302--