|
View:
New views
15 Messages
—
Rating Filter:
Alert me
|
|
|
OpenAL Soft 1.10.622 is released!May we forget about 1.9...
http://kcat.strangesoft.net/openal.html Hopefully, finally, for real, fixed the PulseAudio backend this time. Also fixed the OSS and Solaris backends. 7.1 output should work properly again, and fixed a problem/potential crash when setting an AL_EFFECT_NULL effect on an auxiliary slot. In terms of features, there's only a few. Backend libraries are only loaded when they're needed now, so unused backends won't hold their shared libs in memory, and devices provided by them are automatically added and removed as the libs are installed and uninstalled. Additionally, multiple contexts per device are now supported. Given multiple contexts, it's now possible to change certain device parameters on the fly. Creating a new context with certain attributes (eg. ALC_FREQUENCY, and perhaps ALC_REFRESH in the future) will change the device parameters, and consequently affects all contexts on the device. Now I'll try to get back to taking care of those proposed extensions. It may be possible to see alcSuspendContext/alcProcessContext properly supported, as well. _______________________________________________ Openal-devel mailing list Openal-devel@... http://opensource.creative.com/mailman/listinfo/openal-devel |
|
|
Re: OpenAL Soft 1.10.622 is released!Great release!
The pulseaudio support for output is working great for the apps I've tried. Much better performance overall than using the ALSA emulation. I do still have problems with pulseaudio capture, specifically with Vivox/secondlife. I'd like to help with that if possible but I'm new to the OpenAL sources so I hope an occasional question to the list is fine. Mike On Sun, 2009-11-08 at 23:46 -0800, Chris Robinson wrote: > May we forget about 1.9... > > http://kcat.strangesoft.net/openal.html > > Hopefully, finally, for real, fixed the PulseAudio backend this time. Also > fixed the OSS and Solaris backends. 7.1 output should work properly again, and > fixed a problem/potential crash when setting an AL_EFFECT_NULL effect on an > auxiliary slot. _______________________________________________ Openal-devel mailing list Openal-devel@... http://opensource.creative.com/mailman/listinfo/openal-devel |
|
|
Pulse capture (was Re: OpenAL Soft 1.10.622 is released!)On Monday 09 November 2009 5:01:46 am Mike Dickson wrote:
> Great release! > > The pulseaudio support for output is working great for the apps I've > tried. Much better performance overall than using the ALSA emulation. > I do still have problems with pulseaudio capture, specifically with > Vivox/secondlife. I'd like to help with that if possible but I'm new to > the OpenAL sources so I hope an occasional question to the list is fine. There shouldn't be any issue about asking here. Thanks for wanting to look into it. :) What's the problem you're seeing with pulseaudio capture? I'm not sure if I have any working microphones laying around to test it myself.. need to look around more. _______________________________________________ Openal-devel mailing list Openal-devel@... http://opensource.creative.com/mailman/listinfo/openal-devel |
|
|
Re: Pulse capture (was Re: OpenAL Soft 1.10.622 is released!)It's the vivox client I'm using with SecondLife at least to start.
Behavior is similar to the pulse output stuff before the large patchset. It looks like it gets connected but no data. I've only just started to mess with it, hopefully can dig deeper tonite. I'll follow up with findings then. Mike On Mon, 2009-11-09 at 15:33 -0800, Chris Robinson wrote: > On Monday 09 November 2009 5:01:46 am Mike Dickson wrote: > > Great release! > > > > The pulseaudio support for output is working great for the apps I've > > tried. Much better performance overall than using the ALSA emulation. > > I do still have problems with pulseaudio capture, specifically with > > Vivox/secondlife. I'd like to help with that if possible but I'm new to > > the OpenAL sources so I hope an occasional question to the list is fine. > > There shouldn't be any issue about asking here. Thanks for wanting to look > into it. :) > > What's the problem you're seeing with pulseaudio capture? I'm not sure if I > have any working microphones laying around to test it myself.. need to look > around more. > _______________________________________________ > Openal-devel mailing list > Openal-devel@... > http://opensource.creative.com/mailman/listinfo/openal-devel _______________________________________________ Openal-devel mailing list Openal-devel@... http://opensource.creative.com/mailman/listinfo/openal-devel |
|
|
Re: Pulse capture (was Re: OpenAL Soft 1.10.622 isreleased!)
Chris Robinson wrote:
On Monday 09 November 2009 5:01:46 am Mike Dickson wrote: No problem at all. That's one reason why the openal-devel list exists :-) --"J" _______________________________________________ Openal-devel mailing list Openal-devel@... http://opensource.creative.com/mailman/listinfo/openal-devel |
|
|
Re: Pulse capture (was Re: OpenAL Soft 1.10.622 isreleased!)Can someone point me to a simple capture client w/source that uses
OpenAL-Soft for the capture? Starting with Vivox SLVoice directly is going to be a pain since it's binary only.. Mike On Mon, 2009-11-09 at 19:57 -0500, Jason Daly wrote: > Chris Robinson wrote: > > On Monday 09 November 2009 5:01:46 am Mike Dickson wrote: > > > > > Great release! > > > > > > The pulseaudio support for output is working great for the apps I've > > > tried. Much better performance overall than using the ALSA emulation. > > > I do still have problems with pulseaudio capture, specifically with > > > Vivox/secondlife. I'd like to help with that if possible but I'm new to > > > the OpenAL sources so I hope an occasional question to the list is fine. > > > > > > > There shouldn't be any issue about asking here. Thanks for wanting to look > > into it. :) > > > > No problem at all. That's one reason why the openal-devel list > exists :-) > > --"J" > > > _______________________________________________ > Openal-devel mailing list > Openal-devel@... > http://opensource.creative.com/mailman/listinfo/openal-devel _______________________________________________ Openal-devel mailing list Openal-devel@... http://opensource.creative.com/mailman/listinfo/openal-devel |
|
|
Re: Pulse capture (was Re: OpenAL Soft 1.10.622isreleased!)Mike Dickson wrote:
> Can someone point me to a simple capture client w/source that uses > OpenAL-Soft for the capture? Starting with Vivox SLVoice directly is > going to be a pain since it's binary only.. > Here's a really simple test app that I wrote. It captures audio for three seconds, pauses, then captures three more seconds. At the end it plays back what was captured. A lot of the values are hard-coded, so you may need to tweak it to get what you're looking for. --"J" #include <stdio.h> #include <stdlib.h> #include <string.h> #include <AL/al.h> #include <AL/alc.h> #include <sys/time.h> int main(void) { const ALCchar * devices; ALCchar * ptr; ALCdevice * mainDev; ALCcontext * mainContext; ALCdevice * captureDev; ALubyte captureBuffer[655360]; ALubyte *captureBufPtr; ALint samplesAvailable; ALint samplesCaptured; time_t currentTime; time_t lastTime; ALuint buffer; ALuint source; ALint playState; int i; // Print the list of capture devices printf("Available playback devices:\n"); devices = alcGetString(NULL, ALC_DEVICE_SPECIFIER); ptr = devices; while (ptr[0] != NULL) { printf(" %s\n", ptr); ptr += strlen(ptr) + 1; } // Open a playback device and create a context first printf("Opening playback device:\n"); mainDev = alcOpenDevice(NULL); if (mainDev == NULL) { printf("Unable to open playback device!\n"); exit(1); } devices = alcGetString(mainDev, ALC_DEVICE_SPECIFIER); printf(" opened device '%s'\n", devices); mainContext = alcCreateContext(mainDev, NULL); if (mainContext == NULL) { printf("Unable to create playback context!\n"); exit(1); } printf(" created playback context\n"); // Make the playback context current alcMakeContextCurrent(mainContext); alcProcessContext(mainContext); // Print the list of capture devices printf("Available capture devices:\n"); devices = alcGetString(NULL, ALC_CAPTURE_DEVICE_SPECIFIER); ptr = devices; while (ptr[0] != NULL) { printf(" %s\n", ptr); ptr += strlen(ptr) + 1; } // Open the default device printf("Opening capture device:\n"); captureDev = alcCaptureOpenDevice(NULL, 8000, AL_FORMAT_MONO16, 800); if (captureDev == NULL) { printf(" Unable to open device!\n"); exit(1); } devices = alcGetString(captureDev, ALC_CAPTURE_DEVICE_SPECIFIER); printf(" opened device %s\n", devices); // Wait for three seconds to prompt the user for (i = 3; i > 0; i--) { printf("Starting capture in %d...\r", i); fflush(stdout); lastTime = time(NULL); currentTime = lastTime; while (currentTime == lastTime) { currentTime = time(NULL); usleep(100000); } } printf("Starting capture NOW!\n"); fflush(stdout); lastTime = currentTime; // Capture (roughly) five seconds of audio alcCaptureStart(captureDev); samplesCaptured = 0; captureBufPtr = captureBuffer; while (currentTime < (lastTime + 5)) { // Get the number of samples available alcGetIntegerv(captureDev, ALC_CAPTURE_SAMPLES, 1, &samplesAvailable); // Copy the samples to our capture buffer if (samplesAvailable > 0) { alcCaptureSamples(captureDev, captureBufPtr, samplesAvailable); samplesCaptured += samplesAvailable; printf("Captured %d samples (adding %d)\r", samplesCaptured, samplesAvailable); fflush(stdout); // Advance the buffer (two bytes per sample * number of samples) captureBufPtr += samplesAvailable * 2; } // Wait for a bit usleep(10000); // Update the clock currentTime = time(NULL); } printf("\nPausing capture.\n"); alcCaptureStop(captureDev); // Wait for three seconds to prompt the user for (i = 3; i > 0; i--) { printf("Resuming capture in %d...\r", i); fflush(stdout); lastTime = time(NULL); currentTime = lastTime; while (currentTime == lastTime) { currentTime = time(NULL); usleep(100000); } } printf("Resuming capture NOW!\n"); fflush(stdout); lastTime = currentTime; // Capture (roughly) five seconds of audio alcCaptureStart(captureDev); while (currentTime < (lastTime + 5)) { // Get the number of samples available alcGetIntegerv(captureDev, ALC_CAPTURE_SAMPLES, 1, &samplesAvailable); // Copy the samples to our capture buffer if (samplesAvailable > 0) { alcCaptureSamples(captureDev, captureBufPtr, samplesAvailable); samplesCaptured += samplesAvailable; printf("Captured %d samples (adding %d)\r", samplesCaptured, samplesAvailable); fflush(stdout); // Advance the buffer (two bytes per sample * number of samples) captureBufPtr += samplesAvailable * 2; } // Wait for a bit usleep(10000); // Update the clock currentTime = time(NULL); } printf("\nDone capturing.\n"); alcCaptureStop(captureDev); // Play back the captured data printf("Starting playback...\n"); fflush(stdout); // Generate an OpenAL buffer for the captured data alGenBuffers(1, &buffer); alGenSources(1, &source); alBufferData(buffer, AL_FORMAT_MONO16, captureBuffer, samplesCaptured*2, 22050); alSourcei(source, AL_BUFFER, buffer); alSourcePlay(source); // Wait for the source to stop playing playState = AL_PLAYING; while (playState == AL_PLAYING) { printf(" source %d is playing...\r", source); fflush(stdout); alGetSourcei(source, AL_SOURCE_STATE, &playState); usleep(100000); } printf("\nDone with playback.\n"); fflush(stdout); // Shut down OpenAL alDeleteSources(1, &source); alDeleteBuffers(1, &buffer); alcMakeContextCurrent(NULL); alcCloseDevice(mainDev); alcCaptureCloseDevice(captureDev); } _______________________________________________ Openal-devel mailing list Openal-devel@... http://opensource.creative.com/mailman/listinfo/openal-devel |
|
|
Re: Pulse capture (was Re: OpenAL Soft 1.10.622isreleased!)Thanks so much! This should get me pointed in the right direction.
Mike On Tue, 2009-11-10 at 11:08 -0500, Jason Daly wrote: > Mike Dickson wrote: > > Can someone point me to a simple capture client w/source that uses > > OpenAL-Soft for the capture? Starting with Vivox SLVoice directly is > > going to be a pain since it's binary only.. > > > > Here's a really simple test app that I wrote. It captures audio for > three seconds, pauses, then captures three more seconds. At the end it > plays back what was captured. > > A lot of the values are hard-coded, so you may need to tweak it to get > what you're looking for. > > --"J" > _______________________________________________ Openal-devel mailing list Openal-devel@... http://opensource.creative.com/mailman/listinfo/openal-devel |
|
|
Re: Pulse capture (was Re: OpenAL Soft 1.10.622isreleased!)Ok, at least with a quick run I've verified that pulse capture isn't
working. If I use the ALSA driver (which will use the ALSA/pulse adapter) capture works (albeit time compressed, I sound like Mickey Mouse). With native pulse capture no playback and it loops trying to play back endlessly. I'll start with this and then move on to the Vivox client. Thanks for this, it will be a big help. Mike On Tue, 2009-11-10 at 11:08 -0500, Jason Daly wrote: > Mike Dickson wrote: > > Can someone point me to a simple capture client w/source that uses > > OpenAL-Soft for the capture? Starting with Vivox SLVoice directly is > > going to be a pain since it's binary only.. > > > > Here's a really simple test app that I wrote. It captures audio for > three seconds, pauses, then captures three more seconds. At the end it > plays back what was captured. > > A lot of the values are hard-coded, so you may need to tweak it to get > what you're looking for. > > --"J" > _______________________________________________ Openal-devel mailing list Openal-devel@... http://opensource.creative.com/mailman/listinfo/openal-devel |
|
|
Re: Pulse capture (was Re: OpenAL Soft 1.10.622 isreleased!)Using the test capture client source I've tracked this down to a hang in
opening the capture device. The client opens the output device find and then opens the capture device. It hangs in pulse_open at line 391 at the call to ppa_threaded_mainloop_wait: while((state=ppa_context_get_state(data->context)) != PA_CONTEXT_READY) { if(!PA_CONTEXT_IS_GOOD(state)) { AL_PRINT("Context did not get ready: %s\n", ppa_strerror(ppa_context_errno(data->context))); ppa_context_unref(data->context); data->context = NULL; ppa_threaded_mainloop_unlock(data->loop); goto out; } ppa_threaded_mainloop_wait(data->loop); ppa_threaded_mainloop_accept(data->loop); } ppa_context_set_state_callback(data->context, context_state_callback2, device); I'm a little confused by one thing.. Doesn't the call to set the state_callback need to go before the polling loop? I'm hesitant to start tinkering in here since this code is shared with the code that opens the output device and that *is* working fine.. Thoughts? Mike On Mon, 2009-11-09 at 19:57 -0500, Jason Daly wrote: > Chris Robinson wrote: > > On Monday 09 November 2009 5:01:46 am Mike Dickson wrote: > > > > > Great release! > > > > > > The pulseaudio support for output is working great for the apps I've > > > tried. Much better performance overall than using the ALSA emulation. > > > I do still have problems with pulseaudio capture, specifically with > > > Vivox/secondlife. I'd like to help with that if possible but I'm new to > > > the OpenAL sources so I hope an occasional question to the list is fine. > > > > > > > There shouldn't be any issue about asking here. Thanks for wanting to look > > into it. :) > > > > No problem at all. That's one reason why the openal-devel list > exists :-) > > --"J" > > > _______________________________________________ > Openal-devel mailing list > Openal-devel@... > http://opensource.creative.com/mailman/listinfo/openal-devel _______________________________________________ Openal-devel mailing list Openal-devel@... http://opensource.creative.com/mailman/listinfo/openal-devel |
|
|
Re: Pulse capture (was Re: OpenAL Soft 1.10.622 isreleased!)On Tuesday 10 November 2009 12:49:33 pm Mike Dickson wrote:
> Using the test capture client source I've tracked this down to a hang in > opening the capture device. The client opens the output device find and > then opens the capture device. It hangs in pulse_open at line 391 at the > call to ppa_threaded_mainloop_wait: > ... > > I'm a little confused by one thing.. Doesn't the call to set the > state_callback need to go before the polling loop? I'm hesitant to > start tinkering in here since this code is shared with the code that > opens the output device and that *is* working fine.. There's a call to ppa_context_set_state_callback before it attempts a connection. The one that happens afterward is to set a different callback which watches for context failures (eg. from the server being killed). If it hangs on ppa_threaded_mainloop_wait, that likely means the context isn't fully connecting or failing, for some reason. Does pulseaudio recording work with other apps? _______________________________________________ Openal-devel mailing list Openal-devel@... http://opensource.creative.com/mailman/listinfo/openal-devel |
|
|
Re: Pulse capture (was Re: OpenAL Soft 1.10.622 isreleased!)Looking for one. I'll check that next. I think gstreamer has a pulse
src module. So taking a seperate tack, is it possible to use the config file to use alsa for capture and pulseaudio for playback? How would that be set up? The pulseaudio alsa capture module does seem to work... Mike On Tue, 2009-11-10 at 16:05 -0800, Chris Robinson wrote: > On Tuesday 10 November 2009 12:49:33 pm Mike Dickson wrote: > > Using the test capture client source I've tracked this down to a hang in > > opening the capture device. The client opens the output device find and > > then opens the capture device. It hangs in pulse_open at line 391 at the > > call to ppa_threaded_mainloop_wait: > > > ... > > > > I'm a little confused by one thing.. Doesn't the call to set the > > state_callback need to go before the polling loop? I'm hesitant to > > start tinkering in here since this code is shared with the code that > > opens the output device and that *is* working fine.. > > There's a call to ppa_context_set_state_callback before it attempts a > connection. The one that happens afterward is to set a different callback > which watches for context failures (eg. from the server being killed). > > If it hangs on ppa_threaded_mainloop_wait, that likely means the context isn't > fully connecting or failing, for some reason. Does pulseaudio recording work > with other apps? > _______________________________________________ > Openal-devel mailing list > Openal-devel@... > http://opensource.creative.com/mailman/listinfo/openal-devel _______________________________________________ Openal-devel mailing list Openal-devel@... http://opensource.creative.com/mailman/listinfo/openal-devel |
|
|
Re: Pulse captureOn Tuesday 10 November 2009 4:16:45 pm Mike Dickson wrote:
> Looking for one. I'll check that next. I think gstreamer has a pulse > src module. > > So taking a seperate tack, is it possible to use the config file to use > alsa for capture and pulseaudio for playback? How would that be set up? > The pulseaudio alsa capture module does seem to work... There isn't a way to default to alsa for capture and pulseaudio for playback. But you can configure alsa to use any capture device you want, by setting: [alsa] capture = <devicename> in ~/.alsoftrc. You can then configure the app to use "ALSA Capture on default". _______________________________________________ Openal-devel mailing list Openal-devel@... http://opensource.creative.com/mailman/listinfo/openal-devel |
|
|
Re: Pulse capture (was Re: OpenAL Soft 1.10.622 isreleased!)The gstreamer pulseaudio src "plugin" captures audio fine. So there
must be some setup nuance required. I'll have a look at the pulsesrc gstreamer piece and see how it does it. Mike On Tue, 2009-11-10 at 18:16 -0600, Mike Dickson wrote: > Looking for one. I'll check that next. I think gstreamer has a pulse > src module. > > So taking a seperate tack, is it possible to use the config file to use > alsa for capture and pulseaudio for playback? How would that be set up? > The pulseaudio alsa capture module does seem to work... > > Mike > > On Tue, 2009-11-10 at 16:05 -0800, Chris Robinson wrote: > > On Tuesday 10 November 2009 12:49:33 pm Mike Dickson wrote: > > > Using the test capture client source I've tracked this down to a hang in > > > opening the capture device. The client opens the output device find and > > > then opens the capture device. It hangs in pulse_open at line 391 at the > > > call to ppa_threaded_mainloop_wait: > > > > > ... > > > > > > I'm a little confused by one thing.. Doesn't the call to set the > > > state_callback need to go before the polling loop? I'm hesitant to > > > start tinkering in here since this code is shared with the code that > > > opens the output device and that *is* working fine.. > > > > There's a call to ppa_context_set_state_callback before it attempts a > > connection. The one that happens afterward is to set a different callback > > which watches for context failures (eg. from the server being killed). > > > > If it hangs on ppa_threaded_mainloop_wait, that likely means the context isn't > > fully connecting or failing, for some reason. Does pulseaudio recording work > > with other apps? > > _______________________________________________ > > Openal-devel mailing list > > Openal-devel@... > > http://opensource.creative.com/mailman/listinfo/openal-devel > > > _______________________________________________ > Openal-devel mailing list > Openal-devel@... > http://opensource.creative.com/mailman/listinfo/openal-devel _______________________________________________ Openal-devel mailing list Openal-devel@... http://opensource.creative.com/mailman/listinfo/openal-devel |
|
|
|
| Free embeddable forum powered by Nabble | Forum Help |