diff --git a/src/net/java/sip/communicator/impl/neomedia/RawPacket.java b/src/net/java/sip/communicator/impl/neomedia/RawPacket.java index bf3e1c7fb..d1a787cb2 100755 --- a/src/net/java/sip/communicator/impl/neomedia/RawPacket.java +++ b/src/net/java/sip/communicator/impl/neomedia/RawPacket.java @@ -375,7 +375,11 @@ public int getPaddingSize() */ public int getHeaderLength() { - return FIXED_HEADER_SIZE + 4 * getCsrcCount() + getExtensionLength(); + if(getExtensionBit()) + return FIXED_HEADER_SIZE + 4 * getCsrcCount() + + EXT_HEADER_SIZE + getExtensionLength(); + else + return FIXED_HEADER_SIZE + 4 * getCsrcCount(); } /** diff --git a/src/net/java/sip/communicator/impl/neomedia/device/AudioMixerMediaDevice.java b/src/net/java/sip/communicator/impl/neomedia/device/AudioMixerMediaDevice.java index b005c9600..3a4e35e99 100644 --- a/src/net/java/sip/communicator/impl/neomedia/device/AudioMixerMediaDevice.java +++ b/src/net/java/sip/communicator/impl/neomedia/device/AudioMixerMediaDevice.java @@ -302,7 +302,10 @@ else if (dataSource = streamAudioLevelListeners.get(receiveStream); } - if(streamEventDispatcher != null) + if(streamEventDispatcher != null + && !buffer.isDiscard() + && buffer.getLength() > 0 + && buffer.getData() != null) { if(! streamEventDispatcher.isRunning()) new Thread(streamEventDispatcher, diff --git a/src/net/java/sip/communicator/impl/neomedia/transform/zrtp/ZRTPTransformEngine.java b/src/net/java/sip/communicator/impl/neomedia/transform/zrtp/ZRTPTransformEngine.java index 62671ac9c..9044b2420 100644 --- a/src/net/java/sip/communicator/impl/neomedia/transform/zrtp/ZRTPTransformEngine.java +++ b/src/net/java/sip/communicator/impl/neomedia/transform/zrtp/ZRTPTransformEngine.java @@ -564,8 +564,6 @@ public RawPacket transform(RawPacket pkt) /* * Never transform outgoing ZRTP (invalid RTP) packets. */ - byte[] buffer = pkt.getBuffer(); - int offset = pkt.getOffset(); if (ZrtpRawPacket.isZrtpData(pkt)) { return pkt; @@ -574,7 +572,7 @@ public RawPacket transform(RawPacket pkt) // ZRTP needs the SSRC of the sending stream. if (enableZrtp && ownSSRC == 0) { - ownSSRC = (int)(pkt.readUnsignedIntAsLong(8) & 0xffffffff); + ownSSRC = pkt.getSSRC(); } // If SRTP is active then srtpTransformer is set, use it.