Giter VIP home page Giter VIP logo

libjitsi's Introduction

libjitsi

libjitsi is an advanced Java media library for secure real-time audio/video communication. It allows applications to capture, playback, stream, encode/decode and encrypt audio and video flows. It also allows for advanced features such as audio mixing, handling multiple streams, participation in audio and video conferences. Originally libjitsi was part of the Jitsi client source code but we decided to spin it off so that other projects can also use it. libjitsi is distributed under the terms of the Apache license.

libjitsi's People

Contributors

bbaldino avatar bgrozev avatar bickelj avatar champtar avatar damencho avatar dependabot[bot] avatar dpocock avatar emcho avatar ethanlin2015 avatar gpolitis avatar guusdk avatar hristoterezov avatar ibauersachs avatar jcchuks avatar jonathanlennox avatar josephfrazier avatar lsevans avatar lyubomir avatar mdaneshi avatar mondain avatar mstyura avatar murillo128 avatar paweldomas avatar somilbansal avatar tomdee avatar traud avatar virtuacoplenny avatar wernerd avatar yanas avatar zbettenbuk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

libjitsi's Issues

Wrapper error when using android 5.0

Hi guys,
I not sure this problem is relative with your source code or not. If you have time, please help me. I'm using for wrapper file to build an opus codec lib. For more detail in here.
http://stackoverflow.com/questions/27355052/java-lang-unsatisfiedlinkerror-when-using-with-android-5-0

Overall: with your wrapper and source code from opus-codec.org, it work perfect on android 4.0+ but in Android 5.0 it can't find any native method and this is the exception: java.lang.UnsatisfiedLinkError: No implementation found for ... let me know if you have solution or reply in stackoverflow.

Best regards,

Latest libjitsi.jar throws DTLS exception while jvb's libjitsi.jar is OK

If I use libjitsi.jar copied from videobridge(https://download.jitsi.org/jitsi-videobridge/linux/jitsi-videobridge-linux-x64-202.zip), everything is OK, no exception appears.
But if I use libjitsi.jar built from latest version of libjitsi repo, there will be some DTLS exceptions:
BTW, libjitsi and bouncycastle(bcpkix-jdk15on-151.jar, bcprov-jdk15on-151.jar) have been updated to latest version.

Here are DTLS exceptions:

SEVERE: Failed to connect this DTLS client to a DTLS server! Received fatal alert 47.
org.bouncycastle.crypto.tls.TlsFatalAlert
at org.bouncycastle.crypto.tls.DTLSClientProtocol.reportServerVersion(Unknown Source)
at org.bouncycastle.crypto.tls.DTLSClientProtocol.processServerHello(Unknown Source)
at org.bouncycastle.crypto.tls.DTLSClientProtocol.clientHandshake(Unknown Source)
at org.bouncycastle.crypto.tls.DTLSClientProtocol.connect(Unknown Source)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer.runInConnectThread(DtlsPacketTransformer.java:759)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer.access$000(DtlsPacketTransformer.java:26)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer$1.run(DtlsPacketTransformer.java:970)
Aug 11, 2014 2:39:18 PM org.jitsi.util.Logger info
INFO: Starting, format=audio 1542631196
Aug 11, 2014 2:39:18 PM org.jitsi.util.Logger error
SEVERE: Failed to connect this DTLS client to a DTLS server! Received fatal alert 47.
org.bouncycastle.crypto.tls.TlsFatalAlert
at org.bouncycastle.crypto.tls.DTLSClientProtocol.reportServerVersion(Unknown Source)
at org.bouncycastle.crypto.tls.DTLSClientProtocol.processServerHello(Unknown Source)
at org.bouncycastle.crypto.tls.DTLSClientProtocol.clientHandshake(Unknown Source)
at org.bouncycastle.crypto.tls.DTLSClientProtocol.connect(Unknown Source)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer.runInConnectThread(DtlsPacketTransformer.java:759)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer.access$000(DtlsPacketTransformer.java:26)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer$1.run(DtlsPacketTransformer.java:970)
Exception in thread "Thread-15" java.lang.IllegalStateException: java.io.IOException: org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl is closed!
at org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl.queueReceive(DatagramTransportImpl.java:287)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer.reverseTransform(DtlsPacketTransformer.java:608)
at org.jitsi.impl.neomedia.transform.SinglePacketTransformer.reverseTransform(SinglePacketTransformer.java:78)
at org.jitsi.impl.neomedia.transform.TransformEngineChain$PacketTransformerChain.reverseTransform(TransformEngineChain.java:234)
at org.jitsi.impl.neomedia.transform.TransformInputStream.createRawPacket(TransformInputStream.java:55)
at org.jitsi.impl.neomedia.RTPConnectorInputStream.run(RTPConnectorInputStream.java:542)
at java.lang.Thread.run(Thread.java:701)
Caused by: java.io.IOException: org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl is closed!
at org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl.assertNotClosed(DatagramTransportImpl.java:118)
at org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl.queueReceive(DatagramTransportImpl.java:283)
... 6 more
Aug 11, 2014 2:39:19 PM org.jitsi.util.Logger error
SEVERE: Failed to connect this DTLS client to a DTLS server! Received fatal alert 47.
org.bouncycastle.crypto.tls.TlsFatalAlert
at org.bouncycastle.crypto.tls.DTLSClientProtocol.reportServerVersion(Unknown Source)
at org.bouncycastle.crypto.tls.DTLSClientProtocol.processServerHello(Unknown Source)
at org.bouncycastle.crypto.tls.DTLSClientProtocol.clientHandshake(Unknown Source)
at org.bouncycastle.crypto.tls.DTLSClientProtocol.connect(Unknown Source)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer.runInConnectThread(DtlsPacketTransformer.java:759)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer.access$000(DtlsPacketTransformer.java:26)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer$1.run(DtlsPacketTransformer.java:970)
Aug 11, 2014 2:39:19 PM net.sf.fmj.media.Log info
INFO: Resetting queue, last seq added: 9223372036854775806, current seq: 10734
Aug 11, 2014 2:39:19 PM org.jitsi.util.Logger error
SEVERE: Failed to connect this DTLS client to a DTLS server! Received fatal alert 47.
org.bouncycastle.crypto.tls.TlsFatalAlert
at org.bouncycastle.crypto.tls.DTLSClientProtocol.reportServerVersion(Unknown Source)
at org.bouncycastle.crypto.tls.DTLSClientProtocol.processServerHello(Unknown Source)
at org.bouncycastle.crypto.tls.DTLSClientProtocol.clientHandshake(Unknown Source)
at org.bouncycastle.crypto.tls.DTLSClientProtocol.connect(Unknown Source)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer.runInConnectThread(DtlsPacketTransformer.java:759)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer.access$000(DtlsPacketTransformer.java:26)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer$1.run(DtlsPacketTransformer.java:970)
Exception in thread "Thread-19" java.lang.IllegalStateException: java.io.IOException: org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl is closed!
at org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl.queueReceive(DatagramTransportImpl.java:287)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer.reverseTransform(DtlsPacketTransformer.java:608)
at org.jitsi.impl.neomedia.transform.SinglePacketTransformer.reverseTransform(SinglePacketTransformer.java:78)
at org.jitsi.impl.neomedia.transform.TransformEngineChain$PacketTransformerChain.reverseTransform(TransformEngineChain.java:234)
at org.jitsi.impl.neomedia.transform.TransformInputStream.createRawPacket(TransformInputStream.java:55)
at org.jitsi.impl.neomedia.RTPConnectorInputStream.run(RTPConnectorInputStream.java:542)
at java.lang.Thread.run(Thread.java:701)
Caused by: java.io.IOException: org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl is closed!
at org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl.assertNotClosed(DatagramTransportImpl.java:118)
at org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl.queueReceive(DatagramTransportImpl.java:283)
... 6 more
Aug 11, 2014 2:39:19 PM org.jitsi.util.Logger info
INFO: Set incoming payload type 116
Aug 11, 2014 2:39:19 PM org.jitsi.util.Logger info
INFO: Set outgoing payload type -1
Aug 11, 2014 2:39:19 PM net.sf.fmj.media.Log info
INFO: Growing packet queue to 300
Exception in thread "Thread-20" java.lang.IllegalStateException: java.io.IOException: org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl is closed!
at org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl.queueReceive(DatagramTransportImpl.java:287)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer.reverseTransform(DtlsPacketTransformer.java:608)
at org.jitsi.impl.neomedia.transform.SinglePacketTransformer.reverseTransform(SinglePacketTransformer.java:78)
at org.jitsi.impl.neomedia.transform.TransformEngineChain$PacketTransformerChain.reverseTransform(TransformEngineChain.java:234)
at org.jitsi.impl.neomedia.transform.TransformInputStream.createRawPacket(TransformInputStream.java:55)
at org.jitsi.impl.neomedia.RTPConnectorInputStream.run(RTPConnectorInputStream.java:542)
at java.lang.Thread.run(Thread.java:701)
Caused by: java.io.IOException: org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl is closed!
at org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl.assertNotClosed(DatagramTransportImpl.java:118)
at org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl.queueReceive(DatagramTransportImpl.java:283)
... 6 more
Aug 11, 2014 2:39:19 PM net.sf.fmj.media.Log info
INFO: Resetting queue, last seq added: 9223372036854775806, current seq: 20862
Aug 11, 2014 2:39:19 PM org.jitsi.util.Logger info
INFO: Starting, format=video 1462519656
Aug 11, 2014 2:39:19 PM org.jitsi.util.Logger info
INFO: Set incoming payload type 116
Aug 11, 2014 2:39:19 PM org.jitsi.util.Logger info
INFO: Set outgoing payload type -1
Aug 11, 2014 2:39:19 PM org.jitsi.util.Logger error
SEVERE: Failed to connect this DTLS client to a DTLS server! Received fatal alert 47.
org.bouncycastle.crypto.tls.TlsFatalAlert
at org.bouncycastle.crypto.tls.DTLSClientProtocol.reportServerVersion(Unknown Source)
at org.bouncycastle.crypto.tls.DTLSClientProtocol.processServerHello(Unknown Source)
at org.bouncycastle.crypto.tls.DTLSClientProtocol.clientHandshake(Unknown Source)
at org.bouncycastle.crypto.tls.DTLSClientProtocol.connect(Unknown Source)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer.runInConnectThread(DtlsPacketTransformer.java:759)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer.access$000(DtlsPacketTransformer.java:26)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer$1.run(DtlsPacketTransformer.java:970)
Aug 11, 2014 2:39:19 PM org.jitsi.util.Logger info
INFO: New FECReceiver for SSRC=3113195556
Aug 11, 2014 2:39:19 PM org.jitsi.util.Logger info
INFO: New FECReceiver for SSRC=1110375454
Aug 11, 2014 2:39:19 PM org.jitsi.util.Logger info
INFO: Recording task of MUC [email protected] started.
Exception in thread "Thread-16" java.lang.IllegalStateException: java.io.IOException: org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl is closed!
at org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl.queueReceive(DatagramTransportImpl.java:287)
at org.jitsi.impl.neomedia.transform.dtls.DtlsPacketTransformer.reverseTransform(DtlsPacketTransformer.java:608)
at org.jitsi.impl.neomedia.transform.SinglePacketTransformer.reverseTransform(SinglePacketTransformer.java:78)
at org.jitsi.impl.neomedia.transform.TransformEngineChain$PacketTransformerChain.reverseTransform(TransformEngineChain.java:234)
at org.jitsi.impl.neomedia.transform.TransformInputStream.createRawPacket(TransformInputStream.java:55)
at org.jitsi.impl.neomedia.RTPConnectorInputStream.run(RTPConnectorInputStream.java:542)
at java.lang.Thread.run(Thread.java:701)
Caused by: java.io.IOException: org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl is closed!
at org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl.assertNotClosed(DatagramTransportImpl.java:118)
at org.jitsi.impl.neomedia.transform.dtls.DatagramTransportImpl.queueReceive(DatagramTransportImpl.java:283)
... 6 more

how to detect PC camera with libjitsi in Win 7 bit64

Dear team,

my win 7 64 bit installed jitsi and it can find my web camera and video preview is OK. installing folder: D:\javaApp\SIP\Jitsi

and I clone libjitsi to import it to eclipse. and I wrote one class to detect web camera as following:

package org.jitsi.demo.video;
import java.util.List;
import javax.media.CaptureDeviceInfo;
import org.jitsi.impl.neomedia.MediaServiceImpl;
import org.jitsi.impl.neomedia.device.DeviceConfiguration;
import org.jitsi.impl.neomedia.jmfext.media.protocol.directshow.DSCaptureDevice;
import org.jitsi.impl.neomedia.jmfext.media.protocol.directshow.DSManager;
import org.jitsi.service.libjitsi.LibJitsi;
import org.jitsi.service.neomedia.MediaType;
import org.jitsi.service.neomedia.MediaUseCase;
import org.jitsi.service.neomedia.device.MediaDevice;

public class MediaTest {
public static void main(String[] args){
LibJitsi.start();
MediaServiceImpl mediaService
= (MediaServiceImpl) LibJitsi.getMediaService();
DeviceConfiguration deviceConfiguration = mediaService.getDeviceConfiguration();
List<? extends CaptureDeviceInfo> infos = deviceConfiguration.getAvailableVideoCaptureDevices(
MediaUseCase.CALL);
System.out.println("infos="+infos);
List devices = mediaService.getDevices(MediaType.VIDEO,
MediaUseCase.CALL);
// DSManager ds = new DSManager();
// DSCaptureDevice[] devs = ds.getCaptureDevices();
// System.out.println("devs="+devs);
}

}

and I set -Djava.library.path=D:\javaApp\SIP\Jitsi\native in eclipse "Run Configuration--->Arguments--->VM arguments.
but got the following error:

---------------------------------------ERROR
INFO: Initializing video devices
ๅ…ญๆœˆ 07, 2013 10:09:34 ไธ‹ๅˆ org.jitsi.util.Logger warn
WARNING: Failed to initialize org.jitsi.impl.neomedia.device.DirectShowSystem
java.lang.reflect.UndeclaredThrowableException
at org.jitsi.impl.neomedia.device.DeviceSystem.invokeDeviceSystemInitialize(DeviceSystem.java:431)
at org.jitsi.impl.neomedia.device.DeviceSystem.invokeDeviceSystemInitialize(DeviceSystem.java:338)
at org.jitsi.impl.neomedia.device.DeviceSystem.(DeviceSystem.java:483)
at org.jitsi.impl.neomedia.device.DeviceSystem.(DeviceSystem.java:465)
at org.jitsi.impl.neomedia.device.DirectShowSystem.(DirectShowSystem.java:52)
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:525)
at java.lang.Class.newInstance0(Class.java:374)
at java.lang.Class.newInstance(Class.java:327)
at org.jitsi.impl.neomedia.device.DeviceSystem.initializeDeviceSystems(DeviceSystem.java:278)
at org.jitsi.impl.neomedia.device.DeviceSystem.initializeDeviceSystems(DeviceSystem.java:224)
at org.jitsi.impl.neomedia.device.DeviceSystem.initializeDeviceSystems(DeviceSystem.java:173)
at org.jitsi.impl.neomedia.device.DeviceConfiguration.(DeviceConfiguration.java:350)
at org.jitsi.impl.neomedia.MediaServiceImpl.(MediaServiceImpl.java:133)
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:525)
at java.lang.Class.newInstance0(Class.java:374)
at java.lang.Class.newInstance(Class.java:327)
at org.jitsi.impl.libjitsi.LibJitsiImpl.getService(LibJitsiImpl.java:133)
at org.jitsi.service.libjitsi.LibJitsi.invokeGetServiceOnImpl(LibJitsi.java:163)
at org.jitsi.service.libjitsi.LibJitsi.getMediaService(LibJitsi.java:115)
at org.jitsi.demo.video.MediaTest.main(MediaTest.java:20)
Caused by: java.lang.UnsatisfiedLinkError: org.jitsi.impl.neomedia.jmfext.media.protocol.directshow.DSManager.init()J
at org.jitsi.impl.neomedia.jmfext.media.protocol.directshow.DSManager.init(Native Method)
at org.jitsi.impl.neomedia.jmfext.media.protocol.directshow.DSManager.(DSManager.java:68)
at org.jitsi.impl.neomedia.device.DirectShowSystem.doInitialize(DirectShowSystem.java:59)
at org.jitsi.impl.neomedia.device.DeviceSystem.initialize(DeviceSystem.java:632)
at org.jitsi.impl.neomedia.device.DeviceSystem$1.run(DeviceSystem.java:383)

ๅ…ญๆœˆ 07, 2013 10:09:34 ไธ‹ๅˆ org.jitsi.util.Logger info
INFO: Looking for configured audio devices.
ๅ…ญๆœˆ 07, 2013 10:09:34 ไธ‹ๅˆ org.jitsi.util.Logger info
INFO: Scanning for configured Video Devices.
ๅ…ญๆœˆ 07, 2013 10:09:34 ไธ‹ๅˆ org.jitsi.util.Logger info
INFO: Found Desktop Streaming 0 as a AVFRAME, class org.jitsi.impl.neomedia.codec.video.AVFrame video capture device.
ๅ…ญๆœˆ 07, 2013 10:09:34 ไธ‹ๅˆ org.jitsi.util.Logger error
SEVERE: Failed to register custom Renderer org.jitsi.impl.neomedia.jmfext.media.renderer.video.JAWTRenderer with JMF.
java.lang.UnsatisfiedLinkError: D:\IDE\java\jdk1.7.0_21\jre\bin\jnawtrenderer.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1939)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1864)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1846)
at java.lang.Runtime.loadLibrary0(Runtime.java:845)
at java.lang.System.loadLibrary(System.java:1084)
at org.jitsi.impl.neomedia.jmfext.media.renderer.video.JAWTRenderer.(JAWTRenderer.java:90)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:188)
at org.jitsi.impl.neomedia.device.DeviceConfiguration.registerCustomRenderers(DeviceConfiguration.java:1062)
at org.jitsi.impl.neomedia.device.DeviceConfiguration.(DeviceConfiguration.java:368)
at org.jitsi.impl.neomedia.MediaServiceImpl.(MediaServiceImpl.java:133)
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:525)
at java.lang.Class.newInstance0(Class.java:374)
at java.lang.Class.newInstance(Class.java:327)
at org.jitsi.impl.libjitsi.LibJitsiImpl.getService(LibJitsiImpl.java:133)
at org.jitsi.service.libjitsi.LibJitsi.invokeGetServiceOnImpl(LibJitsi.java:163)
at org.jitsi.service.libjitsi.LibJitsi.getMediaService(LibJitsi.java:115)
at org.jitsi.demo.video.MediaTest.main(MediaTest.java:20)

infos=[]
ๅ…ญๆœˆ 07, 2013 10:09:34 ไธ‹ๅˆ org.jitsi.util.Logger warn
WARNING: Failed to initialize org.jitsi.impl.neomedia.device.DirectShowSystem
java.lang.reflect.UndeclaredThrowableException
at org.jitsi.impl.neomedia.device.DeviceSystem.invokeDeviceSystemInitialize(DeviceSystem.java:431)
at org.jitsi.impl.neomedia.device.DeviceSystem.invokeDeviceSystemInitialize(DeviceSystem.java:338)
at org.jitsi.impl.neomedia.device.DeviceSystem.(DeviceSystem.java:483)
at org.jitsi.impl.neomedia.device.DeviceSystem.(DeviceSystem.java:465)
at org.jitsi.impl.neomedia.device.DirectShowSystem.(DirectShowSystem.java:52)
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:525)
at java.lang.Class.newInstance0(Class.java:374)
at java.lang.Class.newInstance(Class.java:327)
at org.jitsi.impl.neomedia.device.DeviceSystem.initializeDeviceSystems(DeviceSystem.java:278)
at org.jitsi.impl.neomedia.device.DeviceSystem.initializeDeviceSystems(DeviceSystem.java:224)
at org.jitsi.impl.neomedia.MediaServiceImpl.getDevices(MediaServiceImpl.java:529)
at org.jitsi.demo.video.MediaTest.main(MediaTest.java:25)
Caused by: java.lang.UnsatisfiedLinkError: org.jitsi.impl.neomedia.jmfext.media.protocol.directshow.DSManager.init()J
at org.jitsi.impl.neomedia.jmfext.media.protocol.directshow.DSManager.init(Native Method)
at org.jitsi.impl.neomedia.jmfext.media.protocol.directshow.DSManager.(DSManager.java:68)
at org.jitsi.impl.neomedia.device.DirectShowSystem.doInitialize(DirectShowSystem.java:59)
at org.jitsi.impl.neomedia.device.DeviceSystem.initialize(DeviceSystem.java:632)
at org.jitsi.impl.neomedia.device.DeviceSystem$1.run(DeviceSystem.java:383)

Pa_StartStream: waveInStart returned = 0x0.
ๅ…ญๆœˆ 07, 2013 10:09:36 ไธ‹ๅˆ org.jitsi.util.Logger info
INFO: GatherEntropy got: 176400 bytes

warning: The VAD has been replaced by a hack pending a complete rewrite

do I missing something or configuration is error?

would you please tell me how to detect camera with libjitsi?

thx a lot

After the main thread exiting, some other threads still exist.

The problem occurred when I tried to stop Jirecon.
"jconsole" shows that the remaining threads include:
org.jitsi.impl.neomedia.RTPTranslatorImpl$OutputDataStreamImpl
org.jitsi.impl.neomedia.RTPTranslatorImpl$PushSourceStreamImpl
org.jitsi.impl.neomedia.RTPTranslatorImpl$RTPConnectorImpl@5b5a5cf
org.jitsi.impl.neomedia.RTPTranslatorImpl$RTPConnectorImpl@5b5a5cf
Those threads hang at places:
RTPTranslatorImpl.java:1260
RTPTranslatorImpl.java:1809

Win-x64 jnsctp.dll Can't find dependent libraries

SctpNativeWrapperTest fails on Win7-64 bit with the following:

java.lang.UnsatisfiedLinkError: C:\Users\xx\Documents\workspace\libjitsi\target\classes\win32-x86-64\jnsctp.dll: Can't find dependent libraries
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1929)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1814)
    at java.lang.Runtime.load0(Runtime.java:809)
    at java.lang.System.load(System.java:1083)
    at org.jitsi.util.JNIUtils.loadLibrary(JNIUtils.java:57)
    at org.jitsi.sctp4j.Sctp.<clinit>(Sctp.java:57)

It looks like replacing jnsctp.dll from a build prior to the maven changes fixes the issue.

Attached is a DependencyWalker image from the jnsctp.dll with this issue
image

read queue is ful

when I use ofmeet the server generates this error

Dec 18, 2014 10:31:38 AM org.jitsi.util.Logger warn
WARNING: Discarded an RTP packet because the read queue is full.
Dec 18, 2014 10:31:38 AM org.jitsi.util.Logger info
INFO: Stream: 272742f8ef1ed8a1, RTT computation may be wrong (65536>= 65536 milliseconds): now 14188

It causes miscommunication when points connect to server (loose audio or video)
I checked the source code of jitsi and found that the error may be generated from this
libjitsi/PushSourceStreamImpl.java at master ยท jitsi/libjitsi ยท GitHub
and the MaxPacketsPerMillisPolicy.PACKET_QUEUE_CAPACITY is read from configuration file.
However, I couldn't find the configuration file for it.

Any one know where is it defined?

Portaudio build with latest version of hotplug branch is broken

I'm tried to build portaudio lib and got this:

init-native:

portaudio:
[cc] Starting dependency analysis for 2 files.
[cc] 2 files are up to date.
[cc] 0 files to be recompiled from dependency analysis.
[cc] 1 total files to be compiled.
[cc] /mnt/data/libjitsi-master/src/native/portaudio/org_jitsi_impl_neomedia_portaudio_Pa.c: In function 'Java_org_jitsi_impl_neomedia_portaudio_Pa_DeviceInfo_1getDeviceUIDBytes':
[cc] /mnt/data/libjitsi-master/src/native/portaudio/org_jitsi_impl_neomedia_portaudio_Pa.c:229:44: error: 'PaDeviceInfo' has no member named 'deviceUID'
[cc] /mnt/data/libjitsi-master/src/native/portaudio/org_jitsi_impl_neomedia_portaudio_Pa.c: In function 'Java_org_jitsi_impl_neomedia_portaudio_Pa_DeviceInfo_1getTransportTypeBytes':
[cc] /mnt/data/libjitsi-master/src/native/portaudio/org_jitsi_impl_neomedia_portaudio_Pa.c:286:44: error: 'PaDeviceInfo' has no member named 'transportType'
[cc] /mnt/data/libjitsi-master/src/native/portaudio/org_jitsi_impl_neomedia_portaudio_Pa.c:288:1: warning: control reaches end of non-void function [-Wreturn-type]
[cc] /mnt/data/libjitsi-master/src/native/portaudio/org_jitsi_impl_neomedia_portaudio_Pa.c: In function 'Java_org_jitsi_impl_neomedia_portaudio_Pa_DeviceInfo_1getDeviceUIDBytes':
[cc] /mnt/data/libjitsi-master/src/native/portaudio/org_jitsi_impl_neomedia_portaudio_Pa.c:231:1: warning: control reaches end of non-void function [-Wreturn-type]

BUILD FAILED
/mnt/data/libjitsi-master/src/native/build.xml:492: gcc failed with return code 1

Total time: 0 seconds

How to use libjitsi

Hello everyone
Can provide more examples to use libjitsi?
For example, record a video, take pictures, transcoding, etc.
AVReceive2 and AVTransmit2 difficult to understand for newcomers

Recording RTP VP8 to webm

Hi,
I have implemented a java application, that read RTP packet saved with wireshark (pcap file).
I'm able to read the RTP with VP8 codec (payload type = 120).
How I can save a webm file from them?
Please can you help me?

Thanks in advance
Francesco

RTP packetization

I am currently evaluating Libjitsi.

The problem I have so far is that the equipment accepts only RTP packets containing '40ms' of PCMU audio.
It seems that Libjitsi is scheduled at '20ms'. Am I right?
If so, how can I adapt to that requirement?

Bluetooth Sound and Voice Problems

The opponent hears the voice stutter/lagging by using any bluetooth headset under Mac OSX. Normal USB-Headsets are working fine. The Bluetooth Headsets working fine with other SIP-Software like Zoiper/Telephone. Tested from two persons under Asterisk with Codec G722.

I discussed this on the Jitsi mailing lists and the link to that discussion is: http://lists.jitsi.org/pipermail/users/2014-July/007447.html

(Issue migrated from https://trac.jitsi.org/ticket/1298)

loudspeaker and headset

I would like to have audio input (coming from RTP stream) simultaneously on loudspeaker and headset.
Is that possible?

Static link libvpx in libjnvpx

Make sure we statically link libvpx into binary libjnvpx, as the lib is not detected when building binary debian package and breaks the process.

rfc-5244 ABCD signalling

I have to drive equipments controlled via ABCD signalling (see http://www.rfc-base.org/txt/rfc-5244.txt)

Libjitsi sounds very promising and I have already modified the source to cope with this and it works.

Is the community interested in this new capability?
If so, I would need some guidance to make sure I am following the 'philosophy' of the library.

Opus decoding problems

I'm using libjitsi's Opus class in a project. It works perfectly with version 212, before the outputOffset was added to Opus.encode() and Opus.decode(). I've tried the later version 266 and changed my code to include an outputOffset (which I've simply set to zero) but I'm getting problems, Opus.decode() is returning -1.

Two questions:
-Are there any tests for this class to be sure Opus is working and its not just me making a mistake?
-Are there any plans to for the Opus class to provide more information about problems during encode/decode? A general -1 error code without no console output is very unhelpful.

Jitsi crashes on incoming call - ubuntu 14.04 64 bit

Dear all,
I installed jitsi from ubuntu package 2.8 but it throws exceptions on incoming call with no sound.
Exception Detail

SEVERE: [555] util.UtilActivator.uncaughtException().119 An uncaught exception occurred in thread=Thread[org.jitsi.impl.neomedia.protocol.PushBufferDataSourceAdapter$PushBufferStreamAdapter.streamReadThread,5,system] and message was: null
java.lang.reflect.UndeclaredThrowableException
    at org.jitsi.impl.neomedia.conference.AudioMixerPushBufferStream.transferData(AudioMixerPushBufferStream.java:1179)
    at org.jitsi.impl.neomedia.conference.AudioMixerPushBufferStream$1.transferData(AudioMixerPushBufferStream.java:133)
    at org.jitsi.impl.neomedia.protocol.StreamSubstituteBufferTransferHandler.transferData(StreamSubstituteBufferTransferHandler.java:91)
    at org.jitsi.impl.neomedia.protocol.PushBufferDataSourceAdapter$PushBufferStreamAdapter.runInStreamReadThread(PushBufferDataSourceAdapter.java:287)
    at org.jitsi.impl.neomedia.protocol.PushBufferDataSourceAdapter$PushBufferStreamAdapter.access$400(PushBufferDataSourceAdapter.java:44)
    at org.jitsi.impl.neomedia.protocol.PushBufferDataSourceAdapter$PushBufferStreamAdapter$1.run(PushBufferDataSourceAdapter.java:343)
Caused by: java.io.IOException
    at org.jitsi.impl.neomedia.protocol.CachingPushBufferStream.read(CachingPushBufferStream.java:394)
    at org.jitsi.impl.neomedia.conference.AudioMixer.read(AudioMixer.java:1012)
    at org.jitsi.impl.neomedia.device.AudioMixerMediaDevice$2.read(AudioMixerMediaDevice.java:332)
    at org.jitsi.impl.neomedia.conference.AudioMixerPushBufferStream.readInPushBufferStream(AudioMixerPushBufferStream.java:595)
    at org.jitsi.impl.neomedia.conference.AudioMixerPushBufferStream.readInPushBufferStreams(AudioMixerPushBufferStream.java:788)
    at org.jitsi.impl.neomedia.conference.AudioMixerPushBufferStream.read(AudioMixerPushBufferStream.java:466)
    at org.jitsi.impl.neomedia.conference.AudioMixerPushBufferStream.transferData(AudioMixerPushBufferStream.java:1175)
    ... 5 more
Caused by: java.io.IOException: The source stream is closed
    at net.sf.fmj.media.multiplexer.RawBufferMux$RawBufferSourceStream.read(RawBufferMux.java:256)
    at org.jitsi.impl.neomedia.protocol.CachingPushBufferStream.transferData(CachingPushBufferStream.java:665)
    at org.jitsi.impl.neomedia.protocol.CachingPushBufferStream$1.transferData(CachingPushBufferStream.java:580)
    at net.sf.fmj.media.multiplexer.RawBufferMux$RawBufferSourceStream.run(RawBufferMux.java:380)
    at java.lang.Thread.run(Thread.java:745)
    at net.sf.fmj.media.util.MediaThread.run(MediaThread.java:202)

I tried pulseaudio also this time I got better result but still sometimes it throws same exception on incoming call
please help

Renaming Problems

I want to compile and build libjitsi for com.example on Android . But when I include the renamed jar, it has errors.
I renamed from org.jitsi to com.example using Ideal J but it shows errors

What is the best to use libjitsi for a custom application?

Cannot change the origin when sharing a desktop region in a conference

When the focus of a conference shares a region of the desktop and tries to move the window, the following exceptions occur:

org.jitsi.impl.neomedia.device.VideoTranslatorMediaDevice cannot be cast to org.jitsi.impl.neomedia.device.MediaDeviceImpl
java.lang.ClassCastException: org.jitsi.impl.neomedia.device.VideoTranslatorMediaDevice cannot be cast to org.jitsi.impl.neomedia.device.MediaDeviceImpl
    at org.jitsi.impl.neomedia.VideoMediaStreamImpl.movePartialDesktopStreaming(VideoMediaStreamImpl.java:986)
    at net.java.sip.communicator.impl.protocol.sip.OperationSetDesktopStreamingSipImpl.movePartialDesktopStreaming(OperationSetDesktopStreamingSipImpl.java:306)

And:

org.jitsi.impl.neomedia.device.VideoTranslatorMediaDevice cannot be cast to org.jitsi.impl.neomedia.device.MediaDeviceImpl
java.lang.ClassCastException: org.jitsi.impl.neomedia.device.VideoTranslatorMediaDevice cannot be cast to org.jitsi.impl.neomedia.device.MediaDeviceImpl
    at org.jitsi.impl.neomedia.MediaServiceImpl.getOriginForDesktopStreamingDevice(MediaServiceImpl.java:1336)
    at net.java.sip.communicator.impl.protocol.sip.OperationSetDesktopStreamingSipImpl.getOriginForMediaDevice(OperationSetDesktopStreamingSipImpl.java:338)
    at net.java.sip.communicator.impl.protocol.sip.OperationSetDesktopStreamingSipImpl.setLocalVideoAllowed(OperationSetDesktopStreamingSipImpl.java:213)

(Issue migrated from https://trac.jitsi.org/ticket/1210)

libjitsi & Jack

I have seen audiosystem for Portaudio, Pulseaudio...
Is there anything for Jack?

Outgoing G722 RTP packets have incorrect RTP timestamp

First G722 rtp packet has timestamp 2^32-1.

I found the fix in jitsi repo for bug #872 (see below), and saw that "outputFormat =" is missing for G722 in (src/org/jitsi/impl/neomedia/codec/audio/g722/JNIEncoderImpl.java:118). I can not build and verify this. So maybe someone is able to try this.

regards,
chris.

diff --git a/src/net/java/sip/communicator/impl/neomedia/codec/audio/speex/JNIEncoder.java b/s
index f0cd63e..3804bfe 100644
--- a/src/net/java/sip/communicator/impl/neomedia/codec/audio/speex/JNIEncoder.java
+++ b/src/net/java/sip/communicator/impl/neomedia/codec/audio/speex/JNIEncoder.java
@@ -413,7 +413,7 @@ public class JNIEncoder
         {
             AudioFormat outputAudioFormat = (AudioFormat) outputFormat;

-            setOutputFormat(
+            outputFormat = setOutputFormat(
                 new AudioFormat(
                             outputAudioFormat.getEncoding(),
                             outputAudioFormat.getSampleRate(),
@@ -425,6 +425,8 @@ public class JNIEncoder
                             outputAudioFormat.getFrameRate(),
                             outputAudioFormat.getDataType())
                         {
+                            private static final long serialVersionUID = 0L;
+
                             @Override
                             public long computeDuration(long length)
                             {

Libjitsi libjitsi-626-i386 screen sharing issue

I have had this occur twice. First time:

While trying to screen share from Ubuntu Linux 32 bit to Windows 7 64 bit using Libjitsi version:
libjitsi-626-i386.zip 2015-06-12 21:11 11M

Java path is: /home/john/Programs/jdk1.8.0_45/jre/bin/java

OS: Linux

Architecture: i386

...

H264 90000.0
Jun 13, 2015 6:50:19 PM org.jitsi.util.Logger info
INFO: video send FPS: 10.0
Jun 13, 2015 6:50:19 PM net.sf.fmj.media.Log info
INFO: Resetting queue, last seq added: 9223372036854775806, current seq: 36772
Jun 13, 2015 6:50:19 PM net.sf.fmj.media.Log info
INFO: Starting RTPSourceStream.
Jun 13, 2015 6:50:19 PM net.sf.fmj.media.Log error
SEVERE: Failed to realize: net.sf.fmj.media.ProcessEngine@1a11e02
Jun 13, 2015 6:50:19 PM net.sf.fmj.media.Log error
SEVERE: Cannot build a flow graph with the customized options:
Jun 13, 2015 6:50:19 PM net.sf.fmj.media.Log error
SEVERE: Unable to transcode format: AVFRAME, 1600x1200, class org.jitsi.impl.neomedia.codec.video.AVFrame, pixFmt 27
Jun 13, 2015 6:50:19 PM net.sf.fmj.media.Log error
SEVERE: to: H264/RTP, fmtps={packetization-mode=1}
Jun 13, 2015 6:50:19 PM net.sf.fmj.media.Log error
SEVERE: outputting to: raw.rtp
Jun 13, 2015 6:50:19 PM net.sf.fmj.media.Log error
SEVERE: Unable to add customed codecs:
Jun 13, 2015 6:50:19 PM net.sf.fmj.media.Log error
SEVERE: org.jitsi.impl.neomedia.codec.video.h264.JNIEncoder@18b328b
Jun 13, 2015 6:50:19 PM org.jitsi.util.Logger info
INFO: Stop stream
Jun 13, 2015 6:50:19 PM net.sf.fmj.media.Log error
SEVERE: Error: Unable to realize net.sf.fmj.media.ProcessEngine@1a11e02
Jun 13, 2015 6:50:19 PM org.jitsi.util.Logger warn
WARNING: javax.media.ResourceUnavailableEvent[source=com.sun.media.processor.unknown.Handler@16b76da,message=Failed to realize: cannot handle the customized options set on the Processor.
Check the logs for full details.]
Jun 13, 2015 6:50:19 PM org.jitsi.util.Logger warn
WARNING: ControllerErrorEvent: javax.media.ResourceUnavailableEvent[source=com.sun.media.processor.unknown.Handler@16b76da,message=Failed to realize: cannot handle the customized options set on the Processor.
Check the logs for full details.]
Jun 13, 2015 6:50:19 PM org.jitsi.util.Logger warn
WARNING: javax.media.ControllerClosedEvent[source=com.sun.media.processor.unknown.Handler@16b76da]
Jun 13, 2015 6:50:19 PM org.jitsi.util.Logger info
INFO: video codec/freq: H264/90000 Hz
Jun 13, 2015 6:50:19 PM org.jitsi.util.Logger info
INFO: video remote IP/port: 192.168.10.100/15000
Jun 13, 2015 6:50:19 PM net.sf.fmj.media.Log info
INFO: Starting RTPSourceStream.

In thread Stun4J Message Processor: Core.VideoStreamer.startVideoStream(VideoStreamer.java:205)
videoMediaStream_ started.

In thread Stun4J Message Processor: Core.VideoStreamer.startVideoStream(VideoStreamer.java:209)
videoDevice name2: Desktop Streaming 0

In thread Stun4J Message Processor: Core.VideoStreamer.startVideoStream(VideoStreamer.java:210)
videoDevice toString2: Desktop Streaming 0 : imgstreaming:0
AVFRAME, 1600x1200, class org.jitsi.impl.neomedia.codec.video.AVFrame, pixFmt 27
RGB, 1600x1200, 32-bit, Masks=2:3:4, PixelStride=4, LineStride=6400

In thread Stun4J Message Processor: Core.VideoStreamer.startVideoStream(VideoStreamer.java:211)
Frame rate: -1

In thread Stun4J Message Processor: Core.VideoStreamer.startVideoStream(VideoStreamer.java:212)
Video bitrate: 128

In thread Stun4J Message Processor: Core.VideoStreamer.startVideoStream(VideoStreamer.java:213)
RTP Pacing Threshold: 256

Second time:

In thread Stun4J Message Processor: Core.VideoStreamer.startVideoStream(VideoStreamer.java:141)
videoDevice toString: Desktop Streaming 0 : imgstreaming:0
AVFRAME, 1600x1200, class org.jitsi.impl.neomedia.codec.video.AVFrame, pixFmt 27
RGB, 1600x1200, 32-bit, Masks=2:3:4, PixelStride=4, LineStride=6400

In thread Stun4J Message Processor: Core.VideoStreamer.startVideoStream(VideoStreamer.java:142)
Frame rate: -1

In thread Stun4J Message Processor: Core.VideoStreamer.startVideoStream(VideoStreamer.java:143)
Video bitrate: 128

In thread Stun4J Message Processor: Core.VideoStreamer.startVideoStream(VideoStreamer.java:144)
RTP Pacing Threshold: 256

In thread Stun4J Message Processor: Core.VideoStreamer.startVideoStream(VideoStreamer.java:145)
Video size: java.awt.Dimension[width=640,height=480]

In thread Stun4J Message Processor: Core.VideoStreamer.getH264(VideoStreamer.java:271)
Number of video formats: 2

In thread Stun4J Message Processor: Core.VideoStreamer.getH264(VideoStreamer.java:275)
H264 90000.0
Jun 14, 2015 2:50:44 PM org.jitsi.util.Logger info
INFO: video send FPS: 10.0
Jun 14, 2015 2:50:44 PM net.sf.fmj.media.Log info
INFO: Resetting queue, last seq added: 9223372036854775806, current seq: 59795
Jun 14, 2015 2:50:44 PM net.sf.fmj.media.Log info
INFO: Starting RTPSourceStream.
Jun 14, 2015 2:50:45 PM net.sf.fmj.media.Log error
SEVERE: Failed to realize: net.sf.fmj.media.ProcessEngine@1f148fa
Jun 14, 2015 2:50:45 PM net.sf.fmj.media.Log error
SEVERE: Cannot build a flow graph with the customized options:
Jun 14, 2015 2:50:45 PM net.sf.fmj.media.Log error
SEVERE: Unable to transcode format: AVFRAME, 1600x1200, class org.jitsi.impl.neomedia.codec.video.AVFrame, pixFmt 27
Jun 14, 2015 2:50:45 PM net.sf.fmj.media.Log error
SEVERE: to: H264/RTP, fmtps={packetization-mode=1}
Jun 14, 2015 2:50:45 PM net.sf.fmj.media.Log error
SEVERE: outputting to: raw.rtp
Jun 14, 2015 2:50:45 PM net.sf.fmj.media.Log error
SEVERE: Unable to add customed codecs:
Jun 14, 2015 2:50:45 PM net.sf.fmj.media.Log error
SEVERE: org.jitsi.impl.neomedia.codec.video.h264.JNIEncoder@11d02d4
Jun 14, 2015 2:50:45 PM org.jitsi.util.Logger info
INFO: Stop stream
Jun 14, 2015 2:50:45 PM net.sf.fmj.media.Log error
SEVERE: Error: Unable to realize net.sf.fmj.media.ProcessEngine@1f148fa
Jun 14, 2015 2:50:45 PM org.jitsi.util.Logger warn
WARNING: javax.media.ResourceUnavailableEvent[source=com.sun.media.processor.unknown.Handler@92014,message=Failed to realize: cannot handle the customized options set on the Processor.
Check the logs for full details.]
Jun 14, 2015 2:50:45 PM org.jitsi.util.Logger warn
WARNING: ControllerErrorEvent: javax.media.ResourceUnavailableEvent[source=com.sun.media.processor.unknown.Handler@92014,message=Failed to realize: cannot handle the customized options set on the Processor.
Check the logs for full details.]
Jun 14, 2015 2:50:45 PM org.jitsi.util.Logger warn
WARNING: javax.media.ControllerClosedEvent[source=com.sun.media.processor.unknown.Handler@92014]
Jun 14, 2015 2:50:45 PM org.jitsi.util.Logger info
INFO: video codec/freq: H264/90000 Hz
Jun 14, 2015 2:50:45 PM org.jitsi.util.Logger info
INFO: video remote IP/port: 192.168.10.100/15000
Jun 14, 2015 2:50:45 PM net.sf.fmj.media.Log info
INFO: Starting RTPSourceStream.

In thread Stun4J Message Processor: Core.VideoStreamer.startVideoStream(VideoStreamer.java:205)
videoMediaStream_ started.

In thread Stun4J Message Processor: Core.VideoStreamer.startVideoStream(VideoStreamer.java:209)
videoDevice name2: Desktop Streaming 0

In thread Stun4J Message Processor: Core.VideoStreamer.startVideoStream(VideoStreamer.java:210)
videoDevice toString2: Desktop Streaming 0 : imgstreaming:0
AVFRAME, 1600x1200, class org.jitsi.impl.neomedia.codec.video.AVFrame, pixFmt 27
RGB, 1600x1200, 32-bit, Masks=2:3:4, PixelStride=4, LineStride=6400

ScreenCapture.grabScreen fills byte array with all -1

When i use the grabScreen method it fills my byte array with -1

What am i doing wrong?

                    Rectangle rect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
                    int width = rect.width;
                    int height = rect.height;
                    int size = width * height * 4;
                    while (true)
                    {
                        byte[] bytes = new byte[size];
                        boolean success = ScreenCapture.grabScreen(displayIndex, 0, 0, width, height, bytes);
                        // do something with the byte array
                    }

UnknownHostException in FMJ

The machine has two ethernet interfaces (not sure does this matter) and after adding [a] line [for meet] in /etc/hosts the problem was fixed:
[...]
Before that the [Jitsi Meet] conferences does not succeed, no media is transmitted. And meet is the hostname of the machine.

07:57:37.373 SEVERE: [22] util.UtilActivator.uncaughtException().108
An uncaught exception occurred in
thread=Thread[Channel-pool-4-thread-1,5,main] and message was:
java.net.UnknownHostException: meet: meet
java.lang.RuntimeException: java.net.UnknownHostException: meet: meet
at javax.media.rtp.rtcp.SourceDescription.generateCNAME(Unknown Source)
at net.sf.fmj.media.rtp.RTPSessionMgr.initialize(Unknown Source)
at org.jitsi.impl.neomedia.rtp.translator.RTPTranslatorImpl.initialize(RTPTranslatorImpl.java:742)
at org.jitsi.impl.neomedia.rtp.StreamRTPManager.initialize(StreamRTPManager.java:216)
at org.jitsi.impl.neomedia.MediaStreamImpl.getRTPManager(MediaStreamImpl.java:1363)
at org.jitsi.impl.neomedia.MediaStreamImpl.createSendStreams(MediaStreamImpl.java:687)
at org.jitsi.impl.neomedia.MediaStreamImpl.startSendStreams(MediaStreamImpl.java:2108)
at org.jitsi.impl.neomedia.MediaStreamImpl.start(MediaStreamImpl.java:1997)
at org.jitsi.impl.neomedia.MediaStreamImpl.start(MediaStreamImpl.java:1960)
at org.jitsi.videobridge.RtpChannel.maybeStartStream(RtpChannel.java:988)
at org.jitsi.videobridge.Channel.runInWrapupConnectivityEstablishmentCommand(Channel.java:642)
at org.jitsi.videobridge.Channel.access$000(Channel.java:30)
at org.jitsi.videobridge.Channel$WrapupConnectivityEstablishmentCommand.run(Channel.java:960)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:701)
Caused by: java.net.UnknownHostException: meet: meet
at java.net.InetAddress.getLocalHost(InetAddress.java:1461)
... 16 more

07:57:38.182 INFO: [33] org.jitsi.impl.neomedia.MediaStreamImpl.info()
audio codec/freq: null/null Hz
07:57:38.182 INFO: [33] org.jitsi.impl.neomedia.MediaStreamImpl.info()
audio remote IP/port: 109.120.223.236/58995
07:57:38.183 SEVERE: [33] util.UtilActivator.uncaughtException().108
An uncaught exception occurred in
thread=Thread[Channel-pool-4-thread-5,5,main] and message was: null
java.lang.NullPointerException
at net.sf.fmj.media.rtp.RTPSessionMgr.getAllParticipants(Unknown Source)
at net.sf.fmj.media.rtp.RTPSessionMgr.getReceiveStreams(Unknown Source)
at org.jitsi.impl.neomedia.rtp.translator.RTPTranslatorImpl.getReceiveStreams(RTPTranslatorImpl.java:601)
at org.jitsi.impl.neomedia.rtp.StreamRTPManager.getReceiveStreams(StreamRTPManager.java:199)
at org.jitsi.impl.neomedia.MediaStreamImpl.getReceiveStreams(MediaStreamImpl.java:2667)
at org.jitsi.impl.neomedia.MediaStreamImpl.startReceiveStreams(MediaStreamImpl.java:2071)
at org.jitsi.impl.neomedia.MediaStreamImpl.start(MediaStreamImpl.java:2033)
at org.jitsi.impl.neomedia.MediaStreamImpl.start(MediaStreamImpl.java:1960)
at org.jitsi.videobridge.RtpChannel.maybeStartStream(RtpChannel.java:988)
at org.jitsi.videobridge.Channel.runInWrapupConnectivityEstablishmentCommand(Channel.java:642)
at org.jitsi.videobridge.Channel.access$000(Channel.java:30)
at org.jitsi.videobridge.Channel$WrapupConnectivityEstablishmentCommand.run(Channel.java:960)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:701)

MediaStream.getRemoteDataAddress() returns null after MediaStream.start()

First posted to the jitsi-dev list: http://lists.jitsi.org/pipermail/dev/2014-September/022078.html

What would cause this to be null after a successful start?

Here are the steps leading up to the method call:

  • get MediaService instance
  • get MediaFormatFactory via MediaService instance
  • get Audio and Video device instances
  • create MediaFormat for audio and video using MediaFormatFactory
  • create SrtpControl via MediaService
  • create MediaStream for audio and video using MediaService with Device
    and SrtpControl parameters
  • add dynamic payload type to MediaStream instances
  • set direction to SENDONLY on MediaStream instances
  • set format on MediaStream instances
  • create a DatagramSocket for both rtp and rtcp
  • create InetSocketAddress for both ports on my public IP
  • create a StreamConnector for both audio and video
  • set StreamConnector on each MediaStream instance using DatagramSocket
    instances
  • create a single MediaStreamTarget using the InetSocketAddress
  • set MediaStreamTarget on both MediaStream instances
  • set names on MediaStream instances ("audio" / "video")
  • start SrtpControl with MediaType.AUDIO
  • start the audio MediaStream instance
  • start the video MediaStream instance

All of these actions complete without an exception and the following is
output into my log:

2014-09-17 16:46:53,176 [pool-9-thread-2] TRACE MyStream - MediaFormats
audio: rtpmap:-1 opus/48000/2
video: rtpmap:-1 VP8/90000
2014-09-17 16:46:53,512 [pool-9-thread-2] TRACE MyStream - Using ports -
rtp/rtcp: [5000, 5001]
2014-09-17 16:46:53,610 [pool-9-thread-2] TRACE MyStream - Using IP:
xx.xx.xx.xx
2014-09-17 16:46:53,625 [pool-9-thread-2] TRACE MyStream - Addresses - rtp:
/xx.xx.xx.xx:5000 rtcp: /xx.xx.xx.xx:5001
2014-09-17 16:46:53,626 [pool-9-thread-2] TRACE MyStream - Stream target:
MediaStreamTarget with dataAddress /xx.xx.xx.xx:5000 and controlAddress
/xx.xx.xx.xx:5001
2014-09-17 16:46:53,639 [pool-9-thread-2] TRACE MyStream - Starting audio
stream
2014-09-17 16:46:54,241 [pool-9-thread-2] INFO
o.j.impl.neomedia.MediaStreamImpl - audio codec/freq: opus/48000 Hz
2014-09-17 16:46:54,242 [pool-9-thread-2] INFO
o.j.impl.neomedia.MediaStreamImpl - audio remote IP/port: xx.xx.xx.xx/5000
2014-09-17 16:46:54,242 [pool-9-thread-2] TRACE MyStream - Starting video
stream
2014-09-17 16:46:56,786 [RTP Forwarder:
org.jitsi.impl.neomedia.MediaStreamImpl$2 at 23d6dee] ERROR
net.sf.fmj.media.Log - No format has been registered for RTP payload type
111
2014-09-17 16:46:56,796 [pool-9-thread-2] INFO
o.j.i.n.d.VideoMediaDeviceSession - video send resolution: 320x240
2014-09-17 16:46:56,797 [pool-9-thread-2] INFO
o.j.i.n.d.VideoMediaDeviceSession - video send FPS: default(no restriction)
2014-09-17 16:46:56,945 [pool-9-thread-2] INFO
o.j.impl.neomedia.MediaStreamImpl - video codec/freq: VP8/90000 Hz
2014-09-17 16:46:56,945 [pool-9-thread-2] INFO
o.j.impl.neomedia.MediaStreamImpl - video remote IP/port: xx.xx.xx.xx/5000
2014-09-17 16:46:56,986 [Loop thread:
net.sf.fmj.media.parser.RawPullBufferParser$FrameTrack at 686ab109] INFO
o.j.i.n.codec.video.vp8.VPXEncoder - Setting new width/height: 320/240
2014-09-17 16:46:57,015 [RTP Forwarder:
org.jitsi.impl.neomedia.MediaStreamImpl$2 at 2c5993e3] ERROR
net.sf.fmj.media.Log - No format has been registered for RTP payload type
100

After all this completes, I call
InetSocketAddress audioAddr = audioMediaStream.getRemoteDataAddress();
and it always returns null; same for my video MediaStream.

If a sample class is required, I can create one.

Build Failure

The latest version wont build in Maven.

[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /home/mondain/workspace/github/libjitsi/src/org/jitsi/impl/neomedia/transform/rtcp/StatisticsEngine.java:[603,50] error: cannot find symbol

libjitsi - selection of audio device in Linux (pulseaudio) doesn't work

As for Rolf Hamburg, I have the same issue on Ubuntu 14.04 LTS

Hi,

We are using libjitsi (569) to develop a java8-scala-application with a VoIP-component for Linux (pulseaudio).
Our problem is the correct selection of the audio-device.

At startup we show a selection-window of the active devices (capDevicesList), which we get from:
deviceConfiguration = mediaService.getDeviceConfiguration()
capDevicesList = deviceConfiguration.getAudioSystem.getDevices(AudioSystem.DataFlow.CAPTURE)

The user selects a device (selectedDevice) from capDevicesList, which we set into the AudioSystem:
deviceConfiguration.getAudioSystem.setDevice(AudioSystem.DataFlow.CAPTURE, selectedDevice, true)

The MediaDevice is build like this:
mediaDevice = new AudioMediaDeviceImpl(selectedDevice)

Then we create a MediaStream:
mediaStream = mediaService.createMediaStream(mediaDevice)

If mediaDevice is the only device connected to the computer, everything works fine. But if there's
another device connected, the mediastream doesn't use necessarily mediaDevice. The above procedure of
selecting the device doesn't has any influence on which device will be used.
What we are doing wrong?

Thanks,
Rolf

Show mouse cursor when capturing screen

Hello,

the screen capturing feature currently does not capture the mouse cursor. At least in the X11 part, XGetImage gets the image without the cursor. A cursor could be got with Xfixes XFixesGetCursorImage and overlaid on the resulting image. I don't know how could it be accomplished in other systems.

JVM crashes with Ubuntu 14.04 webcam streaming in both Jitsi and Libjitsi, Java 7 and Java 8.

JVM crashes with Ubuntu 14.04 webcam streaming in both Jitsi and Libjitsi, Java 7 and Java 8. The following error logs print from the console:

...
# Problematic frame:
# C  [libjnffmpeg.so+0x1129b6]  ff_mjpeg_decode_sos+0x19b6
...

Note that I am getting this EXACT SAME "A fatal error has been detected
by the Java Runtime Environment:" when I try to use Jitsi
(jitsi_2.8.5426-1_amd64.deb) from my laptop. I made a post about this Jitsi
Java error as a bug report to the devs mailing list. When I try to run
Jitsi from the terminal, I get the following printout from the terminal:

johnmichaelreed2 at JohnReedsGalago:~$ jitsi
...
# Problematic frame:
# C  [libjnffmpeg.so+0x1129b6]  ff_mjpeg_decode_sos+0x19b6
#
...

All I did was typed in "jitsi" and then went to the top bar and clicked:
Tools > Options > Video (I can see myself in the Devices webcam tab -
webcam recording light is on) > Encoding [crash]

As soon as I click on "Video > Encoding", "Video > More settings", or
"Security", Jitsi crashes in a manner similar to the way AVTransmit2
crashes on my computer.

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007f68bb1949b6, pid=12488, tid=140087418550016
#
# JRE version: Java(TM) SE Runtime Environment (7.0_79-b15) (build 1.7.0_79-b15)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (24.79-b02 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C  [libjnffmpeg.so+0x1129b6]  ff_mjpeg_decode_sos+0x19b6
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

---------------  T H R E A D  ---------------

Current thread (0x00007f6808001000):  JavaThread "Loop thread: net.sf.fmj.media.parser.RawPullBufferParser$FrameTrack@5182a932" [_thread_in_native, id=12651, stack(0x00007f68a4c1f000,0x00007f68a4d20000)]

siginfo:si_signo=SIGSEGV: si_errno=0, si_code=1 (SEGV_MAPERR), si_addr=0x00000000000004d8



Stack: [0x00007f68a4c1f000,0x00007f68a4d20000],  sp=0x00007f68a4d1df70,  free space=1019k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [libjnffmpeg.so+0x1129b6]  ff_mjpeg_decode_sos+0x19b6

[error occurred during error reporting (printing native stack), id 0xb]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  org.jitsi.impl.neomedia.codec.FFmpeg.avcodec_decode_video(JJJI)I+0
j  org.jitsi.impl.neomedia.jmfext.media.protocol.video4linux2.Video4Linux2Stream.doRead(Ljavax/media/Buffer;)V+263
j  org.jitsi.impl.neomedia.jmfext.media.protocol.AbstractVideoPullBufferStream.read(Ljavax/media/Buffer;)V+133
j  org.jitsi.impl.neomedia.protocol.RewritablePullBufferDataSource$MutePullBufferStream.read(Ljavax/media/Buffer;)V+8
j  net.sf.fmj.media.protocol.CloneableSourceStreamAdapter.copyAndRead(Ljavax/media/Buffer;)V+18
j  net.sf.fmj.media.protocol.CloneableSourceStreamAdapter$PullBufferStreamAdapter.read(Ljavax/media/Buffer;)V+5
j  net.sf.fmj.media.parser.RawPullBufferParser$FrameTrack.readFrame(Ljavax/media/Buffer;)V+21
j  net.sf.fmj.media.SourceThread.process()Z+146
j  net.sf.fmj.media.util.LoopThread.run()V+15
v  ~StubRoutines::call_stub

Maven resolve issue with jitsi-universe

I assumed the Maven build was ready for prime-time, however I see this error when I attempt to build master.

[ERROR]   The project org.jitsi:libjitsi:1.0-SNAPSHOT (/home/mondain/workspace/github/libjitsi/pom.xml) has 1 error
[ERROR]     Non-resolvable parent POM: Could not find artifact org.jitsi:jitsi-universe:pom:1.0-SNAPSHOT in maven2-repository.dev.java.net (http://download.java.net/maven/2) and 'parent.relativePath' points at wrong local POM @ line 7, column 11 -> [Help 2]

C# Implementation of Libjitsi: Capturing Desktop using WebRTC

Hello There, I just started doing research on Jitsi- VideoBridge and I am developing a desktop sharing application( Live streaming Audio & Video) which can run on all the platforms natively using WebRTC. Jitsi is all written in JAVA and can someone share/guide me C# implementation of Jitsi. I would also like to know what Frames/sec does jitsi offer for 1080p resolution. Let me know any other info is required.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.