Skip to content

Commit

Permalink
Merge branch 'replace-webrtc' into sipsorcery
Browse files Browse the repository at this point in the history
  • Loading branch information
bitbound committed Apr 18, 2021
2 parents 107767a + 91a3ebf commit f72acc8
Show file tree
Hide file tree
Showing 23 changed files with 148 additions and 306 deletions.
2 changes: 1 addition & 1 deletion Desktop.Core/Desktop.Core.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="5.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="5.0.0" />
<PackageReference Include="Microsoft.Extensions.Logging.EventLog" Version="5.0.0" />
<PackageReference Include="Microsoft.MixedReality.WebRTC" Version="2.0.2" />
<PackageReference Include="System.Drawing.Common" Version="5.0.2" />
<PackageReference Include="SIPSorcery" Version="5.1.1" />
<PackageReference Include="System.IO.FileSystem.AccessControl" Version="5.0.0" />
</ItemGroup>

Expand Down
10 changes: 5 additions & 5 deletions Desktop.Core/Services/CasterSocket.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public interface ICasterSocket
Task SendCtrlAltDelToAgent();
Task SendDeviceInfo(string serviceID, string machineName, string deviceID);
Task SendDtoToViewer<T>(T baseDto, string viewerId);
Task SendIceCandidateToBrowser(string candidate, int sdpMlineIndex, string sdpMid, string viewerConnectionID);
Task SendIceCandidateToBrowser(string candidate, string sdpMid, ushort sdpMLineIndex, string usernameFragment, string viewerConnectionID);
Task SendMessageToViewer(string viewerID, string message);
Task SendRtcOfferToBrowser(string sdp, string viewerID, IceServerModel[] iceServers);
Task SendViewerConnected(string viewerConnectionId);
Expand Down Expand Up @@ -164,9 +164,9 @@ public Task SendDtoToViewer<T>(T baseDto, string viewerId)
var serializedDto = MessagePack.MessagePackSerializer.Serialize(baseDto);
return Connection.SendAsync("SendDtoToBrowser", serializedDto, viewerId);
}
public async Task SendIceCandidateToBrowser(string candidate, int sdpMlineIndex, string sdpMid, string viewerConnectionID)
public async Task SendIceCandidateToBrowser(string candidate, string sdpMid, ushort sdpMLineIndex, string usernameFragment, string viewerConnectionID)
{
await Connection.SendAsync("SendIceCandidateToBrowser", candidate, sdpMlineIndex, sdpMid, viewerConnectionID);
await Connection.SendAsync("SendIceCandidateToBrowser", candidate, sdpMid, sdpMLineIndex, usernameFragment, viewerConnectionID);
}

public async Task SendRtcOfferToBrowser(string sdp, string viewerID, IceServerModel[] iceServers)
Expand Down Expand Up @@ -237,13 +237,13 @@ private void ApplyConnectionHandlers()
});


Connection.On("ReceiveIceCandidate", (string candidate, int sdpMlineIndex, string sdpMid, string viewerID) =>
Connection.On("ReceiveIceCandidate", (string candidate, string sdpMid, ushort sdpMLineIndex, string usernameFragment, string viewerID) =>
{
try
{
if (conductor.Viewers.TryGetValue(viewerID, out var viewer))
{
viewer.RtcSession.AddIceCandidate(sdpMid, sdpMlineIndex, candidate);
viewer.RtcSession.AddIceCandidate(candidate, sdpMid, sdpMLineIndex, usernameFragment);
}
}
catch (Exception ex)
Expand Down
9 changes: 0 additions & 9 deletions Desktop.Core/Services/DtoMessageHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -97,9 +97,6 @@ public async Task ParseMessage(Viewer viewer, byte[] message)
case BaseDtoType.ToggleBlockInput:
ToggleBlockInput(message);
break;
case BaseDtoType.ToggleWebRtcVideo:
ToggleWebRtcVideo(message, viewer);
break;
case BaseDtoType.ClipboardTransfer:
await ClipboardTransfer(message);
break;
Expand Down Expand Up @@ -250,11 +247,5 @@ private void ToggleBlockInput(byte[] message)
var dto = MessagePackSerializer.Deserialize<ToggleBlockInputDto>(message);
KeyboardMouseInput.ToggleBlockInput(dto.ToggleOn);
}

private void ToggleWebRtcVideo(byte[] message, Viewer viewer)
{
var dto = MessagePackSerializer.Deserialize<ToggleWebRtcVideoDto>(message);
viewer.ToggleWebRtcVideo(dto.ToggleOn);
}
}
}
7 changes: 1 addition & 6 deletions Desktop.Core/Services/ScreenCaster.cs
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ await viewer.SendScreenCapture(new CaptureFrame()
}


if (EnvironmentHelper.IsWindows && screenCastRequest.UseWebRtc)
if (screenCastRequest.UseWebRtc)
{
await viewer.InitializeWebRtc();
}
Expand All @@ -118,11 +118,6 @@ await viewer.SendScreenCapture(new CaptureFrame()
{
try
{
if (viewer.IsUsingWebRtcVideo)
{
Thread.Sleep(100);
continue;
}
if (viewer.IsStalled)
{
// Viewer isn't responding. Abort sending.
Expand Down
24 changes: 7 additions & 17 deletions Desktop.Core/Services/Viewer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,7 @@
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using System.Diagnostics;
using System.Threading;
using System.Text.Json;

namespace Remotely.Desktop.Core.Services
{
Expand Down Expand Up @@ -59,14 +58,6 @@ public bool IsUsingWebRtc
}
}

public bool IsUsingWebRtcVideo
{
get
{
return RtcSession?.IsPeerConnected == true && RtcSession?.IsVideoTrackConnected == true;
}
}

public string Name { get; set; }

public double AverageBytesPerSecond { get; set; }
Expand Down Expand Up @@ -109,11 +100,15 @@ public async Task InitializeWebRtc()

RtcSession.LocalSdpReady += async (sender, sdp) =>
{
await CasterSocket.SendRtcOfferToBrowser(sdp.Content, ViewerConnectionID, iceServers);
await CasterSocket.SendRtcOfferToBrowser(sdp.sdp, ViewerConnectionID, iceServers);
};
RtcSession.IceCandidateReady += async (sender, candidate) =>
{
await CasterSocket.SendIceCandidateToBrowser(candidate.Content, candidate.SdpMlineIndex, candidate.SdpMid, ViewerConnectionID);
await CasterSocket.SendIceCandidateToBrowser(candidate.candidate,
candidate.sdpMid,
candidate.sdpMLineIndex,
candidate.usernameFragment,
ViewerConnectionID);
};

await RtcSession.Init(iceServers);
Expand Down Expand Up @@ -306,11 +301,6 @@ public void ThrottleIfNeeded()
TimeSpan.FromSeconds(10));
}

public void ToggleWebRtcVideo(bool toggleOn)
{
RtcSession.ToggleWebRtcVideo(toggleOn);
}

private async void AudioCapturer_AudioSampleReady(object sender, byte[] sample)
{
await SendAudioSample(sample);
Expand Down

0 comments on commit f72acc8

Please sign in to comment.