Fix WebRTC active producer with backchannel

This commit is contained in:
Alexey Khit
2023-03-12 19:56:15 +03:00
parent 58849fd1e5
commit d686d4f691
2 changed files with 20 additions and 6 deletions

View File

@@ -8,12 +8,23 @@ import (
func (c *Conn) CreateOffer(medias []*streamer.Media) (string, error) {
for _, media := range medias {
if _, err := c.pc.AddTransceiverFromKind(
webrtc.NewRTPCodecType(media.Kind), webrtc.RTPTransceiverInit{
Direction: webrtc.NewRTPTransceiverDirection(media.Direction),
},
); err != nil {
return "", err
switch media.Direction {
case streamer.DirectionRecvonly:
if _, err := c.pc.AddTransceiverFromKind(
webrtc.NewRTPCodecType(media.Kind),
webrtc.RTPTransceiverInit{Direction: webrtc.RTPTransceiverDirectionRecvonly},
); err != nil {
return "", err
}
case streamer.DirectionSendonly:
if _, err := c.pc.AddTransceiverFromTrack(
NewTrack(media.Kind),
webrtc.RTPTransceiverInit{Direction: webrtc.RTPTransceiverDirectionSendonly},
); err != nil {
return "", err
}
case streamer.DirectionSendRecv:
panic("not implemented")
}
}