diff --git a/src/net/java/sip/communicator/impl/neomedia/MediaStreamImpl.java b/src/net/java/sip/communicator/impl/neomedia/MediaStreamImpl.java index 5fcdbdaec..09be4f3ad 100644 --- a/src/net/java/sip/communicator/impl/neomedia/MediaStreamImpl.java +++ b/src/net/java/sip/communicator/impl/neomedia/MediaStreamImpl.java @@ -200,11 +200,6 @@ else if (MediaDeviceSession.SSRC_LIST.equals(propertyName)) */ private final SrtpControl srtpControl; - /** - * Needed when restarting zrtp control. - */ - private boolean zrtpRestarted = false; - /** * Number of received sender reports. * Used only for logging and debug purposes. @@ -508,7 +503,6 @@ public void close() closeSendStreams(); srtpControl.cleanup(); - zrtpRestarted = false; if(csrcEngine != null) { @@ -1106,46 +1100,6 @@ public SrtpControl getSrtpControl() return srtpControl; } - /** - * Resets the state of secure communication and restart the secure - * communication negotiation. - */ - private void restartZrtpControl() - { - /* - * If there is no current secure communication, we don't need to do - * that. - */ - if(!srtpControl.getSecureCommunicationStatus()) - return; - - srtpControl.cleanup(); - - /* - * As we are recreating this stream and it was obviously secured, it may - * happen so that we receive unencrypted data. Which will produce noise - * for us to hear. So we mute it till a secure connection is again - * established. - */ - // disable it because it can cause problems when switching from camera - // to desktop sharing. Moreover if ZRTP see unencrypted packets, it will - // not try to decrypt them (maybe the noise come from the decryption of - // unencrypted data). - //zrtpControl.getZrtpEngine().setStartMuted(true); - - AbstractRTPConnector rtpConnector = getRTPConnector(); - - srtpControl.setConnector(rtpConnector); - if(rtpConnector instanceof RTPTransformUDPConnector) - ((RTPTransformUDPConnector)rtpConnector) - .setEngine(createTransformEngineChain()); - else if(rtpConnector instanceof RTPTransformTCPConnector) - ((RTPTransformTCPConnector)rtpConnector) - .setEngine(createTransformEngineChain()); - - zrtpRestarted = true; - } - /** * Determines whether this MediaStream is set to transmit "silence" * instead of the media being fed from its MediaDevice. "Silence" @@ -1193,9 +1147,6 @@ private void recreateSendStreams() { closeSendStreams(); - // this will restart and reinit zrtp control if needed. - //restartZrtpControl(); - if ((getDeviceSession() != null) && (rtpManager != null)) { if (MediaDirection.SENDONLY.equals(startedDirection) @@ -1460,6 +1411,8 @@ public void setDirection(MediaDirection direction) { if (direction == null) throw new NullPointerException("direction"); + if(this.direction == direction) + return; if(logger.isTraceEnabled()) logger.trace("Changing direction of stream " + hashCode() @@ -1511,6 +1464,11 @@ public void setDirection(MediaDirection direction) */ public void setFormat(MediaFormat format) { + if (getDeviceSession() != null && + getDeviceSession().getFormat() != null && + getDeviceSession().getFormat().equals(format)) + return; + if (logger.isTraceEnabled()) logger.trace( "Changing format of stream " + hashCode() @@ -2319,6 +2277,9 @@ private void printFlowStatistics(RTPManager rtpManager) { try { + if(!logger.isInfoEnabled()) + return; + //print flow statistics. GlobalTransmissionStats s = rtpManager.getGlobalTransmissionStats();