[jitsi-dev] Jitsi does not handle changes codecs during call


#1

Hi!

Jitsi does not handle changes codecs during call.
changes codecs were without ReInvite
18:46:47.258 SEVERE: [25] util.UtilActivator.uncaughtException().109 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:1290)\
at
org.jitsi.impl.neomedia.conference.AudioMixerPushBufferStream$1.transferData(AudioMixerPushBufferStream.java:253)\
at
org.jitsi.impl.neomedia.protocol.StreamSubstituteBufferTransferHandler.transferData(StreamSubstituteBufferTransferHandler.java:82)\
at
org.jitsi.impl.neomedia.conference.AudioMixingPushBufferStream.setInSamples(AudioMixingPushBufferStream.java:405)\
at
org.jitsi.impl.neomedia.conference.AudioMixerPushBufferStream.setInSamples(AudioMixerPushBufferStream.java:1097)\
at
org.jitsi.impl.neomedia.conference.AudioMixerPushBufferStream.transferData(AudioMixerPushBufferStream.java:1312)\
at
org.jitsi.impl.neomedia.conference.AudioMixerPushBufferStream$1.transferData(AudioMixerPushBufferStream.java:253)\
at
org.jitsi.impl.neomedia.protocol.StreamSubstituteBufferTransferHandler.transferData(StreamSubstituteBufferTransferHandler.java:82)\
at
org.jitsi.impl.neomedia.protocol.PushBufferDataSourceAdapter$PushBufferStreamAdapter.runInStreamReadThread(PushBufferDataSourceAdapter.java:271)\
at
org.jitsi.impl.neomedia.protocol.PushBufferDataSourceAdapter$PushBufferStreamAdapter.access$400(PushBufferDataSourceAdapter.java:35)\
at
org.jitsi.impl.neomedia.protocol.PushBufferDataSourceAdapter$PushBufferStreamAdapter$1.run(PushBufferDataSourceAdapter.java:326)\
Caused by: java.io.IOException\
at
org.jitsi.impl.neomedia.protocol.CachingPushBufferStream.read(CachingPushBufferStream.java:385)\
at org.jitsi.impl.neomedia.conference.AudioMixer.read(AudioMixer.java:998)\
at
org.jitsi.impl.neomedia.device.AudioMixerMediaDevice$2.read(AudioMixerMediaDevice.java:318)\
at
org.jitsi.impl.neomedia.conference.AudioMixerPushBufferStream.readInPushBufferStream(AudioMixerPushBufferStream.java:688)\
at
org.jitsi.impl.neomedia.conference.AudioMixerPushBufferStream.readInPushBufferStreams(AudioMixerPushBufferStream.java:909)\
at
org.jitsi.impl.neomedia.conference.AudioMixerPushBufferStream.read(AudioMixerPushBufferStream.java:561)\
at
org.jitsi.impl.neomedia.conference.AudioMixerPushBufferStream.transferData(AudioMixerPushBufferStream.java:1286)\
... 10 more\
Caused by: java.io.IOException: The source stream is closed\
at
net.sf.fmj.media.multiplexer.RawBufferMux$RawBufferSourceStream.read(RawBufferMux.java:254)\
at
org.jitsi.impl.neomedia.protocol.CachingPushBufferStream.transferData(CachingPushBufferStream.java:657)\
at
org.jitsi.impl.neomedia.protocol.CachingPushBufferStream$1.transferData(CachingPushBufferStream.java:572)\
at
net.sf.fmj.media.multiplexer.RawBufferMux$RawBufferSourceStream.run(RawBufferMux.java:378)\
at java.lang.Thread.run(Thread.java:680)\
at net.sf.fmj.media.util.MediaThread.run(MediaThread.java:202)\

···

--
Best regards,
Oleg


#2

Hey Oleg,

Could you please open a ticekt?

In the ticket, please describe your scenario in more detail.

Thanks,
Emil

···

On 02.07.13, 17:57, Oleg Odinec wrote:

Hi!
Jitsi does not handle changes codecs during call.
changes codecs were without ReInvite
18:46:47.258 SEVERE: [25] util.UtilActivator.uncaughtException().109 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:1290)\
  at
org.jitsi.impl.neomedia.conference.AudioMixerPushBufferStream$1.transferData(AudioMixerPushBufferStream.java:253)\
  at
org.jitsi.impl.neomedia.protocol.StreamSubstituteBufferTransferHandler.transferData(StreamSubstituteBufferTransferHandler.java:82)\
  at
org.jitsi.impl.neomedia.conference.AudioMixingPushBufferStream.setInSamples(AudioMixingPushBufferStream.java:405)\
  at
org.jitsi.impl.neomedia.conference.AudioMixerPushBufferStream.setInSamples(AudioMixerPushBufferStream.java:1097)\
  at
org.jitsi.impl.neomedia.conference.AudioMixerPushBufferStream.transferData(AudioMixerPushBufferStream.java:1312)\
  at
org.jitsi.impl.neomedia.conference.AudioMixerPushBufferStream$1.transferData(AudioMixerPushBufferStream.java:253)\
  at
org.jitsi.impl.neomedia.protocol.StreamSubstituteBufferTransferHandler.transferData(StreamSubstituteBufferTransferHandler.java:82)\
  at
org.jitsi.impl.neomedia.protocol.PushBufferDataSourceAdapter$PushBufferStreamAdapter.runInStreamReadThread(PushBufferDataSourceAdapter.java:271)\
  at
org.jitsi.impl.neomedia.protocol.PushBufferDataSourceAdapter$PushBufferStreamAdapter.access$400(PushBufferDataSourceAdapter.java:35)\
  at
org.jitsi.impl.neomedia.protocol.PushBufferDataSourceAdapter$PushBufferStreamAdapter$1.run(PushBufferDataSourceAdapter.java:326)\
Caused by: java.io.IOException\
  at
org.jitsi.impl.neomedia.protocol.CachingPushBufferStream.read(CachingPushBufferStream.java:385)\
  at
org.jitsi.impl.neomedia.conference.AudioMixer.read(AudioMixer.java:998)\
  at
org.jitsi.impl.neomedia.device.AudioMixerMediaDevice$2.read(AudioMixerMediaDevice.java:318)\
  at
org.jitsi.impl.neomedia.conference.AudioMixerPushBufferStream.readInPushBufferStream(AudioMixerPushBufferStream.java:688)\
  at
org.jitsi.impl.neomedia.conference.AudioMixerPushBufferStream.readInPushBufferStreams(AudioMixerPushBufferStream.java:909)\
  at
org.jitsi.impl.neomedia.conference.AudioMixerPushBufferStream.read(AudioMixerPushBufferStream.java:561)\
  at
org.jitsi.impl.neomedia.conference.AudioMixerPushBufferStream.transferData(AudioMixerPushBufferStream.java:1286)\
  ... 10 more\
Caused by: java.io.IOException: The source stream is closed\
  at
net.sf.fmj.media.multiplexer.RawBufferMux$RawBufferSourceStream.read(RawBufferMux.java:254)\
  at
org.jitsi.impl.neomedia.protocol.CachingPushBufferStream.transferData(CachingPushBufferStream.java:657)\
  at
org.jitsi.impl.neomedia.protocol.CachingPushBufferStream$1.transferData(CachingPushBufferStream.java:572)\
  at
net.sf.fmj.media.multiplexer.RawBufferMux$RawBufferSourceStream.run(RawBufferMux.java:378)\
  at java.lang.Thread.run(Thread.java:680)\
  at net.sf.fmj.media.util.MediaThread.run(MediaThread.java:202)\
--
Best regards,
Oleg

_______________________________________________
dev mailing list
dev@jitsi.org
Unsubscribe instructions and other list options:
http://lists.jitsi.org/mailman/listinfo/dev

--
https://jitsi.org


#3

Hi!
I solved this issue for me.
In file src/org/jitsi/impl/neomedia/protocol/CachingPushBufferStream.java
I disabled checking for IOException from FMJ(variable readException).
maybe it is a hack, but it works.

this issue is reproduced when I have two connections for my server (NAT and
VPN):
Server sends INVITE with first codec g711A.
Jitsi sends OK with first codec g729(I changed the logic).
Server sends some packets RTP in g711A to my vpn ip, but when it receives
rtp in g729 from me and it changes codec to g729. Further I get the
Exception.

maybe it is a very special case, and not necessary to create the ticket?

···

2013/7/3 Emil Ivov <emcho@jitsi.org>

Hey Oleg,

Could you please open a ticekt?

In the ticket, please describe your scenario in more detail.

Thanks,
Emil

--
Best regards,
Oleg