Stream bucket manager (#12)

* refactor webrtc.

* bind track with a single connection.

* audio+video codec.

* move stream selection to bucket manager.

* audio w/o bucket manager.

* revert peer changes.

* return video IDs.

* destroy & recreate all.

* add video ID change.

* Track -> Recevier.
This commit is contained in:
Miroslav Šedivý
2022-10-17 13:39:31 +02:00
committed by GitHub
parent 095f9fe8ee
commit 5ad5daa6bb
11 changed files with 438 additions and 356 deletions

View File

@ -19,6 +19,19 @@ var (
type Sample media.Sample
type Receiver interface {
SetStream(stream StreamSinkManager) error
RemoveStream()
OnVideoIdChange(f func(string) error)
}
type BucketsManager interface {
IDs() []string
Codec() codec.RTPCodec
SetReceiver(receiver Receiver) error
RemoveReceiver(receiver Receiver) error
}
type BroadcastManager interface {
Start(url string) error
Stop()
@ -60,8 +73,7 @@ type CaptureManager interface {
Broadcast() BroadcastManager
Screencast() ScreencastManager
Audio() StreamSinkManager
Video(videoID string) (StreamSinkManager, bool)
VideoIDs() []string
Video() BucketsManager
Webcam() StreamSrcManager
Microphone() StreamSrcManager