golanggohlsrtmpwebrtcmedia-serverobs-studiortcprtmp-proxyrtmp-serverrtprtsprtsp-proxyrtsp-relayrtsp-serversrtstreamingwebrtc-proxy
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
721 B
37 lines
721 B
package webrtc |
|
|
|
import ( |
|
"fmt" |
|
|
|
"github.com/pion/sdp/v3" |
|
) |
|
|
|
// TrackCount returns the track count. |
|
func TrackCount(medias []*sdp.MediaDescription) (int, error) { |
|
videoTrack := false |
|
audioTrack := false |
|
trackCount := 0 |
|
|
|
for _, media := range medias { |
|
switch media.MediaName.Media { |
|
case "video": |
|
if videoTrack { |
|
return 0, fmt.Errorf("only a single video and a single audio track are supported") |
|
} |
|
videoTrack = true |
|
|
|
case "audio": |
|
if audioTrack { |
|
return 0, fmt.Errorf("only a single video and a single audio track are supported") |
|
} |
|
audioTrack = true |
|
|
|
default: |
|
return 0, fmt.Errorf("unsupported media '%s'", media.MediaName.Media) |
|
} |
|
|
|
trackCount++ |
|
} |
|
|
|
return trackCount, nil |
|
}
|
|
|