コード例 #1
0
ファイル: ThreadManager.cs プロジェクト: blobology/FetchRig6
            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);
            }
コード例 #2
0
ファイル: ThreadManager.cs プロジェクト: blobology/FetchRig6
        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);
        }
コード例 #3
0
ファイル: ThreadManager.cs プロジェクト: blobology/FetchRig6
        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");
            }
        }