Jaroslav Kysela wrote:
On Tue, 6 Jan 2009, Pavel Hofman wrote:
Pavel Hofman napsal(a):
Hello,
I am working on a file plugin patch to allow adding PCM parameters (rate, format) to the name of the file created (plus the ability to run an external command via popen, such as upsampling with sox). I got stuck in trying to obtain these parameters in pcm_file.c:_snd_pcm_file_open(). Is it actually possible or the information is not available at the time of opening the file (and the whole patch is thus nonsense)?
Thanks a lot for help.
I am now opening the output file in pcm_file.c:snd_pcm_file_write_bytes. Surprisingly it seems to work fine. Could such hack be accepted as a patch to the plugin (if coded properly)? Is there a better place to open the file?
The file should be opened in the hw_params callback (all PCM parameters are known in this time). Also, extending filename with PCM parameters should be optional (configurable). But the idea looks nice.
Jaroslav
Hi,
Thanks a lot for your hint. Here is a preliminary version of the patch for review (no docs updated, no clean formatting).
The changes are moving the opening of output file to hw_params callback, support for replacement codes in the file parameter, and support for piping to external commands when the file parameter starts with |.
This is a working ".asoundrc on steroids" (upsampling to 96kHz using the quality algorithm of sox)
pcm.raw { type file slave { pcm null } format "raw" file "| sox -V -c %c -%b -r %r -s -t raw - -t raw -4 - rate -v -s 96000 | aplay -v -t raw -r 96000 -c %c -f S32_LE -Dhw:0" }
Thanks a lot for comments.
Regards,
Pavel.