public void SetVideoRenderer(IVideoRenderer renderer) { this._videoRenderer = renderer; if (this._videoParams != null) { this._videoRenderer.SetVideoParams(this, this._videoParams); } }
public void StartVideoCall(IVideoRenderer localRenderer, IVideoRenderer remoteRenderer) { Executor.Execute(() => { PeerConnectionClient.CreatePeerConnection(localRenderer, remoteRenderer); OnChannelConnectedInternal(_signalingParameters); }); }
private void StartVideoCallInternal(IVideoRenderer localRenderer, IVideoRenderer remoteRenderer) { var session = RTCAudioSession.SharedInstance; session.UseManualAudio = true; session.IsAudioEnabled = false; StartVideoCall(localRenderer, remoteRenderer); }
public Z80Model(System.Windows.Forms.Form d, int size) { if (size == 128) memoryManager = new Z80MemoryManager128K(); else memoryManager = new Z80MemoryManager48KFlat(); portManager = new Z80PortManager(); videoRenderer = new VideoRenderer(d); }
public void StartVideoCall(IVideoRenderer localRenderer, IVideoRenderer remoteRenderer) { Executor.Execute(() => { Logger.Debug(TAG, $"VideoCall starting, CreatePeerConnection witl local and remote video renderers"); PeerConnectionClient.CreatePeerConnection(localRenderer, remoteRenderer); OnChannelConnectedInternal(_signalingParameters); }); }
private void CloseInternal() { if (_factory != null && _parameters.AecDump) { _factory.StopAecDump(); } _logger.Debug(TAG, "Closing peer connection."); if (_rtcEventLog != null) { // RtcEventLog should stop before the peer connection is disposed. _rtcEventLog.Stop(); _rtcEventLog = null; } _logger.Debug(TAG, "Closing audio source."); if (_audioSource != null) { _audioSource.Dispose(); _audioSource = null; } _logger.Debug(TAG, "Stopping capturer."); if (_videoCapturer != null) { _videoCapturer.StopCapture(); _videoCapturer.Dispose(); _videoCapturerStopped = true; _videoCapturer = null; } _logger.Debug(TAG, "Closing video source."); if (_videoSource != null) { _videoSource.Dispose(); _videoSource = null; } _localRenderer = null; _remoteRenderer = null; _logger.Debug(TAG, "Closing peer connection factory."); if (_factory != null) { _factory.Dispose(); _factory = null; } _logger.Debug(TAG, "Closing peer connection done."); _peerConnectionEvents.OnPeerConnectionClosed(); PeerConnectionFactory.StopInternalTracingCapture(); PeerConnectionFactory.ShutdownInternalTracer(); _executor.Release(); }
public Z80Model(System.Windows.Forms.Form d, int size) { if (size == 128) { memoryManager = new Z80MemoryManager128K(); } else { memoryManager = new Z80MemoryManager48KFlat(); } portManager = new Z80PortManager(); videoRenderer = new VideoRenderer(d); }
/// <summary> /// Will expand the input into the appropriate content based on scope. /// </summary> /// <param name="scopeName">The scope name.</param> /// <param name="input">The input to be expanded.</param> /// <param name="htmlEncode">Function that will html encode the output.</param> /// <param name="attributeEncode">Function that will html attribute encode the output.</param> /// <returns>The expanded content.</returns> protected override string PerformExpand(string scopeName, string input, Func <string, string> htmlEncode, Func <string, string> attributeEncode) { if (scopeName == ScopeName.InvalidVideo) { throw new ArgumentException("Invalid video type.", "type"); } string[] parameters = input.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); string url = Parameters.ExtractUrl(parameters); WikiPlex.Legacy.HorizontalAlign align = Parameters.ExtractAlign(parameters, WikiPlex.Legacy.HorizontalAlign.Center); IVideoRenderer videoRenderer = GetVideoRenderer(scopeName); videoRenderer.Dimensions = Parameters.ExtractDimensions(parameters, 285, 320); var content = new StringBuilder(); using (var tw = new StringWriter(content)) using (var writer = new WikiPlex.Legacy.HtmlTextWriter(tw, string.Empty)) { writer.NewLine = string.Empty; writer.AddAttribute(WikiPlex.Legacy.HtmlTextWriterAttribute.Class, "video"); writer.AddAttribute(WikiPlex.Legacy.HtmlTextWriterAttribute.Style, string.Format("text-align:{0}", align)); writer.RenderBeginTag(WikiPlex.Legacy.HtmlTextWriterTag.Div); writer.AddAttribute(WikiPlex.Legacy.HtmlTextWriterAttribute.Class, "player"); writer.RenderBeginTag(WikiPlex.Legacy.HtmlTextWriterTag.Span); videoRenderer.Render(url, writer); writer.RenderEndTag(); // </span> writer.Write("<br />"); writer.AddAttribute(WikiPlex.Legacy.HtmlTextWriterAttribute.Class, "external"); writer.RenderBeginTag(WikiPlex.Legacy.HtmlTextWriterTag.Span); writer.AddAttribute(WikiPlex.Legacy.HtmlTextWriterAttribute.Href, url); writer.AddAttribute(WikiPlex.Legacy.HtmlTextWriterAttribute.Target, "_blank"); writer.RenderBeginTag(WikiPlex.Legacy.HtmlTextWriterTag.A); writer.Write("Launch in another window"); writer.RenderEndTag(); writer.RenderEndTag(); writer.RenderEndTag(); // </div> } return(content.ToString()); }
public void CreatePeerConnection(IVideoRenderer localRenderer, IVideoRenderer remoteRenderer) { _localRenderer = localRenderer; _remoteRenderer = remoteRenderer; _executor.Execute(() => { try { CreateMediaConstraintsInternal(); CreatePeerConnectionInternal(); MaybeCreateAndStartRtcEventLog(); } catch (Exception ex) { ReportError("Failed to create peer connection: " + ex.Message); throw; } if (_peerConnection != null) { _peerConnectionEvents.OnPeerConnectionCreated(_peerConnection); } }); }
protected abstract void StartVideoCall(IVideoRenderer localRenderer, IVideoRenderer remoteRenderer);
public void AddRenderer(IVideoRenderer videoRenderer) { _videoTrack.AddSink(videoRenderer.ToNative <IVideoSink>()); }
public void RemoveRenderer(IVideoRenderer videoRenderer) { _videoTrack.RemoveSink(videoRenderer.ToNative <IVideoSink>()); }
public void RemoveRenderer(IVideoRenderer videoRenderer) { _videoTrack.RemoveRenderer(videoRenderer.ToNative <IRTCVideoRenderer>()); }
public void RemoveVideoRenderer(IVideoRenderer videoRenderer) => _videoTrack.RemoveSink(videoRenderer.ToPlatformNative <IVideoSink>());
//public IVideoSource Source => public void AddRenderer(IVideoRenderer videoRenderer) => _videoTrack.AddSink(videoRenderer.ToPlatformNative <IVideoSink>());
public void StartVideoCall(IVideoRenderer localRenderer, IVideoRenderer remoteRenderer) { CallController.StartVideoCall(localRenderer, remoteRenderer); }
public void SetVideoRenderer(IVideoRenderer videoRenderer) { EmulatedGameBoy.Bus.VideoRenderer = videoRenderer; }