[jitsi-dev] problem about video telephony


#1

Hi, I just downloaded jitsi's source and disposed it on the eclipse.And
I've changed some source.While i ran the video telephony,it not functioned
normally.Both the Remote Client only could see the local video.And the
eclipse said the error is in the jmf.log.

Here is the error:
javax.media.NotRealizedError: Cannot get visual component on an unrealized
player
at com.sun.media.BasicPlayer.getVisualComponent(BasicPlayer.java:491)
at com.sun.media.MediaProcessor.getVisualComponent(MediaProcessor.java:50)
at
net.java.sip.communicator.impl.neomedia.device.VideoMediaDeviceSession.getVisualComponent(VideoMediaDeviceSession.java:762)
at
net.java.sip.communicator.impl.neomedia.device.VideoMediaDeviceSession.getVisualComponent(VideoMediaDeviceSession.java:739)
at
net.java.sip.communicator.impl.neomedia.VideoMediaStreamImpl.getVisualComponent(VideoMediaStreamImpl.java:533)
at
net.java.sip.communicator.service.protocol.media.CallPeerMediaHandler.getVisualComponent(CallPeerMediaHandler.java:1077)
at
net.java.sip.communicator.service.protocol.media.AbstractOperationSetVideoTelephony.getVisualComponent(AbstractOperationSetVideoTelephony.java:136)
at
net.java.sip.communicator.impl.gui.main.call.OneToOneCallPeerPanel.handleVideoEvent(OneToOneCallPeerPanel.java:969)
at
net.java.sip.communicator.impl.gui.main.call.OneToOneCallPeerPanel.handleVideoEvent(OneToOneCallPeerPanel.java:857)
at
net.java.sip.communicator.impl.gui.main.call.OneToOneCallPeerPanel.access$3(OneToOneCallPeerPanel.java:784)
at
net.java.sip.communicator.impl.gui.main.call.OneToOneCallPeerPanel$5.run(OneToOneCallPeerPanel.java:841)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Clearly, I must missing something to realize player.Any tips would be
greatly appreciated.

Regards,
Jack.


#2

I encountered the same issue working with a modified version of jitsi. If I terminated a video call before starting the video stream (ie. calling from a sip-phone on Android, but not starting the video capture), I got this exception (javax.media.NotRealizedError: Cannot get visual component on an unrealized player). Afterward, Jitsi became quite irresponsive, preventing following calls to complete properly.

I "solved" this issue in "CallPeerMediaHandler:setVideoStream" by testing if the videostream is first started before trying to close it. But I have not verified if that introduced leaks or anything yet.

Francois Fortin, Architecte de Systèmes | Solutions Architect

···

De : Jack Tycho [mailto:fmoonhigh@gmail.com]
Envoyé : 20 décembre 2011 21:11
À : dev@jitsi.java.net
Objet : [jitsi-dev] problem about video telephony

Hi, I just downloaded jitsi's source and disposed it on the eclipse.And I've changed some source.While i ran the video telephony,it not functioned normally.Both the Remote Client only could see the local video.And the eclipse said the error is in the jmf.log.

Here is the error:
javax.media.NotRealizedError: Cannot get visual component on an unrealized player
at com.sun.media.BasicPlayer.getVisualComponent(BasicPlayer.java:491)
at com.sun.media.MediaProcessor.getVisualComponent(MediaProcessor.java:50)
at net.java.sip.communicator.impl.neomedia.device.VideoMediaDeviceSession.getVisualComponent(VideoMediaDeviceSession.java:762)
at net.java.sip.communicator.impl.neomedia.device.VideoMediaDeviceSession.getVisualComponent(VideoMediaDeviceSession.java:739)
at net.java.sip.communicator.impl.neomedia.VideoMediaStreamImpl.getVisualComponent(VideoMediaStreamImpl.java:533)
at net.java.sip.communicator.service.protocol.media.CallPeerMediaHandler.getVisualComponent(CallPeerMediaHandler.java:1077)
at net.java.sip.communicator.service.protocol.media.AbstractOperationSetVideoTelephony.getVisualComponent(AbstractOperationSetVideoTelephony.java:136)
at net.java.sip.communicator.impl.gui.main.call.OneToOneCallPeerPanel.handleVideoEvent(OneToOneCallPeerPanel.java:969)
at net.java.sip.communicator.impl.gui.main.call.OneToOneCallPeerPanel.handleVideoEvent(OneToOneCallPeerPanel.java:857)
at net.java.sip.communicator.impl.gui.main.call.OneToOneCallPeerPanel.access$3(OneToOneCallPeerPanel.java:784)
at net.java.sip.communicator.impl.gui.main.call.OneToOneCallPeerPanel$5.run(OneToOneCallPeerPanel.java:841)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Clearly, I must missing something to realize player.Any tips would be greatly appreciated.

Regards,
Jack.


#3

Emil,

First,thanks for your responding.
Before changing,jitsi worked well on my machine.In fact, I want to make
jitsi more powerful.I add the email and SMS functions.And the new functions
works well.However, the video telephony doesn't function normally when i
prepare to add more functions.
Pressing the video button, i could see my video, and the remote client
could see my video too, then the remote one press the video button so
that we could see our both video. However, when the remote client press the
video button, we only see our local video,our remote video both
disappear.
Eclipse doesn't print out the exception,just says the error in the jmf.log.
I thought i might delete some src by my carelessness.
I print out the getVisualComponent() method in the
net.java.sip.communicator.impl.neomedia.device.VideoMediaDeviceSession.getVisualComponent(VideoMediaDeviceSession.java:762)
which get the visual component from the jmf.jar.
It calls the method 3 times when i click the video button.Normally,eclipse
would print out
"com.sun.media.renderer.video.HeavyComponent[canvas0,38,0,325x266]" in the
third time.
But the eclipse print out
"com.sun.media.renderer.video.HeavyComponent[canvas0,38,0,325x266,invalid]"
in the third time when the remote client press the video button. That's
what make me confused.

Any tips would be greatly appreciated.
Regard,

Jack.

在 2011年12月21日 下午12:32,Emil Ivov <emcho@jitsi.org>写道:

···

Jack,

Do you also get the error without your changes?

Emil

--sent from my mobile

On 21 déc. 2011, at 04:11, Jack Tycho <fmoonhigh@gmail.com> wrote:

> Hi, I just downloaded jitsi's source and disposed it on the eclipse.And
I've changed some source.While i ran the video telephony,it not functioned
normally.Both the Remote Client only could see the local video.And the
eclipse said the error is in the jmf.log.
>
> Here is the error:
> javax.media.NotRealizedError: Cannot get visual component on an
unrealized player
> at
com.sun.media.BasicPlayer.getVisualComponent(BasicPlayer.java:491)
> at
com.sun.media.MediaProcessor.getVisualComponent(MediaProcessor.java:50)
> at
net.java.sip.communicator.impl.neomedia.device.VideoMediaDeviceSession.getVisualComponent(VideoMediaDeviceSession.java:762)
> at
net.java.sip.communicator.impl.neomedia.device.VideoMediaDeviceSession.getVisualComponent(VideoMediaDeviceSession.java:739)
> at
net.java.sip.communicator.impl.neomedia.VideoMediaStreamImpl.getVisualComponent(VideoMediaStreamImpl.java:533)
> at
net.java.sip.communicator.service.protocol.media.CallPeerMediaHandler.getVisualComponent(CallPeerMediaHandler.java:1077)
> at
net.java.sip.communicator.service.protocol.media.AbstractOperationSetVideoTelephony.getVisualComponent(AbstractOperationSetVideoTelephony.java:136)
> at
net.java.sip.communicator.impl.gui.main.call.OneToOneCallPeerPanel.handleVideoEvent(OneToOneCallPeerPanel.java:969)
> at
net.java.sip.communicator.impl.gui.main.call.OneToOneCallPeerPanel.handleVideoEvent(OneToOneCallPeerPanel.java:857)
> at
net.java.sip.communicator.impl.gui.main.call.OneToOneCallPeerPanel.access$3(OneToOneCallPeerPanel.java:784)
> at
net.java.sip.communicator.impl.gui.main.call.OneToOneCallPeerPanel$5.run(OneToOneCallPeerPanel.java:841)
> at
java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
> at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
> at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
> at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
> at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
> at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
> at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
> at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
>
> Clearly, I must missing something to realize player.Any tips would be
greatly appreciated.
>
> Regards,
> Jack.