mirror of
https://github.com/aler9/rtsp-simple-server
synced 2025-10-05 23:56:54 +08:00
38 lines
721 B
Go
38 lines
721 B
Go
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
|
|
}
|