Send the last metadata info to new listeners.
parent
6481884b73
commit
0d8ecc64ad
|
@ -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 {
|
||||||
|
|
Loading…
Reference in New Issue