mirror of
https://github.com/ossrs/srs.git
synced 2025-02-15 04:42:04 +00:00
27 lines
826 B
Go
27 lines
826 B
Go
package rtc
|
|
|
|
import (
|
|
"github.com/pion/rtp"
|
|
"github.com/pion/rtp/codecs"
|
|
"github.com/pion/webrtc/v3"
|
|
"strings"
|
|
)
|
|
|
|
func payloaderForCodec(codec webrtc.RTPCodecCapability) (rtp.Payloader, error) {
|
|
switch strings.ToLower(codec.MimeType) {
|
|
case strings.ToLower(webrtc.MimeTypeH264):
|
|
return &codecs.H264Payloader{}, nil
|
|
case strings.ToLower(webrtc.MimeTypeOpus):
|
|
return &codecs.OpusPayloader{}, nil
|
|
case strings.ToLower(webrtc.MimeTypeVP8):
|
|
return &codecs.VP8Payloader{}, nil
|
|
case strings.ToLower(webrtc.MimeTypeVP9):
|
|
return &codecs.VP9Payloader{}, nil
|
|
case strings.ToLower(webrtc.MimeTypeG722):
|
|
return &codecs.G722Payloader{}, nil
|
|
case strings.ToLower(webrtc.MimeTypePCMU), strings.ToLower(webrtc.MimeTypePCMA):
|
|
return &codecs.G711Payloader{}, nil
|
|
default:
|
|
return nil, webrtc.ErrNoPayloaderForCodec
|
|
}
|
|
}
|