public WriteStatusResponse ( string code, string description ) : void | ||
code | string | |
description | string | |
return | void |
public void Start(Peer peer, uint publisherId, FlowWriter controller) { if (PublisherId != 0) { if (controller != null) { controller.WriteStatusResponse("Publish.BadName", Name + "is already published"); } } PublisherId = publisherId; //string error; //if (!peer.OnPublish(this, out error)) //{ // if (String.IsNullOrEmpty(error)) error = "Not allowed to publish " + Name; //} _publisher = peer; _controller = controller; _firstKeyFrame = false; foreach (var baseOutStream in OutStreams.OfType <IOutNetStream>()) { baseOutStream.SendPublishNotify(); } if (controller != null) { controller.WriteStatusResponse("Publish.Start", Name + "is now published"); } }
public void Start(Peer peer, uint publisherId, FlowWriter controller) { if (PublisherId != 0) { if (controller != null) { controller.WriteStatusResponse("Publish.BadName", Name + "is already published"); } } PublisherId = publisherId; string error; if (!peer.OnPublish(this, out error)) { if (String.IsNullOrEmpty(error)) { error = "Not allowed to publish " + Name; } } _publisher = peer; _controller = controller; _firstKeyFrame = false; foreach (var listener in Listeners) { listener.Value.StartPublishing(Name); } Flush(); if (controller != null) { controller.WriteStatusResponse("Publish.Start", Name + "is now published"); } }
public Listener AddListener(Peer peer,uint id,FlowWriter writer,bool unbuffered) { if (Listeners.ContainsKey(id)) return Listeners[id]; var listener = new Listener(id, this, writer, unbuffered); string error; if (peer.OnSubscribe(listener,out error)) { Listeners[id] = listener; writer.WriteStatusResponse("Play.Reset", "Playing and resetting " + Name); writer.WriteStatusResponse("Play.Start", "Started playing " + Name); listener.Init(peer); return listener; } if (string.IsNullOrEmpty(error)) { error = "Not authorized to play " + Name; } writer.WriteStatusResponse("Play.Failed", error); throw new Exception(error); }
public Listener AddListener(Peer peer, uint id, FlowWriter writer, bool unbuffered) { if (Listeners.ContainsKey(id)) { return(Listeners[id]); } var listener = new Listener(id, this, writer, unbuffered); string error; if (peer.OnSubscribe(listener, out error)) { Listeners[id] = listener; writer.WriteStatusResponse("Play.Reset", "Playing and resetting " + Name); writer.WriteStatusResponse("Play.Start", "Started playing " + Name); listener.Init(peer); return(listener); } if (string.IsNullOrEmpty(error)) { error = "Not authorized to play " + Name; } writer.WriteStatusResponse("Play.Failed", error); throw new Exception(error); }
public override bool Stop() { if (PublisherId == 0) { return(true); } foreach (var baseOutStream in OutStreams.OfType <IOutNetStream>()) { baseOutStream.SendUnpublishNotify(); } _controller.WriteStatusResponse("Unpublish.Success", Name + " is now unpublished"); Flush(); PublisherId = 0; _publisher = null; return(true); }
public override InNetRtmfpStream PublishStream(Peer peer, uint id, string name, string type, FlowWriter writer) { var session = writer.Band as Session; if (!session.Application.StreamsManager.StreamNameAvailable(name)) { WARN( "Stream name {0} already occupied and application doesn't allow duplicated inbound network streams", name); writer.WriteStatusResponse("Publish.BadName", name + "is not available"); return(null); } var pInNetRtmpStream = new InNetRtmfpStream(session, session.Application.StreamsManager, name); session.Application.OnPublish(this, pInNetRtmpStream, type); pInNetRtmpStream.Start(peer, id, writer); return(pInNetRtmpStream); }
public void ClosePublisher(string code, string description) { if (PublisherId == 0) { return; } if (_controller != null) { if (!string.IsNullOrEmpty(code)) { _controller.WriteStatusResponse(code, description); } _controller.WriteAMFMessage("close"); } else { Logger.WARN("Publisher {0} has no controller to close it", PublisherId); } }
public void Init(/*Peer client*/) { Writer.WriteStatusResponse("Play.Reset", "Playing and resetting " + Name); Writer.WriteStatusResponse("Play.Start", "Started playing " + Name); if (_audioWriter == null) { _audioWriter = Writer.NewStreamWriter(0x08); //_audioWriter.Client = client; } else { Logger.WARN("Listener {0} audio track has already been initialized", Id); } if (_videoWriter == null) { _videoWriter = Writer.NewStreamWriter(0x09); //_videoWriter.Client = client; } else { Logger.WARN("Listener {0} video track has already been initialized", Id); } WriteBounds(); }
public void Start(Peer peer, uint publisherId, FlowWriter controller) { if (PublisherId != 0) { if (controller != null) { controller.WriteStatusResponse("Publish.BadName", Name + "is already published"); } } PublisherId = publisherId; string error; if (!peer.OnPublish(this, out error)) { if (String.IsNullOrEmpty(error)) error = "Not allowed to publish " + Name; } _publisher = peer; _controller = controller; _firstKeyFrame = false; foreach (var listener in Listeners) { listener.Value.StartPublishing(Name); } Flush(); if (controller != null) { controller.WriteStatusResponse("Publish.Start", Name + "is now published"); } }
public void StartPublishing(string name) { _writer.WriteStatusResponse("Play.PublishNotify", name + " is now published"); _firstKeyFrame = false; }
public override InNetRtmfpStream PublishStream(Peer peer, uint id, string name, string type, FlowWriter writer) { var session = writer.Band as Session; if (!session.Application.StreamsManager.StreamNameAvailable(name)) { WARN( "Stream name {0} already occupied and application doesn't allow duplicated inbound network streams", name); writer.WriteStatusResponse("Publish.BadName", name + "is not available"); return null; } var pInNetRtmpStream = new InNetRtmfpStream(session, session.Application.StreamsManager, name); session.Application.OnPublish(this, pInNetRtmpStream, type); pInNetRtmpStream.Start(peer, id, writer); return pInNetRtmpStream; }