Re: hw_params from shared library problem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Gerald Grabner wrote:

>Hi everybody,
>
>I'm wondering how to correctly build a shared library using alsa
>pcm. Setting the hardware parameters in a function which is part of a
>shared library produces an error, snd_pcm_hw_params gives "invalid
>argument". The example below with three primitive files (main file,
>header and function code) illustrates the problem. With a static
>library, everything works fine.
>
>My system: gcc 3.4.6 on Gentoo with alsa 1.0.11.
>
>Does anybody have an idea about the cause of this problem or how to 
>solve it?
>
>Many thanks,
>Gerald
>
>***
>
>main.c:
>   #include "object.h"
>   int main()
>   {
>     object () ;
>     return 0;
>   }
>
>object.h:
>   void object();
>
>object.c:
>   #include <alsa/asoundlib.h>
>   #include "object.h"
>   void object ()
>   {
>     snd_pcm_t* pcm;
>     snd_pcm_hw_params_t* hwparams;
>     int rc;
>     unsigned int rate = 44100;
>     unsigned int channels = 2;
>     int dir = 0;
>     if ( snd_pcm_open(&pcm, "default", SND_PCM_STREAM_PLAYBACK, 0) < 0 )
>       printf("Cannot open pcm.\n");
>     snd_pcm_hw_params_alloca(&hwparams);
>     snd_pcm_hw_params_any(pcm, hwparams);
>     snd_pcm_hw_params_set_access(pcm, hwparams, 
>SND_PCM_ACCESS_RW_INTERLEAVED);
>     snd_pcm_hw_params_set_format(pcm, hwparams, SND_PCM_FORMAT_S16_LE);
>     snd_pcm_hw_params_set_channels (pcm, hwparams, channels);
>     snd_pcm_hw_params_set_rate_near(pcm, hwparams, &rate, &dir);
>     rc = snd_pcm_hw_params(pcm, hwparams) ;
>     if ( rc < 0 )
>       printf("Error setting hw params: %s.\n", snd_strerror(rc));
>   }
>
>Compilation:
>   gcc -c -fPIC object.c
>   gcc -shared -fPIC -o libTest.so object.o
>   gcc -o main main.c -L. -lTest -lasound
>  
>
and what if you try to link your dynamic library with asound (actually,
this is the really needer of the link, not your test program) ? I think
this could help...

gcc -shared -fPIC -o libTest.so object.o -lasound

-- Ben

>Output:
>   Error setting hw params: Invalid argument.
>
>Using Tomcat but need to do more? Need to support web services, security?
>Get stuff done quickly with pre-integrated technology to make your job easier
>Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
>http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
>_______________________________________________
>Alsa-devel mailing list
>Alsa-devel@xxxxxxxxxxxxxxxxxxxxx
>https://lists.sourceforge.net/lists/listinfo/alsa-devel
>  
>

Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux