internal static VideoSink DeserializeVideoSink(JsonElement element)
        {
            string videoName = default;
            Optional <VideoCreationProperties> videoCreationProperties = default;
            string            localMediaCachePath           = default;
            string            localMediaCacheMaximumSizeMiB = default;
            string            type   = default;
            string            name   = default;
            IList <NodeInput> inputs = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("videoName"))
                {
                    videoName = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("videoCreationProperties"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    videoCreationProperties = VideoCreationProperties.DeserializeVideoCreationProperties(property.Value);
                    continue;
                }
                if (property.NameEquals("localMediaCachePath"))
                {
                    localMediaCachePath = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("localMediaCacheMaximumSizeMiB"))
                {
                    localMediaCacheMaximumSizeMiB = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("@type"))
                {
                    type = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("name"))
                {
                    name = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("inputs"))
                {
                    List <NodeInput> array = new List <NodeInput>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(NodeInput.DeserializeNodeInput(item));
                    }
                    inputs = array;
                    continue;
                }
            }
            return(new VideoSink(type, name, inputs, videoName, videoCreationProperties.Value, localMediaCachePath, localMediaCacheMaximumSizeMiB));
        }
示例#2
0
        internal static MotionDetectionProcessor DeserializeMotionDetectionProcessor(JsonElement element)
        {
            Optional <MotionDetectionSensitivity> sensitivity = default;
            Optional <bool>   outputMotionRegion     = default;
            Optional <string> eventAggregationWindow = default;
            string            type   = default;
            string            name   = default;
            IList <NodeInput> inputs = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("sensitivity"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    sensitivity = new MotionDetectionSensitivity(property.Value.GetString());
                    continue;
                }
                if (property.NameEquals("outputMotionRegion"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    outputMotionRegion = property.Value.GetBoolean();
                    continue;
                }
                if (property.NameEquals("eventAggregationWindow"))
                {
                    eventAggregationWindow = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("@type"))
                {
                    type = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("name"))
                {
                    name = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("inputs"))
                {
                    List <NodeInput> array = new List <NodeInput>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(NodeInput.DeserializeNodeInput(item));
                    }
                    inputs = array;
                    continue;
                }
            }
            return(new MotionDetectionProcessor(type, name, inputs, Optional.ToNullable(sensitivity), Optional.ToNullable(outputMotionRegion), eventAggregationWindow.Value));
        }
示例#3
0
        internal static SignalGateProcessor DeserializeSignalGateProcessor(JsonElement element)
        {
            Optional <string> activationEvaluationWindow = default;
            Optional <string> activationSignalOffset     = default;
            Optional <string> minimumActivationTime      = default;
            Optional <string> maximumActivationTime      = default;
            string            type   = default;
            string            name   = default;
            IList <NodeInput> inputs = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("activationEvaluationWindow"))
                {
                    activationEvaluationWindow = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("activationSignalOffset"))
                {
                    activationSignalOffset = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("minimumActivationTime"))
                {
                    minimumActivationTime = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("maximumActivationTime"))
                {
                    maximumActivationTime = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("@type"))
                {
                    type = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("name"))
                {
                    name = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("inputs"))
                {
                    List <NodeInput> array = new List <NodeInput>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(NodeInput.DeserializeNodeInput(item));
                    }
                    inputs = array;
                    continue;
                }
            }
            return(new SignalGateProcessor(type, name, inputs, activationEvaluationWindow.Value, activationSignalOffset.Value, minimumActivationTime.Value, maximumActivationTime.Value));
        }
示例#4
0
        internal static HttpExtension DeserializeHttpExtension(JsonElement element)
        {
            EndpointBase               endpoint        = default;
            ImageProperties            image           = default;
            Optional <SamplingOptions> samplingOptions = default;
            string            type   = default;
            string            name   = default;
            IList <NodeInput> inputs = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("endpoint"))
                {
                    endpoint = EndpointBase.DeserializeEndpointBase(property.Value);
                    continue;
                }
                if (property.NameEquals("image"))
                {
                    image = ImageProperties.DeserializeImageProperties(property.Value);
                    continue;
                }
                if (property.NameEquals("samplingOptions"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    samplingOptions = SamplingOptions.DeserializeSamplingOptions(property.Value);
                    continue;
                }
                if (property.NameEquals("@type"))
                {
                    type = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("name"))
                {
                    name = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("inputs"))
                {
                    List <NodeInput> array = new List <NodeInput>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(NodeInput.DeserializeNodeInput(item));
                    }
                    inputs = array;
                    continue;
                }
            }
            return(new HttpExtension(type, name, inputs, endpoint, image, samplingOptions.Value));
        }
        internal static ProcessorNodeBase DeserializeProcessorNodeBase(JsonElement element)
        {
            if (element.TryGetProperty("@type", out JsonElement discriminator))
            {
                switch (discriminator.GetString())
                {
                case "#Microsoft.VideoAnalyzer.CognitiveServicesVisionProcessor": return(CognitiveServicesVisionProcessor.DeserializeCognitiveServicesVisionProcessor(element));

                case "#Microsoft.VideoAnalyzer.ExtensionProcessorBase": return(ExtensionProcessorBase.DeserializeExtensionProcessorBase(element));

                case "#Microsoft.VideoAnalyzer.GrpcExtension": return(GrpcExtension.DeserializeGrpcExtension(element));

                case "#Microsoft.VideoAnalyzer.HttpExtension": return(HttpExtension.DeserializeHttpExtension(element));

                case "#Microsoft.VideoAnalyzer.LineCrossingProcessor": return(LineCrossingProcessor.DeserializeLineCrossingProcessor(element));

                case "#Microsoft.VideoAnalyzer.MotionDetectionProcessor": return(MotionDetectionProcessor.DeserializeMotionDetectionProcessor(element));

                case "#Microsoft.VideoAnalyzer.ObjectTrackingProcessor": return(ObjectTrackingProcessor.DeserializeObjectTrackingProcessor(element));

                case "#Microsoft.VideoAnalyzer.SignalGateProcessor": return(SignalGateProcessor.DeserializeSignalGateProcessor(element));
                }
            }
            string            type   = default;
            string            name   = default;
            IList <NodeInput> inputs = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("@type"))
                {
                    type = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("name"))
                {
                    name = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("inputs"))
                {
                    List <NodeInput> array = new List <NodeInput>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(NodeInput.DeserializeNodeInput(item));
                    }
                    inputs = array;
                    continue;
                }
            }
            return(new ProcessorNodeBase(type, name, inputs));
        }
        internal static FileSink DeserializeFileSink(JsonElement element)
        {
            string            baseDirectoryPath = default;
            string            fileNamePattern   = default;
            string            maximumSizeMiB    = default;
            string            type   = default;
            string            name   = default;
            IList <NodeInput> inputs = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("baseDirectoryPath"))
                {
                    baseDirectoryPath = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("fileNamePattern"))
                {
                    fileNamePattern = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("maximumSizeMiB"))
                {
                    maximumSizeMiB = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("@type"))
                {
                    type = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("name"))
                {
                    name = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("inputs"))
                {
                    List <NodeInput> array = new List <NodeInput>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(NodeInput.DeserializeNodeInput(item));
                    }
                    inputs = array;
                    continue;
                }
            }
            return(new FileSink(type, name, inputs, baseDirectoryPath, fileNamePattern, maximumSizeMiB));
        }
示例#7
0
        internal static ObjectTrackingProcessor DeserializeObjectTrackingProcessor(JsonElement element)
        {
            Optional <ObjectTrackingAccuracy> accuracy = default;
            string            type   = default;
            string            name   = default;
            IList <NodeInput> inputs = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("accuracy"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    accuracy = new ObjectTrackingAccuracy(property.Value.GetString());
                    continue;
                }
                if (property.NameEquals("@type"))
                {
                    type = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("name"))
                {
                    name = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("inputs"))
                {
                    List <NodeInput> array = new List <NodeInput>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(NodeInput.DeserializeNodeInput(item));
                    }
                    inputs = array;
                    continue;
                }
            }
            return(new ObjectTrackingProcessor(type, name, inputs, Optional.ToNullable(accuracy)));
        }
        internal static LineCrossingProcessor DeserializeLineCrossingProcessor(JsonElement element)
        {
            IList <NamedLineBase> lines = default;
            string            type      = default;
            string            name      = default;
            IList <NodeInput> inputs    = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("lines"))
                {
                    List <NamedLineBase> array = new List <NamedLineBase>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(NamedLineBase.DeserializeNamedLineBase(item));
                    }
                    lines = array;
                    continue;
                }
                if (property.NameEquals("@type"))
                {
                    type = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("name"))
                {
                    name = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("inputs"))
                {
                    List <NodeInput> array = new List <NodeInput>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(NodeInput.DeserializeNodeInput(item));
                    }
                    inputs = array;
                    continue;
                }
            }
            return(new LineCrossingProcessor(type, name, inputs, lines));
        }
示例#9
0
        internal static SinkNodeBase DeserializeSinkNodeBase(JsonElement element)
        {
            if (element.TryGetProperty("@type", out JsonElement discriminator))
            {
                switch (discriminator.GetString())
                {
                case "#Microsoft.VideoAnalyzer.FileSink": return(FileSink.DeserializeFileSink(element));

                case "#Microsoft.VideoAnalyzer.IotHubMessageSink": return(IotHubMessageSink.DeserializeIotHubMessageSink(element));

                case "#Microsoft.VideoAnalyzer.VideoSink": return(VideoSink.DeserializeVideoSink(element));
                }
            }
            string            type   = default;
            string            name   = default;
            IList <NodeInput> inputs = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("@type"))
                {
                    type = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("name"))
                {
                    name = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("inputs"))
                {
                    List <NodeInput> array = new List <NodeInput>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(NodeInput.DeserializeNodeInput(item));
                    }
                    inputs = array;
                    continue;
                }
            }
            return(new SinkNodeBase(type, name, inputs));
        }
        internal static IotHubMessageSink DeserializeIotHubMessageSink(JsonElement element)
        {
            string            hubOutputName = default;
            string            type          = default;
            string            name          = default;
            IList <NodeInput> inputs        = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("hubOutputName"))
                {
                    hubOutputName = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("@type"))
                {
                    type = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("name"))
                {
                    name = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("inputs"))
                {
                    List <NodeInput> array = new List <NodeInput>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(NodeInput.DeserializeNodeInput(item));
                    }
                    inputs = array;
                    continue;
                }
            }
            return(new IotHubMessageSink(type, name, inputs, hubOutputName));
        }
        internal static ExtensionProcessorBase DeserializeExtensionProcessorBase(JsonElement element)
        {
            if (element.TryGetProperty("@type", out JsonElement discriminator))
            {
                switch (discriminator.GetString())
                {
                case "#Microsoft.VideoAnalyzer.GrpcExtension": return(GrpcExtension.DeserializeGrpcExtension(element));

                case "#Microsoft.VideoAnalyzer.HttpExtension": return(HttpExtension.DeserializeHttpExtension(element));
                }
            }
            EndpointBase               endpoint        = default;
            ImageProperties            image           = default;
            Optional <SamplingOptions> samplingOptions = default;
            string            type   = default;
            string            name   = default;
            IList <NodeInput> inputs = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("endpoint"))
                {
                    endpoint = EndpointBase.DeserializeEndpointBase(property.Value);
                    continue;
                }
                if (property.NameEquals("image"))
                {
                    image = ImageProperties.DeserializeImageProperties(property.Value);
                    continue;
                }
                if (property.NameEquals("samplingOptions"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    samplingOptions = SamplingOptions.DeserializeSamplingOptions(property.Value);
                    continue;
                }
                if (property.NameEquals("@type"))
                {
                    type = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("name"))
                {
                    name = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("inputs"))
                {
                    List <NodeInput> array = new List <NodeInput>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(NodeInput.DeserializeNodeInput(item));
                    }
                    inputs = array;
                    continue;
                }
            }
            return(new ExtensionProcessorBase(type, name, inputs, endpoint, image, samplingOptions.Value));
        }
示例#12
0
        internal static CognitiveServicesVisionProcessor DeserializeCognitiveServicesVisionProcessor(JsonElement element)
        {
            EndpointBase endpoint = default;
            Optional <ImageProperties>   image           = default;
            Optional <SamplingOptions>   samplingOptions = default;
            SpatialAnalysisOperationBase operation       = default;
            string            type   = default;
            string            name   = default;
            IList <NodeInput> inputs = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("endpoint"))
                {
                    endpoint = EndpointBase.DeserializeEndpointBase(property.Value);
                    continue;
                }
                if (property.NameEquals("image"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    image = ImageProperties.DeserializeImageProperties(property.Value);
                    continue;
                }
                if (property.NameEquals("samplingOptions"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    samplingOptions = SamplingOptions.DeserializeSamplingOptions(property.Value);
                    continue;
                }
                if (property.NameEquals("operation"))
                {
                    operation = SpatialAnalysisOperationBase.DeserializeSpatialAnalysisOperationBase(property.Value);
                    continue;
                }
                if (property.NameEquals("@type"))
                {
                    type = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("name"))
                {
                    name = property.Value.GetString();
                    continue;
                }
                if (property.NameEquals("inputs"))
                {
                    List <NodeInput> array = new List <NodeInput>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(NodeInput.DeserializeNodeInput(item));
                    }
                    inputs = array;
                    continue;
                }
            }
            return(new CognitiveServicesVisionProcessor(type, name, inputs, endpoint, image.Value, samplingOptions.Value, operation));
        }