@ -93,8 +93,10 @@ protocol CallServiceObserver: class {
/* *
* Fired whenever the local or remote video track become active or inactive .
*/
// T O D O r e m o v e l o c a l C a p t u r e S e s s i o n :
func didUpdateVideoTracks ( call : SignalCall ? ,
localVideoTrack : RTCVideoTrack ? ,
localCaptureSession : AVCaptureSession ? ,
remoteVideoTrack : RTCVideoTrack ? )
}
@ -125,6 +127,14 @@ private class SignalCallData: NSObject {
}
}
weak var localCaptureSession : AVCaptureSession ? {
didSet {
SwiftAssertIsOnMainThread ( #function )
Logger . info ( " \( self . logTag ) \( #function ) " )
}
}
weak var remoteVideoTrack : RTCVideoTrack ? {
didSet {
SwiftAssertIsOnMainThread ( #function )
@ -282,6 +292,15 @@ private class SignalCallData: NSObject {
return callData ? . localVideoTrack
}
}
weak var localCaptureSession : AVCaptureSession ? {
get {
SwiftAssertIsOnMainThread ( #function )
return callData ? . localCaptureSession
}
}
var remoteVideoTrack : RTCVideoTrack ? {
get {
SwiftAssertIsOnMainThread ( #function )
@ -1622,11 +1641,10 @@ private class SignalCallData: NSObject {
observers . append ( Weak ( value : observer ) )
// S y n c h r o n i z e o b s e r v e r w i t h c u r r e n t c a l l s t a t e
let call = self . call
let localVideoTrack = self . localVideoTrack
let remoteVideoTrack = self . isRemoteVideoEnabled ? self . remoteVideoTrack : nil
observer . didUpdateVideoTracks ( call : call ,
localVideoTrack : localVideoTrack ,
observer . didUpdateVideoTracks ( call : self . call ,
localVideoTrack : self . localVideoTrack ,
localCaptureSession : self . localCaptureSession ,
remoteVideoTrack : remoteVideoTrack )
}
@ -1649,13 +1667,11 @@ private class SignalCallData: NSObject {
private func fireDidUpdateVideoTracks ( ) {
SwiftAssertIsOnMainThread ( #function )
let call = self . call
let localVideoTrack = self . localVideoTrack
let remoteVideoTrack = self . isRemoteVideoEnabled ? self . remoteVideoTrack : nil
for observer in observers {
observer . value ? . didUpdateVideoTracks ( call : call ,
localVideoTrack : localVideoTrack ,
observer . value ? . didUpdateVideoTracks ( call : self . call ,
localVideoTrack : self . localVideoTrack ,
localCaptureSession : self . localCaptureSession ,
remoteVideoTrack : remoteVideoTrack )
}
}