100 lines
2.9 KiB
C#
100 lines
2.9 KiB
C#
|
|
using UnityEngine;
|
|||
|
|
|
|||
|
|
namespace Unity.RenderStreaming
|
|||
|
|
{
|
|||
|
|
internal enum SignalingType
|
|||
|
|
{
|
|||
|
|
WebSocket,
|
|||
|
|
Http,
|
|||
|
|
}
|
|||
|
|
internal class RenderStreamingSettings
|
|||
|
|
{
|
|||
|
|
public const int DefaultStreamWidth = 1280;
|
|||
|
|
public const int DefaultStreamHeight = 720;
|
|||
|
|
|
|||
|
|
private bool useDefaultSettings = true;
|
|||
|
|
private SignalingType signalingType = SignalingType.WebSocket;
|
|||
|
|
private string signalingAddress = "localhost";
|
|||
|
|
private int signalingInterval = 5000;
|
|||
|
|
private bool signalingSecured = false;
|
|||
|
|
private Vector2Int streamSize = new Vector2Int(DefaultStreamWidth, DefaultStreamHeight);
|
|||
|
|
private VideoCodecInfo receiverVideoCodec = null;
|
|||
|
|
private VideoCodecInfo senderVideoCodec = null;
|
|||
|
|
|
|||
|
|
public bool UseDefaultSettings
|
|||
|
|
{
|
|||
|
|
get { return useDefaultSettings; }
|
|||
|
|
set { useDefaultSettings = value; }
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public SignalingType SignalingType
|
|||
|
|
{
|
|||
|
|
get { return signalingType; }
|
|||
|
|
set { signalingType = value; }
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public string SignalingAddress
|
|||
|
|
{
|
|||
|
|
get { return signalingAddress; }
|
|||
|
|
set { signalingAddress = value; }
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public bool SignalingSecured
|
|||
|
|
{
|
|||
|
|
get { return signalingSecured; }
|
|||
|
|
set { signalingSecured = value; }
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public int SignalingInterval
|
|||
|
|
{
|
|||
|
|
get { return signalingInterval; }
|
|||
|
|
set { signalingInterval = value; }
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public SignalingSettings SignalingSettings
|
|||
|
|
{
|
|||
|
|
get
|
|||
|
|
{
|
|||
|
|
switch (signalingType)
|
|||
|
|
{
|
|||
|
|
case SignalingType.WebSocket:
|
|||
|
|
{
|
|||
|
|
var schema = signalingSecured ? "wss" : "ws";
|
|||
|
|
return new WebSocketSignalingSettings
|
|||
|
|
(
|
|||
|
|
url: $"{schema}://{signalingAddress}"
|
|||
|
|
);
|
|||
|
|
}
|
|||
|
|
case SignalingType.Http:
|
|||
|
|
{
|
|||
|
|
var schema = signalingSecured ? "https" : "http";
|
|||
|
|
return new HttpSignalingSettings
|
|||
|
|
(
|
|||
|
|
url: $"{schema}://{signalingAddress}",
|
|||
|
|
interval: signalingInterval
|
|||
|
|
);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return null;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public Vector2Int StreamSize
|
|||
|
|
{
|
|||
|
|
get { return streamSize; }
|
|||
|
|
set { streamSize = value; }
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public VideoCodecInfo ReceiverVideoCodec
|
|||
|
|
{
|
|||
|
|
get { return receiverVideoCodec; }
|
|||
|
|
set { receiverVideoCodec = value; }
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public VideoCodecInfo SenderVideoCodec
|
|||
|
|
{
|
|||
|
|
get { return senderVideoCodec; }
|
|||
|
|
set { senderVideoCodec = value; }
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|