[jitsi-users] libjitsi - Problems with libjawtrenderer when running AVTransmit2 & AVReceive2 examples under MacOS 10.7.5


#1

Hi all !

In the last few days I tried to launch the AVTransmit2 and AVReceive2 examples using the last versions of libjitsi (135, 136, 137) under Mac OS 10.7.5.

However, besides a couple of INFO failures about RseourceManagement and PacketLogging services (which do not appear to be serious, given the message "will continue without it"), I got a GRAVE error about libjawtrenderer.

It seems like a kind of linking problem. For this, I also tried to rebuild the libjawtrenderer library starting from the latest version of the source code available and I got my new .jnilib. When using this newly generate file, the examples properly start, but no window is created (though audio is properly exchanged between the two peers).

I am pasting an excerpt of the log below.

Any help would be greatly appreciated. Thanks in advance, Fabrizio

INFO: Failed to initialize service implementation org.jitsi.impl.resources.ResourceManagementServiceImpl. Will continue without it.
java.lang.ClassNotFoundException: org.jitsi.impl.resources.ResourceManagementServiceImpl

INFO: Failed to initialize service implementation org.jitsi.impl.packetlogging.PacketLoggingServiceImpl. Will continue without it.
java.lang.ClassNotFoundException: org.jitsi.impl.packetlogging.PacketLoggingServiceImpl

GRAVE: Failed to register custom Renderer org.jitsi.impl.neomedia.jmfext.media.renderer.video.JAWTRenderer with JMF.
java.lang.UnsatisfiedLinkError: /Users/fabrizio/Desktop/directa/aaa/libjnawtrenderer.jnilib: Symbol not found: _OBJC_METACLASS_$_NSObject Referenced from: /Users/fabrizio/Desktop/directa/aaa/libjnawtrenderer.jnilib Expected in: /usr/lib/libobjc.A.dylib in /Users/fabrizio/Desktop/directa/aaa/libjnawtrenderer.jnilib
  at java.lang.ClassLoader$NativeLibrary.load(Native Method)
  at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1827)
  at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1742)
  at java.lang.Runtime.loadLibrary0(Runtime.java:823)
  at java.lang.System.loadLibrary(System.java:1045)
  at org.jitsi.impl.neomedia.jmfext.media.renderer.video.JAWTRenderer.<clinit>(JAWTRenderer.java:72)
  at java.lang.Class.forName0(Native Method)
  at java.lang.Class.forName(Class.java:169)
  at org.jitsi.impl.neomedia.device.DeviceConfiguration.registerCustomRenderers(DeviceConfiguration.java:797)
  at org.jitsi.impl.neomedia.device.DeviceConfiguration.<init>(DeviceConfiguration.java:270)
  at org.jitsi.impl.neomedia.MediaServiceImpl.<init>(MediaServiceImpl.java:122)
  at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
  at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
  at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
  at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
  at java.lang.Class.newInstance0(Class.java:355)
  at java.lang.Class.newInstance(Class.java:308)
  at org.jitsi.impl.libjitsi.LibJitsiImpl.getService(LibJitsiImpl.java:132)
  at org.jitsi.service.libjitsi.LibJitsi.invokeGetServiceOnImpl(LibJitsi.java:163)
  at org.jitsi.service.libjitsi.LibJitsi.getMediaService(LibJitsi.java:115)
  at org.jitsi.examples.AVTransmit2.start(AVTransmit2.java:95)
  at org.jitsi.examples.AVTransmit2.main(AVTransmit2.java:342)


#2

Thank you for the feedback!

INFO: Failed to initialize service implementation
org.jitsi.impl.resources.ResourceManagementServiceImpl. Will continue
without it.
java.lang.ClassNotFoundException:
org.jitsi.impl.resources.ResourceManagementServiceImpl

INFO: Failed to initialize service implementation
org.jitsi.impl.packetlogging.PacketLoggingServiceImpl. Will continue without
it.
java.lang.ClassNotFoundException:
org.jitsi.impl.packetlogging.PacketLoggingServiceImpl

LibJitsi does not implement ResourceManagementService and
PacketLoggingService. Their absence is noted for informational
purposes and the library is prepared to continue successful execution
without them.

GRAVE: Failed to register custom Renderer
org.jitsi.impl.neomedia.jmfext.media.renderer.video.JAWTRenderer with JMF.
java.lang.UnsatisfiedLinkError:
/Users/fabrizio/Desktop/directa/aaa/libjnawtrenderer.jnilib: Symbol not
found: _OBJC_METACLASS_$_NSObject Referenced from:
/Users/fabrizio/Desktop/directa/aaa/libjnawtrenderer.jnilib Expected in:
/usr/lib/libobjc.A.dylib in
/Users/fabrizio/Desktop/directa/aaa/libjnawtrenderer.jnilib

Indeed, this is a linking problem. We will have to rebuild
libjnawtrenderer.jnilib, probably with an earlier version of Xcode or
something of the sort. We'll try to look into it as soon as possible.

···

2013/1/23 Fabrizio Lamberti <fabrizio.lamberti@polito.it>:


#3

Oh, I'm terribly sorry I didn't answer about that in my previous
e-mail. The examples do not display the Components depicting the video
though there is a VideoMediaStream and the very Components are created
(by FMJ). Should you wish to display them in a Window, Jitsi itself
may serve as the definitive reference on the subject.

···

2013/1/23 Fabrizio Lamberti <fabrizio.lamberti@polito.it>:

When using this newly generate
file, the examples properly start, but no window is created (though audio is
properly exchanged between the two peers).


#4

Dear Lyubomir, thanks for your prompt reply.

What is strange is that when I tried to rebuild by linking libraries which are indeed available on my machine, I successfully obtained the new jnilib.

libjitsi seems to "appreciate" the new file, since no error is displayed. But GUI does not come up anyway.

Hope you'll be able to find a solution. I have tried in many ways already with no success...

Fabrizio

···

On Wed, 23 Jan 2013 17:24:59 +0200 Lyubomir Marinov <lyubomir.marinov@jitsi.org> wrote:

2013/1/23 Fabrizio Lamberti <fabrizio.lamberti@polito.it>:

Thank you for the feedback!

INFO: Failed to initialize service implementation
org.jitsi.impl.resources.ResourceManagementServiceImpl. Will continue
without it.
java.lang.ClassNotFoundException:
org.jitsi.impl.resources.ResourceManagementServiceImpl

INFO: Failed to initialize service implementation
org.jitsi.impl.packetlogging.PacketLoggingServiceImpl. Will continue without
it.
java.lang.ClassNotFoundException:
org.jitsi.impl.packetlogging.PacketLoggingServiceImpl

LibJitsi does not implement ResourceManagementService and
PacketLoggingService. Their absence is noted for informational
purposes and the library is prepared to continue successful execution
without them.

GRAVE: Failed to register custom Renderer
org.jitsi.impl.neomedia.jmfext.media.renderer.video.JAWTRenderer with JMF.
java.lang.UnsatisfiedLinkError:
/Users/fabrizio/Desktop/directa/aaa/libjnawtrenderer.jnilib: Symbol not
found: _OBJC_METACLASS_$_NSObject Referenced from:
/Users/fabrizio/Desktop/directa/aaa/libjnawtrenderer.jnilib Expected in:
/usr/lib/libobjc.A.dylib in
/Users/fabrizio/Desktop/directa/aaa/libjnawtrenderer.jnilib

Indeed, this is a linking problem. We will have to rebuild
libjnawtrenderer.jnilib, probably with an earlier version of Xcode or
something of the sort. We'll try to look into it as soon as possible.


#5

That's an interesting point. I will try to create my application by adding the graphics Component instantiated by FMJ to a window as done in the Jitsi main app. Thanks again, Fabrizio

···

On Wed, 23 Jan 2013 20:40:41 +0200 Lyubomir Marinov <lyubomir.marinov@jitsi.org> wrote:

2013/1/23 Fabrizio Lamberti <fabrizio.lamberti@polito.it>:

When using this newly generate
file, the examples properly start, but no window is created (though audio is
properly exchanged between the two peers).

Oh, I'm terribly sorry I didn't answer about that in my previous
e-mail. The examples do not display the Components depicting the video
though there is a VideoMediaStream and the very Components are created
(by FMJ). Should you wish to display them in a Window, Jitsi itself
may serve as the definitive reference on the subject.