Send the last metadata info to new listeners.

master
Icedream 2018-07-03 08:18:36 +02:00
parent 6481884b73
commit 0d8ecc64ad
Signed by: icedream
GPG Key ID: 1573F6D8EFE4D0CF
1 changed files with 6 additions and 0 deletions

View File

@ -17,6 +17,8 @@ type Channel struct {
OutputStreams map[string]*media.MediaStream OutputStreams map[string]*media.MediaStream
Events *pubsub.PubSub Events *pubsub.PubSub
lastMetadata map[string]string
} }
func (channel *Channel) AddInputStream(id string) *media.MediaStream { func (channel *Channel) AddInputStream(id string) *media.MediaStream {
@ -50,6 +52,7 @@ func (channel *Channel) AddOutputContainer(id string) *media.MediaStreamContaine
} }
func (channel *Channel) SetMetadata(data map[string]string) { func (channel *Channel) SetMetadata(data map[string]string) {
channel.lastMetadata = data
channel.Events.Pub(data, "metadata") channel.Events.Pub(data, "metadata")
} }
@ -57,6 +60,9 @@ func (channel *Channel) Metadata() chan map[string]string {
outC := make(chan map[string]string) outC := make(chan map[string]string)
go func() { go func() {
defer close(outC) defer close(outC)
if channel.lastMetadata != nil {
outC <- channel.lastMetadata
}
c := channel.Events.Sub("metadata") c := channel.Events.Sub("metadata")
forloop: forloop:
for event := range c { for event := range c {