コード例 #1
0
 public BroadcastScope(IScope parent, String name) : base(parent, Constants.BroadcastScopeType, name, false)
 {
     _pipe = new InMemoryPushPushPipe();
     _pipe.AddPipeConnectionListener(this);
     _compCounter      = 0;
     _hasRemoved       = false;
     _keepOnDisconnect = true;
 }
コード例 #2
0
 public BroadcastScope(IScope parent, string name) : base(parent, "bs", name, false)
 {
     this._pipe = new InMemoryPushPushPipe();
     this._pipe.AddPipeConnectionListener(this);
     this._compCounter      = 0;
     this._hasRemoved       = false;
     base._keepOnDisconnect = true;
 }
コード例 #3
0
        public IMessageOutput GetConsumerOutput(IClientStream stream)
        {
            IStreamCapableConnection connection = stream.Connection;

            if (!((connection != null) && (connection is RtmpConnection)))
            {
                return(null);
            }
            RtmpConnection connection2 = connection as RtmpConnection;
            OutputStream   stream2     = connection2.CreateOutputStream(stream.StreamId);
            IPipe          pipe        = new InMemoryPushPushPipe();

            pipe.Subscribe(new ConnectionConsumer(connection2, stream2.Video.ChannelId, stream2.Audio.ChannelId, stream2.Data.ChannelId), null);
            return(pipe);
        }
コード例 #4
0
        public IMessageOutput GetConsumerOutput(IClientStream stream)
        {
            IStreamCapableConnection streamConnection = stream.Connection;

            if (streamConnection == null || !(streamConnection is RtmpConnection))
            {
                return(null);
            }
            RtmpConnection connection = streamConnection as RtmpConnection;
            // TODO Better manage channels.
            // now we use OutputStream as a channel wrapper.
            OutputStream outputStream = connection.CreateOutputStream(stream.StreamId);
            IPipe        pipe         = new InMemoryPushPushPipe();

            pipe.Subscribe(new ConnectionConsumer(connection, outputStream.Video.ChannelId, outputStream.Audio.ChannelId, outputStream.Data.ChannelId), null);
            return(pipe);
        }