internal static SrtStream DeserializeSrtStream(JsonElement element) { LayoutResolution resolution = default; string streamUrl = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("resolution")) { resolution = LayoutResolution.DeserializeLayoutResolution(property.Value); continue; } if (property.NameEquals("streamUrl")) { streamUrl = property.Value.GetString(); continue; } } return(new SrtStream(resolution, streamUrl)); }
internal static RtmpStream DeserializeRtmpStream(JsonElement element) { string streamKey = default; LayoutResolution resolution = default; string streamUrl = default; Optional <RtmpMode> mode = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("streamKey")) { streamKey = property.Value.GetString(); continue; } if (property.NameEquals("resolution")) { resolution = LayoutResolution.DeserializeLayoutResolution(property.Value); continue; } if (property.NameEquals("streamUrl")) { streamUrl = property.Value.GetString(); continue; } if (property.NameEquals("mode")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } mode = new RtmpMode(property.Value.GetString()); continue; } } return(new RtmpStream(streamKey, resolution, streamUrl, Optional.ToNullable(mode))); }