in AmazonChimeSDK/AmazonChimeSDK/internal/video/DefaultVideoClientController.swift [123:155]
func didReceive(_ buffer: CVPixelBuffer?,
profileId: String?,
pauseState: PauseState,
videoId: UInt32,
timestampNs: Int64,
rotation: VideoRotationInternal) {
// Translate the Obj-C enum to the public Swift enum
var translatedPauseState: VideoPauseState
switch pauseState {
case .Unpaused:
translatedPauseState = .unpaused
case .PausedByUserRequest:
translatedPauseState = .pausedByUserRequest
case .PausedForPoorConnection:
translatedPauseState = .pausedForPoorConnection
default:
translatedPauseState = .unpaused
}
var frame: VideoFrame?
if let buffer = buffer {
let pixelBuffer = VideoFramePixelBuffer(pixelBuffer: buffer)
frame = VideoFrame(timestampNs: timestampNs,
rotation: VideoRotation(internalValue: rotation),
buffer: pixelBuffer)
}
ObserverUtils.forEach(observers: videoTileControllerObservers) { (observer: VideoTileController) in
observer.onReceiveFrame(frame: frame,
videoId: Int(videoId),
attendeeId: profileId,
pauseState: translatedPauseState)
}
}