void BlitImage() { if (!new_image) { return; } new_image = false; _RenderedTexture = Src.Output.GetTexture((int)Eye); RenderTexture.active = _subTexture; GL.Clear(true, true, Color.black); Graphics.Blit(_RenderedTexture, _subTexture); RenderTexture.active = null; if (!_isTriggered) { return; } _texWrapper.ConvertTexture(_subTexture); if (_texWrapper.WrappedTexture != null) { Color[] data = _texWrapper.WrappedTexture.GetPixels(); int w = _texWrapper.WrappedTexture.width; int h = _texWrapper.WrappedTexture.height; int x = (int)(w * _sampleX); int y = (int)(h * _sampleY); _pixelColor = data [y * w + x]; //sample pixel in the middle _sampledTexture.SetPixel(0, 0, _pixelColor); _sampledTexture.Apply(); if (_isTriggered) { if (_pixelColor.r > 0.5f) { _isTriggered = false; _receivedTime = Time.time; latencyTime = (_receivedTime - _TriggerTime); minLatency = Mathf.Min(latencyTime, minLatency); maxLatency = Mathf.Max(latencyTime, maxLatency); averageLatency += latencyTime; _samplesCount++; _OnChangeState(!_currentState); _dbWriter.AddData("latency", ((int)(latencyTime * 1000)).ToString()); _dbWriter.AddData("Framerate", Receiver.GetCaptureRate(_eye).ToString()); GstNetworkMultipleTexture tex = Receiver as GstNetworkMultipleTexture; if (tex != null) { _dbWriter.AddData("Network", ((float)tex.Player.NetworkUsage * 8 / (float)(1024 * 1024)).ToString("F3")); } else { _dbWriter.AddData("Network", "0"); } _dbWriter.PushData(); } } } }
public void Init() { m_Texture= TargetNode.AddComponent<GstNetworkMultipleTexture> (); m_Texture.StreamsCount = StreamsCount; m_Texture.Initialize (); m_Texture.ConnectToHost (Host, port,StreamsCount); m_Texture.Play (); }
public void Close() { if (m_Texture != null) { m_Texture.Close(); m_Texture.Destroy (); GameObject.Destroy(m_Texture); m_Texture=null; } }
public void Close() { if (m_Texture != null) { m_Texture.Close(); m_Texture.Destroy(); GameObject.Destroy(m_Texture); m_Texture = null; } }
public void Init(RobotInfo ifo, string profileType, GstImageInfo.EPixelFormat fmt = GstImageInfo.EPixelFormat.EPixel_I420) { m_Texture = TargetNode.AddComponent <GstNetworkMultipleTexture> (); m_Texture.StreamsCount = StreamsCount; m_Texture.profileType = profileType; m_Texture.Initialize(); int texCount = m_Texture.GetTextureCount(); _Processor = new OffscreenProcessor[texCount]; _needProcessing = new bool[texCount]; for (int i = 0; i < texCount; ++i) { _Processor[i] = new OffscreenProcessor(); _Processor[i].ShaderName = "Image/I420ToRGB"; _needProcessing [i] = false; } string ip = Settings.Instance.GetValue("Ports", "ReceiveHost", ifo.IP); m_Texture.ConnectToHost(ip, port, StreamsCount, fmt); m_Texture.Play(); if (_config != null) { m_Texture.SetConfiguration(_config); } m_Texture.OnFrameGrabbed += OnFrameGrabbed; _videoPorts = new uint[StreamsCount]; //{0,0}; string streamsVals = ""; for (int i = 0; i < StreamsCount; ++i) { _videoPorts [i] = Texture.Player.GetVideoPort(i); streamsVals += _videoPorts [i].ToString(); if (i != StreamsCount - 1) { streamsVals += ","; } } RobotConnector.Connector.SendData(TxKitEyes.ServiceName, "VideoPorts", streamsVals, true); }
public override void PostInit() { _texture = (_eyes.CameraSource as MultipleNetworkCameraSource).Texture; }