示例#1
0
 public UnorderedStreamQueue(NodeName name, PayloadPool <TPayload> payloadPool, int limit = int.MaxValue)
 {
     _name        = name;
     _payloadPool = payloadPool;
     _limit       = limit;
     OnChanged    = () => { Core.LogWarning($"Fake activation of {_name}"); };
 }
        public VideoBlenderContext(VideoBlenderSetup setup, PayloadPool <Frame> framePool, IStreamerBase streamer, OverloadController overloadController, Action pushPipeline)
        {
            _name               = new NodeName("VE", null, "BL", 1);
            _fps                = setup.Fps;
            _framePool          = framePool;
            _streamer           = streamer;
            _overloadController = overloadController;
            _pushPipeline       = pushPipeline;
            _delayFromRuntime   = ToTime(setup.DelayFromRuntimeFrames);  // 3 frames in client
            _pushPipelineDelay  = ToTime(setup.PushPipelineDelayFrames); // 3 frames

            Reconfigure(setup);

            _timer = _streamer.Subscribe(15, OnTimer);
            if (setup.Dx != null)
            {
                if (setup.BlendingType == BlendingType.Smart)
                {
                    _directXPipeline       = LoadPipline(BlendingType.Linear, setup.Dx);
                    _directXPipelineLowRes = LoadPipline(BlendingType.BilinearLowRes, setup.Dx);
                }
                else
                {
                    _directXPipeline = LoadPipline(setup.BlendingType, setup.Dx);
                }
            }

            _currentFpsTicks = ToTicks(Core.GetCurrentTime() - 600_000); // -60ms
        }
示例#3
0
 public AudioMixingQueue(NodeName name, PayloadPool <Frame> payloadPool, IStreamerBase streamer,
                         AudioMixingQueueSetup setup)
 {
     _name        = name;
     _payloadPool = payloadPool;
     _setup       = setup;
     OnChanged    = () => { Core.LogWarning($"Fake activation of {_name}"); };
     _timer       = streamer.Subscribe(100, OnTimer);
 }
示例#4
0
        public FpsQueue(NodeName name, ITargetQueue <TPayload> next, IStreamerBase streamerBase, PayloadPool <TPayload> payloadPool, int fps, int maxDeviation, AVRational timeBase,
                        OverloadController overloadController, int version)
        {
            Name                = name;
            _next               = next;
            _payloadPool        = payloadPool;
            Fps                 = fps;
            _maxDeviation       = maxDeviation;
            _overloadController = overloadController;
            _version            = version;
            _statisticKeeper    = new StatisticKeeper <StatisticDataOfFpsQueue>(name);

            if (timeBase.den != 10_000_000)
            {
                throw new InvalidOperationException($"FpsQueue {name} requires correct timeBase (not {timeBase.num}/{timeBase.den})");
            }
        }
 public DuplicateFrameQueue(PayloadPool <Frame> pool)
 {
     _pool = pool;
 }
 public OutputStreamQueue(PayloadPool <TPayload> payloadPool, params int[] sourceIds)
 {
     _payloadPool = payloadPool;
     RegisterSources(sourceIds);
 }
 public DuplicateQueue(PayloadPool <T> pool)
 {
     _pool = pool;
 }
 public OrderedStreamQueue(NodeName name, PayloadPool <TPayload> payloadPool)
 {
     _name        = name;
     _payloadPool = payloadPool;
     OnChanged    = () => { Core.LogWarning($"Fake activation of {_name}"); };
 }
示例#9
0
 public DuplicatePacketQueue(PayloadPool <Packet> pool)
 {
     _pool = pool;
 }