[jitsi-dev] Jitsi-Hammer POM dependencies (ice4j)


#1

I'm trying to stress-test our jitsi server using jitsi-hammer. The server
does not allow anonymous access, so I am attempting to use a credential
file.

However, there seem to be missing dependencies in the build:

[WARNING] The POM for org.jitsi:ice4j:jar:1.0-20151202.233708-16 is
invalid, transitive dependencies (if any) will not be available, enable
debug logging for more details
[WARNING] The POM for org.jitsi:libjitsi:jar:1.0-20160202.152655-85 is
invalid, transitive dependencies (if any) will not be available, enable
debug logging for more details

Followed by runtime exceptions:

WARNING: Codec org.jitsi.impl.neomedia.codec.audio.mp3.JNIEncoder is NOT
successfully registered
java.lang.UnsatisfiedLinkError: no jnffmpeg in java.library.path
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867)
        at java.lang.Runtime.loadLibrary0(Runtime.java:870)
        at java.lang.System.loadLibrary(System.java:1122)
        at org.jitsi.util.JNIUtils.loadLibrary(JNIUtils.java:41)
        at org.jitsi.impl.neomedia.codec.FFmpeg.<clinit>(FFmpeg.java:228)
        at
org.jitsi.impl.neomedia.codec.audio.FFmpegAudioEncoder.assertFindAVCodec(FFmpegAudioEncoder.java:49)
        at
org.jitsi.impl.neomedia.codec.audio.mp3.JNIEncoder.<clinit>(JNIEncoder.java:64)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:264)
        at
org.jitsi.impl.neomedia.codec.FMJPlugInConfiguration.registerCustomCodecs(FMJPlugInConfiguration.java:234)
        at
org.jitsi.impl.neomedia.MediaServiceImpl.setupFMJ(MediaServiceImpl.java:1618)
        at
org.jitsi.impl.neomedia.MediaServiceImpl.<clinit>(MediaServiceImpl.java:250)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:264)
        at
org.jitsi.impl.libjitsi.LibJitsiImpl$ServiceLock.initializeService(LibJitsiImpl.java:173)
        at
org.jitsi.impl.libjitsi.LibJitsiImpl$ServiceLock.getService(LibJitsiImpl.java:131)
        at
org.jitsi.impl.libjitsi.LibJitsiImpl.getService(LibJitsiImpl.java:91)
        at
org.jitsi.impl.libjitsi.LibJitsiOSGiImpl.getService(LibJitsiOSGiImpl.java:95)
        at
org.jitsi.service.libjitsi.LibJitsi.invokeGetServiceOnImpl(LibJitsi.java:172)
        at
org.jitsi.service.libjitsi.LibJitsi.getMediaService(LibJitsi.java:124)
        at
org.jitsi.hammer.utils.MediaDeviceChooser.<init>(MediaDeviceChooser.java:84)
        at
org.jitsi.hammer.utils.CmdLineArguments.getMediaDeviceChooser(CmdLineArguments.java:357)
        at org.jitsi.hammer.Main.main(Main.java:247)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:293)
        at java.lang.Thread.run(Thread.java:745)

And finally I don't measure enough bandwidth being consumed on either the
jitsi-hammer client or the jitsi server to indicate that a stream has been
established between the two. The stats collected by jitsi-hammer seem to
point to the same:

{
  "max":
  {
      "audio":{ "ssrc":-1 , "DownloadJitterMs":NaN ,
"DownloadPercentLoss":NaN , "DownloadRateKiloBitPerSec":NaN ,
"JitterBufferDelayMs":NaN , "JitterBufferDelayPackets":NaN ,
"NbDiscarded":NaN , "NbDiscardedFull":NaN , "NbDiscardedLate":NaN ,
"NbDiscardedReset":NaN , "NbDiscardedShrink":NaN , "NbFec":NaN ,
"NbPackets":NaN , "NbPacketsLost":NaN , "NbReceivedBytes":NaN ,
"NbSentBytes":NaN , "PacketQueueCountPackets":NaN , "PacketQueueSize":NaN ,
"PercentDiscarded":NaN , "RttMs":NaN , "UploadJitterMs":NaN ,
"UploadPercentLoss":NaN , "UploadRateKiloBitPerSec":NaN },
      "video":{ "ssrc":-1 , "DownloadJitterMs":NaN ,
"DownloadPercentLoss":NaN , "DownloadRateKiloBitPerSec":NaN ,
"JitterBufferDelayMs":NaN , "JitterBufferDelayPackets":NaN ,
"NbDiscarded":NaN , "NbDiscardedFull":NaN , "NbDiscardedLate":NaN ,
"NbDiscardedReset":NaN , "NbDiscardedShrink":NaN , "NbFec":NaN ,
"NbPackets":NaN , "NbPacketsLost":NaN , "NbReceivedBytes":NaN ,
"NbSentBytes":NaN , "PacketQueueCountPackets":NaN , "PacketQueueSize":NaN ,
"PercentDiscarded":NaN , "RttMs":NaN , "UploadJitterMs":NaN ,
"UploadPercentLoss":NaN , "UploadRateKiloBitPerSec":NaN }
  }, ...

Am I correct in thinking this is an ICE error? How do I acquire and install
the missing ICE package dependencies?

Cheers,
Kyle