[Alsa-user] snd_pcm_hw_params_set_buffer_size problem
Brought to you by:
perex
|
From: Jeremy A. <jer...@gm...> - 2014-09-26 02:23:08
|
Hi,
I have some code that works on my dev machine but breaks on my target
machine. The essential differences are different libasound versions and
different audio devices. The code is compiled and linked separately on
the dev system and the target system. The data used to set the buffer
size is the same in both cases.
The code fragment is
if ( ( err = snd_pcm_hw_params_set_buffer_size ( playback_handle,
hw_params, bufout ) ) < 0 )
{
ERR ( "cda_AlsaManager::_setupPlayback cannot set buffer size
(%s)\n",
snd_strerror ( err ) );
}
....
snd_pcm_hw_params_get_buffer_size ( hw_params, &bufferSize );
INF ( "cda_AlsaManager::_setupPlayback Buffer size = %d bytes \n",
bufferSize );
On the dev system (Wheezy) this works fine.
Sep 26 2014 09:17:32 INFO : int cda_AlsaManager::_setupPlayback(const char*, unsigned int*, snd_pcm_format_t, int, int)() (135) cda_AlsaManager::_setupPlayback opening device default
Sep 26 2014 09:17:32 INFO : int cda_AlsaManager::_setupPlayback(const char*, unsigned int*, snd_pcm_format_t, int, int)() (180) cda_AlsaManager::_setupPlayback setting buffer size 882
Sep 26 2014 09:17:32 INFO : int cda_AlsaManager::_setupPlayback(const char*, unsigned int*, snd_pcm_format_t, int, int)() (206) cda_AlsaManager::_setupPlayback Buffer size = 882 bytes
Dev Libraries are
ii libasound2:i386 1.0.25-4 i386 shared library for ALSA applications
ii libasound2-dev:i386 1.0.25-4 i386 shared library for ALSA applications -- development files
On the target system (Centos 5) I get the error message
Sep 26 2014 10:08:18 INFO : int cda_AlsaManager::_setupPlayback(const
char*, unsigned int*, snd_pcm_format_t, int, int)() (135)
cda_AlsaManager::_setupPlayback opening device default
Sep 26 2014 10:08:18 INFO : int cda_AlsaManager::_setupPlayback(const
char*, unsigned int*, snd_pcm_format_t, int, int)() (180)
cda_AlsaManager::_setupPlayback setting buffer size 882
Sep 26 2014 10:08:18 ERROR : int cda_AlsaManager::_setupPlayback(const
char*, unsigned int*, snd_pcm_format_t, int, int)() (187)
cda_AlsaManager::_setupPlayback cannot set buffer size (Invalid argument)
Sep 26 2014 10:08:18 INFO : int cda_AlsaManager::_setupPlayback(const
char*, unsigned int*, snd_pcm_format_t, int, int)() (206)
cda_AlsaManager::_setupPlayback Buffer size = 15052 bytes
Target Libraries are
alsa-lib.i386 1.0.17-1.el5
installed
alsa-lib-devel.i386 1.0.17-1.el5
installed
I don't have the option of changing the library version on the target
system. Data being written is 16 bit PCM mono 44100 Hz and the target
system uses a USB audio device based on Burr-Brown chipset.
Any suggestions?
--
Jeremy Ardley
|