[jitsi-users] audio creaking | portaudio > pulseaudio


#1

Hey,

first of, thank You for all the great work, it is highly appreciated!

I installed jitsi, unfortunately audio quality was insufficient, creaking made it difficult to communicate.
Assuming hardware or bandwidth was not the problem, i found a warnig/error in the log about pulseaudio.
I had no pulseaudio installed, avoided it so far because for me alsa was entirely sufficient.
Now pulseaudio is installed and it runs, at least in my case, better than portaudio. No more errors in log.

I am writing this in hope it might be useful.

With best regards,
Thomas

os: Debian x86_64 GNU/Linux
jitsi: 2.4.9997
java: java-7-openjdk-amd64
codec: opus
protocol: XMPP/Jabber
sound: alsa
relevant lines from old log, with portaudio, without pulseaudio installed:

17:14:51.548 Warnung: [13] org.jitsi.impl.neomedia.device.DeviceSystem.warn() Failed to initialize org.jitsi.impl.neomedia.device.PulseAudioSystem
java.lang.IllegalStateException: context.state
at org.jitsi.impl.neomedia.device.PulseAudioSystem.createContext(PulseAudioSystem.java:140)
at org.jitsi.impl.neomedia.device.PulseAudioSystem.getContext(PulseAudioSystem.java:424)
at org.jitsi.impl.neomedia.device.PulseAudioSystem.doInitialize(PulseAudioSystem.java:289)
at org.jitsi.impl.neomedia.device.DeviceSystem.initialize(DeviceSystem.java:628)
at org.jitsi.impl.neomedia.device.DeviceSystem.invokeDeviceSystemInitialize(DeviceSystem.java:431)
at org.jitsi.impl.neomedia.device.DeviceSystem.invokeDeviceSystemInitialize(DeviceSystem.java:334)
at org.jitsi.impl.neomedia.deviceBlueJimp.DeviceSystem.<init>(DeviceSystem.java:479)
at org.jitsi.impl.neomedia.device.AudioSystem.<init>(AudioSystem.java:193)
at org.jitsi.impl.neomedia.device.PulseAudioSystem.<init>(PulseAudioSystem.java:76)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at java.lang.Class.newInstance(Class.java:374)
at org.jitsi.impl.neomedia.device.DeviceSystem.initializeDeviceSystems(DeviceSystem.java:274)
at org.jitsi.impl.neomedia.device.DeviceSystem.initializeDeviceSystems(DeviceSystem.java:220)
at org.jitsi.impl.neomedia.device.DeviceSystem.initializeDeviceSystems(DeviceSystem.java:151)
at org.jitsi.impl.neomedia.device.DeviceConfiguration.<init>(DeviceConfiguration.java:337)
at org.jitsi.impl.neomedia.MediaServiceImpl.<init>(MediaServiceImpl.java:141)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at java.lang.Class.newInstance(Class.java:374)
at org.jitsi.impl.libjitsi.LibJitsiImpl.getService(LibJitsiImpl.java:133)
at org.jitsi.impl.libjitsi.LibJitsiOSGiImpl.getService(LibJitsiOSGiImpl.java:86)
at org.jitsi.service.libjitsi.LibJitsi.invokeGetServiceOnImpl(LibJitsi.java:163)
at org.jitsi.service.libjitsi.LibJitsi.getMediaService(LibJitsi.java:115)
at net.java.sip.communicator.impl.neomedia.NeomediaActivator.start(NeomediaActivator.java:380)
at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:641)
at org.apache.felix.framework.Felix.activateBundle(Felix.java:1977)
at org.apache.felix.framework.Felix.startBundle(Felix.java:1895)
at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1191)
at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:295)
at java.lang.Thread.run(Thread.java:744)
17:14:51.804 Information: [13] org.jitsi.impl.neomedia.device.DeviceSystem.info() Initializing video devices
17:14:51.859 Information: [13] org.jitsi.impl.neomedia.device.DeviceConfiguration.info() Looking for configured audio devices.
17:14:51.863 Schwerwiegend: [13] org.jitsi.impl.neomedia.device.DeviceConfiguration.error() Failed to register custom Renderer org.jitsi.impl.neomedia.jmfext.media.renderer.audio.PulseAudioRenderer with JMF.
java.lang.IllegalStateException: audioSystem
at org.jitsi.impl.neomedia.jmfext.media.renderer.audio.PulseAudioRenderer.<init>(PulseAudioRenderer.java:105)
at org.jitsi.impl.neomedia.jmfext.media.renderer.audio.PulseAudioRenderer.<init>(PulseAudioRenderer.java:85)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at java.lang.Class.newInstance(Class.java:374)
at org.jitsi.impl.neomedia.device.DeviceConfiguration.registerCustomRenderers(DeviceConfiguration.java:1028)
at org.jitsi.impl.neomedia.device.DeviceConfiguration.<init>(DeviceConfiguration.java:355)
at org.jitsi.impl.neomedia.MediaServiceImpl.<init>(MediaServiceImpl.java:141)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at java.lang.Class.newInstance(Class.java:374)
at org.jitsi.impl.libjitsi.LibJitsiImpl.getService(LibJitsiImpl.java:133)
at org.jitsi.impl.libjitsi.LibJitsiOSGiImpl.getService(LibJitsiOSGiImpl.java:86)
at org.jitsi.service.libjitsi.LibJitsi.invokeGetServiceOnImpl(LibJitsi.java:163)
at org.jitsi.service.libjitsi.LibJitsi.getMediaService(LibJitsi.java:115)
at net.java.sip.communicator.impl.neomedia.NeomediaActivator.start(NeomediaActivator.java:380)
at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:641)
at org.apache.felix.framework.Felix.activateBundle(Felix.java:1977)
at org.apache.felix.framework.Felix.startBundle(Felix.java:1895)
at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1191)
at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:295)
at java.lang.Thread.run(Thread.java:744)