private void onAirXRPlayerDestroyed(int playerID, AirXRServerMessage message) { var unboundCameraRig = _cameraRigList.GetBoundCameraRig(playerID); if (unboundCameraRig != null) { if (unboundCameraRig.isStreaming && Delegate != null) { Delegate.AirXRCameraRigDeactivated(unboundCameraRig); } if (string.IsNullOrEmpty(unboundCameraRig.GetConfig().profileReportEndpoint) == false) { predictionEventHandler?.OnStopPrediction(unboundCameraRig); } unboundCameraRig.UnbindPlayer(); _cameraRigList.ReleaseCameraRig(unboundCameraRig); if (Delegate != null) { Delegate.AirXRCameraRigHasBeenUnbound(unboundCameraRig); } } }
private void onAirXRPlayerUserDataReceived(int playerID, AirXRServerMessage message) { var cameraRig = _cameraRigList.GetBoundCameraRig(playerID); if (cameraRig != null && Delegate != null) { Delegate.AirXRCameraRigUserDataReceived(cameraRig, message.Data_Decoded); } }
private void onAirXRPlayerProfileCBOR(int playerID, AirXRServerMessage message) { var cameraRig = _cameraRigList.GetBoundCameraRig(playerID); if (cameraRig == null) { return; } predictionEventHandler?.OnProfileDataReceived(cameraRig, message.Data_Decoded); }
private void onAirXRPlayerDeactivated(int playerID, AirXRServerMessage message) { var cameraRig = _cameraRigList.GetBoundCameraRig(playerID); if (cameraRig != null && Delegate != null) { Delegate.AirXRCameraRigDeactivated(cameraRig); } updateApplicationTargetFrameRate(); }
private void onAirXRMediaStreamStopped(AirXRServerMessage message) { onStopRender(); disableCameras(); _mediaStreamJustStopped = true; // StopCoroutine(_CallPluginEndOfFrame) executes the routine one more in the next frame after the call. // so use a flag to completely stop the routine. GL.IssuePluginEvent(AXRServerPlugin.ResetStreams_RenderThread_Func, AXRServerPlugin.RenderEventArg((uint)playerID)); inputStream.Stop(); }
private void onAirXRMediaStreamInitialized(AirXRServerMessage message) { Assert.IsNull(mediaStream); initializeCamerasForMediaStream(); AXRServerPlugin.SendCameraClipPlanes(playerID, cameras[0].nearClipPlane, cameras[0].farClipPlane); mediaStream = new AirXRServerMediaStream(playerID, _config, cameras.Length); GL.IssuePluginEvent(AXRServerPlugin.InitStreams_RenderThread_Func, AXRServerPlugin.RenderEventArg((uint)playerID)); inputStream.Init(); }
private void onAirXRMediaStreamCleanedUp(AirXRServerMessage message) { Assert.IsNotNull(mediaStream); inputStream.Cleanup(); GL.IssuePluginEvent(AXRServerPlugin.CleanupStreams_RenderThread_Func, AXRServerPlugin.RenderEventArg((uint)playerID)); mediaStream.Destroy(); mediaStream = null; foreach (Camera cam in cameras) { cam.targetTexture = null; } }
private void onAirXRPlayerCreated(int playerID, AirXRServerMessage message) { var selected = notifyCameraRigWillBeBound(playerID); if (selected != null) { _cameraRigList.RetainCameraRig(selected); selected.BindPlayer(playerID); AXRServerPlugin.AcceptPlayer(playerID); var config = selected.GetConfig(); if (string.IsNullOrEmpty(config.profileReportEndpoint) == false && string.IsNullOrEmpty(config.motionOutputEndpoint) == false) { predictionEventHandler?.OnStartPrediction(selected, config.profileReportEndpoint, config.motionOutputEndpoint); } } else { AXRServerPlugin.Disconnect(playerID); } }
private void onAirXRProfilerReportReceived(int playerID, AirXRServerMessage message) { Debug.Log(string.Format("profiler report: fps {0:0.0} ({1}/{2:0.000}), avg latency: overall {3:0.000} = network {4:0.000} + decode {5:0.000}", message.FrameCount / message.Duration, message.FrameCount, message.Duration, message.AvgOverallLatency, message.AvgNetworkLatency, message.AvgDecodeLatency)); }
private void onAirXRProfilerFrameReceived(int playerID, AirXRServerMessage message) { //Debug.Log(string.Format("profiler frame: latency: overall {0:0.000} = network {1:0.000} + decode {2:0.000}", // message.OverallLatency, message.NetworkLatency, message.DecodeLatency)); }
private void onAirXRSessionDisconnected(int playerID, AirXRServerMessage message) { AirXRServer.NotifyClientDisconnected(playerID); }
private void onAirXRPlayerShowCopyright(int playerID, AirXRServerMessage message) { Debug.Log("(C) 2016-present onAirXR. All right reserved."); }
private void onAirXRMediaStreamSetCameraProjection(AirXRServerMessage message) { updateCameraProjection(_config, message.CameraProjection); }
private void onAirXRMediaStreamEncodeVideoFrame(AirXRServerMessage message) { _encodeVideoFrameRequested = true; }
private void onAirXRMediaStreamStarted(AirXRServerMessage message) { startToRenderCamerasForMediaStream(); inputStream.Start(); }
protected override AXRMessage ParseMessageImpl(IntPtr source, string message) { return(AirXRServerMessage.Parse(source, message)); }