[jitsi-dev] Opus: class not found on Linux-x64.


#1

Hello,

I would like to try the brand new Opus codec. But unfortunately,
I have got a "NoClassDefFoundError" when receiving a call on Linux (x64) with Opus enabled (with svn revision #9866).

Here is the following exception stack trace:

[java] 17:46:57.033 SEVERE: util.UtilActivator.uncaughtException().96 An uncaught exception occurred in thread=Thread[FMJ Thread: net.sf.fmj.media.ProcessEngine@5677da01[ net.sf.fmj.media.ProcessEngine@5677da01 ] ( realizeThread),9,system] and message was: Could not initialize class org.jitsi.impl.neomedia.codec.audio.opus.Opus
      [java] java.lang.NoClassDefFoundError: Could not initialize class org.jitsi.impl.neomedia.codec.audio.opus.Opus
      [java] at org.jitsi.impl.neomedia.codec.audio.opus.JNIEncoder.doOpen(Unknown Source)
      [java] at org.jitsi.impl.neomedia.codec.AbstractCodecExt.open(Unknown Source)
      [java] at net.sf.fmj.media.BasicFilterModule.doRealize(Unknown Source)
      [java] at net.sf.fmj.media.PlaybackEngine.buildTrackFromGraph(Unknown Source)
      [java] at net.sf.fmj.media.ProcessEngine$ProcGraphBuilder.buildTrackFromGraph(Unknown Source)
      [java] at net.sf.fmj.media.ProcessEngine$ProcGraphBuilder.buildCustomGraph(Unknown Source)
      [java] at net.sf.fmj.media.ProcessEngine$ProcGraphBuilder.buildGraph(Unknown Source)
      [java] at net.sf.fmj.media.ProcessEngine$ProcTControl.buildTrack(Unknown Source)
      [java] at net.sf.fmj.media.PlaybackEngine.doRealize1(Unknown Source)
      [java] at net.sf.fmj.media.ProcessEngine.doRealize(Unknown Source)
      [java] at net.sf.fmj.media.RealizeWorkThread.process(Unknown Source)
      [java] at net.sf.fmj.media.StateTransitionWorkThread.run(Unknown Sourc

Best regards,
Vincent

···

--
Vincent Lucas, Ph.D. Jitsi developer
chenzo@jitsi.org http://jitsi.org


#2

Hello,

More debug about this issue:

1) There is no check is libopus0 is installed (neither for the svn version, nor for the .deb package).

2) Once this package is installed, the error message changes to:

      [java] 08:54:02.951 SEVERE: util.UtilActivator.uncaughtException().99 An uncaught exception occurred in thread=Thread[FMJ Thread: net.sf.fmj.media.ProcessEngine@41dc79ab[ net.sf.fmj.media.ProcessEngine@41dc79ab ] ( realizeThread),9,system] and message was: /home/lucas/softwares/clean_jitsi/trunk/lib/native/linux-64/libjnopus.so: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by /home/lucas/softwares/clean_jitsi/trunk/lib/native/linux-64/libjnopus.so)
      [java] java.lang.UnsatisfiedLinkError: /home/lucas/softwares/clean_jitsi/trunk/lib/native/linux-64/libjnopus.so: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by /home/lucas/softwares/clean_jitsi/trunk/lib/native/linux-64/libjnopus.so)

Indeed, the check for libc is based on version 2.14 and my debian (unstable) only provide version 2.13.

3) After rebuilding from scratch the libjnopus.so, then the error message changes to:

      [java] 09:18:12.509 SEVERE: util.UtilActivator.uncaughtException().99 An uncaught exception occurred in thread=Thread[FMJ Thread: net.sf.fmj.media.ProcessEngine@2ed53d82[ net.sf.fmj.media.ProcessEngine@2ed53d82 ] ( realizeThread),9,system] and message was: /home/lucas/softwares/clean_jitsi/trunk/lib/native/linux-64/libjnopus.so: /home/lucas/softwares/clean_jitsi/trunk/lib/native/linux-64/libjnopus.so: only ET_DYN and ET_EXEC can be loaded
      [java] java.lang.UnsatisfiedLinkError: /home/lucas/softwares/clean_jitsi/trunk/lib/native/linux-64/libjnopus.so: /home/lucas/softwares/clean_jitsi/trunk/lib/native/linux-64/libjnopus.so: only ET_DYN and ET_EXEC can be loaded

Regards,
Vincent

···

On 09/21/2012 06:35 PM, Vincent Lucas wrote:

Hello,

I would like to try the brand new Opus codec. But unfortunately,
I have got a "NoClassDefFoundError" when receiving a call on Linux (x64)
with Opus enabled (with svn revision #9866).

Here is the following exception stack trace:

[java] 17:46:57.033 SEVERE: util.UtilActivator.uncaughtException().96 An
uncaught exception occurred in thread=Thread[FMJ Thread:
net.sf.fmj.media.ProcessEngine@5677da01[
net.sf.fmj.media.ProcessEngine@5677da01 ] ( realizeThread),9,system] and
message was: Could not initialize class
org.jitsi.impl.neomedia.codec.audio.opus.Opus
[java] java.lang.NoClassDefFoundError: Could not initialize class
org.jitsi.impl.neomedia.codec.audio.opus.Opus
[java] at
org.jitsi.impl.neomedia.codec.audio.opus.JNIEncoder.doOpen(Unknown Source)
[java] at org.jitsi.impl.neomedia.codec.AbstractCodecExt.open(Unknown
Source)
[java] at net.sf.fmj.media.BasicFilterModule.doRealize(Unknown Source)
[java] at net.sf.fmj.media.PlaybackEngine.buildTrackFromGraph(Unknown
Source)
[java] at
net.sf.fmj.media.ProcessEngine$ProcGraphBuilder.buildTrackFromGraph(Unknown
Source)
[java] at
net.sf.fmj.media.ProcessEngine$ProcGraphBuilder.buildCustomGraph(Unknown
Source)
[java] at
net.sf.fmj.media.ProcessEngine$ProcGraphBuilder.buildGraph(Unknown Source)
[java] at net.sf.fmj.media.ProcessEngine$ProcTControl.buildTrack(Unknown
Source)
[java] at net.sf.fmj.media.PlaybackEngine.doRealize1(Unknown Source)
[java] at net.sf.fmj.media.ProcessEngine.doRealize(Unknown Source)
[java] at net.sf.fmj.media.RealizeWorkThread.process(Unknown Source)
[java] at net.sf.fmj.media.StateTransitionWorkThread.run(Unknown Sourc

Best regards,
Vincent

--
Vincent Lucas, Ph.D. Jitsi developer
chenzo@jitsi.org http://jitsi.org


#3

Hi, Vincent

Thank you for the reports! I'll be looking into this shortly.

Boris


#4

Hi again,

I have updated the binaries in svn with ones built on debian testing, which
has a lower version of glibc. They now run fine on the sandboxes I have
(including debian testing). The 'opus' target in
libjitsi/lib/native/build.xml hasn't been tested, yet.

Boris


#5

Hello Boris,

Thank you very much. It works like a charm.

Cheers,
Vincent

···

On 9/26/12 7:54 PM, Boris Grozev wrote:

Hi again,

I have updated the binaries in svn with ones built on debian testing, which
has a lower version of glibc. They now run fine on the sandboxes I have
(including debian testing). The 'opus' target in
libjitsi/lib/native/build.xml hasn't been tested, yet.

Boris

--
Vincent Lucas, Ph.D. Jitsi developer
chenzo@jitsi.org http://jitsi.org