void Setup() { if (graph.architecture != StreamArchitecture.ThreeLevelBasic) { throw new ArgumentException(message: "Only StreamArchitecture.ThreeLevelBasic is currently supported."); } camStreamManagers = new CamStreamManager[graph.nThreadsPerLayer[0]]; for (int j = 0; j < graph.nThreadsPerLayer[0]; j++) { camStreamManagers[j] = new CamStreamManager(messageQueue: messageQueues[0][j], sessionPath: sessionPaths[j], setupStyle: CamStreamManager.CamStreamManagerSetup.BasicStream); } SingleStreamManager.Output[] _singleStreamOutputs = new SingleStreamManager.Output[graph.nThreadsPerLayer[1]]; singleStreamManagers = new SingleStreamManager[graph.nThreadsPerLayer[1]]; for (int j = 0; j < graph.nThreadsPerLayer[1]; j++) { CamStreamManager.Output _camOutput = camStreamManagers[j].output; singleStreamManagers[j] = new SingleStreamManager(camOutputManager: _camOutput, messageQueue: messageQueues[1][j], sessionPath: sessionPaths[j], setupStyle: SingleStreamManager.SingleStreamManangerSetup.BasicStream); _singleStreamOutputs[j] = singleStreamManagers[j].output; } mergeStreamsManager = new MergeStreamsManager(singleStreamOutputManagers: _singleStreamOutputs, messageQueue: messageQueues[2][0], sessionPath: sessionPaths[0], setupStyle: MergeStreamsManager.MergeStreamManangerSetup.BasicStream); }
public SingleStreamManager(CamStreamManager.Output camOutputManager, ConcurrentQueue <ButtonCommands> messageQueue, string sessionPath) { this.messageQueue = messageQueue; this.sessionPath = sessionPath; input = new Input(inputChannels: camOutputManager.outputChannels, streamQueue: camOutputManager.streamQueue); Size _outputChannelSize = new Size(width: 802, height: 550); StreamChannel[] _outputChannels = new StreamChannel[] { new StreamChannel(imageSize: _outputChannelSize) }; output = new Output(outputChannels: _outputChannels); isEncodable = Util.CheckForEncodables(input1: input.isEncodable, input2: output.isEncodable); }
public SingleStreamManager(CamStreamManager.Output camOutputManager, ConcurrentQueue <ButtonCommands> messageQueue, string sessionPath, SingleStreamManangerSetup setupStyle) { this.messageQueue = messageQueue; this.sessionPath = sessionPath; if (setupStyle == SingleStreamManangerSetup.BasicStream) { Size _inputSize = new Size(802, 550); StreamChannel[] _inputChannel = new StreamChannel[1] { new StreamChannel(imageSize: _inputSize, enqueueOrDequeueRate: 1) }; input = new Input(inputChannels: _inputChannel, streamQueue: camOutputManager.streamQueue); Size _outputChannelSize = new Size(width: 802, height: 550); StreamChannel[] _outputChannels = new StreamChannel[1] { new StreamChannel(imageSize: _outputChannelSize) }; output = new Output(outputChannels: _outputChannels); isEncodable = false; } else if (setupStyle == SingleStreamManangerSetup.Advanced) { Size _inputSize = new Size(802, 550); StreamChannel[] _inputChannel = new StreamChannel[1] { new StreamChannel(imageSize: _inputSize, enqueueOrDequeueRate: 1) }; input = new Input(inputChannels: _inputChannel, streamQueue: camOutputManager.streamQueue); Size _outputChannelSize = new Size(width: 802, height: 550); StreamChannel[] _outputChannels = new StreamChannel[2] { new StreamChannel(imageSize: _outputChannelSize, enqueueOrDequeueRate: 1), new StreamChannel(imageSize: _outputChannelSize, enqueueOrDequeueRate: 1) }; output = new Output(outputChannels: _outputChannels); isEncodable = false; } else { throw new ArgumentException(message: "Currently unsupported SingleStreamManagerSetup Style"); } }