use implicit rollback (needed to be enabled on libwebrtc)
This commit is contained in:
		
							parent
							
								
									0698fa0d8c
								
							
						
					
					
						commit
						297a843b9c
					
				|  | @ -356,8 +356,6 @@ public class JingleRtpConnection extends AbstractJingleConnection implements Web | |||
|                 //We ignore the offer and respond with tie-break. This will clause the responder not to apply the content map | ||||
|                 return false; | ||||
|             } | ||||
|             //rollback our own local description. should happen automatically but doesn't | ||||
|             webRTCWrapper.rollbackLocalDescription().get(); | ||||
|         } | ||||
|         webRTCWrapper.setRemoteDescription(sdp).get(); | ||||
|         setRemoteContentMap(restartContentMap); | ||||
|  |  | |||
|  | @ -86,7 +86,6 @@ public class WebRTCWrapper { | |||
| 
 | ||||
|     private final EventCallback eventCallback; | ||||
|     private final AtomicBoolean readyToReceivedIceCandidates = new AtomicBoolean(false); | ||||
|     private final AtomicBoolean ignoreOnRenegotiationNeeded = new AtomicBoolean(false); | ||||
|     private final Queue<IceCandidate> iceCandidates = new LinkedList<>(); | ||||
|     private final AppRTCAudioManager.AudioManagerEvents audioManagerEvents = new AppRTCAudioManager.AudioManagerEvents() { | ||||
|         @Override | ||||
|  | @ -163,10 +162,6 @@ public class WebRTCWrapper { | |||
| 
 | ||||
|         @Override | ||||
|         public void onRenegotiationNeeded() { | ||||
|             if (ignoreOnRenegotiationNeeded.get()) { | ||||
|                 Log.d(EXTENDED_LOGGING_TAG, "ignoring onRenegotiationNeeded()"); | ||||
|                 return; | ||||
|             } | ||||
|             Log.d(EXTENDED_LOGGING_TAG, "onRenegotiationNeeded()"); | ||||
|             final PeerConnection.PeerConnectionState currentState = peerConnection == null ? null : peerConnection.connectionState(); | ||||
|             if (currentState != null && currentState != PeerConnection.PeerConnectionState.NEW) { | ||||
|  | @ -277,6 +272,7 @@ public class WebRTCWrapper { | |||
|         rtcConfig.continualGatheringPolicy = PeerConnection.ContinualGatheringPolicy.GATHER_CONTINUALLY; | ||||
|         rtcConfig.sdpSemantics = PeerConnection.SdpSemantics.UNIFIED_PLAN; | ||||
|         rtcConfig.rtcpMuxPolicy = PeerConnection.RtcpMuxPolicy.NEGOTIATE; | ||||
|         rtcConfig.enableImplicitRollback = true; | ||||
|         final PeerConnection peerConnection = peerConnectionFactory.createPeerConnection(rtcConfig, peerConnectionObserver); | ||||
|         if (peerConnection == null) { | ||||
|             throw new InitializationException("Unable to create PeerConnection"); | ||||
|  | @ -456,26 +452,6 @@ public class WebRTCWrapper { | |||
|         }, MoreExecutors.directExecutor()); | ||||
|     } | ||||
| 
 | ||||
|     public ListenableFuture<Void> rollbackLocalDescription() { | ||||
|         final SettableFuture<Void> future = SettableFuture.create(); | ||||
|         final SessionDescription rollback = new SessionDescription(SessionDescription.Type.ROLLBACK, ""); | ||||
|         ignoreOnRenegotiationNeeded.set(true); | ||||
|         requirePeerConnection().setLocalDescription(new SetSdpObserver() { | ||||
|             @Override | ||||
|             public void onSetSuccess() { | ||||
|                 future.set(null); | ||||
|                 ignoreOnRenegotiationNeeded.set(false); | ||||
|             } | ||||
| 
 | ||||
|             @Override | ||||
|             public void onSetFailure(final String message) { | ||||
|                 future.setException(new FailureToSetDescriptionException(message)); | ||||
|             } | ||||
|         }, rollback); | ||||
|         return future; | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     private static void logDescription(final SessionDescription sessionDescription) { | ||||
|         for (final String line : sessionDescription.description.split(eu.siacs.conversations.xmpp.jingle.SessionDescription.LINE_DIVIDER)) { | ||||
|             Log.d(EXTENDED_LOGGING_TAG, line); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Daniel Gultsch
						Daniel Gultsch