sdp

package module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 6, 2021 License: MIT Imports: 8 Imported by: 0

README

sdp

sdp encode/decode for golang

How to use


const sdpstr = "v=1\r\n" +
	"o=- 4327261771880257373 2 IN IP4 127.0.0.1\r\n" +
	"s=-\r\n" +
	"t=1 1\r\n" +
	"a=group:BUNDLE audio video\r\n" +
	"a=msid-semantic: WMS xIKmAwWv4ft4ULxNJGhkHzvPaCkc8EKo4SGj\r\n" +
	"m=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 110 112 113 126\r\n" +
	"c=IN IP4 0.0.0.0\r\n" +
	"a=rtcp:9 IN IP4 0.0.0.0\r\n" +
	"a=ice-ufrag:ez5G\r\n" +
	"a=ice-pwd:1F1qS++jzWLSQi0qQDZkX/QV\r\n" +
	"a=candidate:1 1 UDP 33554431 35.188.215.104 59110 typ host\r\n" +
	"a=fingerprint:sha-256 D2:FA:0E:C3:22:59:5E:14:95:69:92:3D:13:B4:84:24:2C:C2:A2:C0:3E:FD:34:8E:5E:EA:6F:AF:52:CE:E6:0F\r\n" +
	"a=setup:actpass\r\n" +
	"a=connection:new\r\n" +
	"a=mid:audio\r\n" +
	"a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\n" +
	"a=sendrecv\r\n" +
	"a=rtcp-mux\r\n" +
	"a=rtpmap:111 opus/48000/2\r\n" +
	"a=rtcp-fb:111 transport-cc\r\n" +
	"a=fmtp:111 minptime=10;useinbandfec=1\r\n" +
	"a=rtpmap:103 ISAC/16000\r\n" +
	"a=rtpmap:104 ISAC/32000\r\n" +
	"a=rtpmap:9 G722/8000\r\n" +
	"a=rtpmap:0 PCMU/8000\r\n" +
	"a=rtpmap:8 PCMA/8000\r\n" +
	"a=rtpmap:106 CN/32000\r\n" +
	"a=rtpmap:105 CN/16000\r\n" +
	"a=rtpmap:13 CN/8000\r\n" +
	"a=rtpmap:110 telephone-event/48000\r\n" +
	"a=rtpmap:112 telephone-event/32000\r\n" +
	"a=rtpmap:113 telephone-event/16000\r\n" +
	"a=rtpmap:126 telephone-event/8000\r\n" +
	"a=ssrc:3510681183 cname:loqPWNg7JMmrFUnr\r\n" +
	"a=ssrc:3510681183 msid:xIKmAwWv4ft4ULxNJGhkHzvPaCkc8EKo4SGj 7ea47500-22eb-4815-a899-c74ef321b6ee\r\n" +
	"a=ssrc:3510681183 mslabel:xIKmAwWv4ft4ULxNJGhkHzvPaCkc8EKo4SGj\r\n" +
	"a=ssrc:3510681183 label:7ea47500-22eb-4815-a899-c74ef321b6ee\r\n" +
	"m=video 9 UDP/TLS/RTP/SAVPF 96 98 100 102 127 125 97 99 101 124\r\n" +
	"c=IN IP4 0.0.0.0\r\n" +
	"a=connection:new\r\n" +
	"a=rtcp:9 IN IP4 0.0.0.0\r\n" +
	"a=ice-ufrag:ez5G\r\n" +
	"a=ice-pwd:1F1qS++jzWLSQi0qQDZkX/QV\r\n" +
	"a=candidate:1 1 UDP 33554431 35.188.215.104 59110 typ host\r\n" +
	"a=fingerprint:sha-256 D2:FA:0E:C3:22:59:5E:14:95:69:92:3D:13:B4:84:24:2C:C2:A2:C0:3E:FD:34:8E:5E:EA:6F:AF:52:CE:E6:0F\r\n" +
	"a=setup:actpass\r\n" +
	"a=mid:video\r\n" +
	"a=extmap:2 urn:ietf:params:rtp-hdrext:toffset\r\n" +
	"a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\n" +
	"a=extmap:4 urn:3gpp:video-orientation\r\n" +
	"a=extmap:5 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\n" +
	"a=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\n" +
	"a=sendrecv\r\n" +
	"a=rtcp-mux\r\n" +
	"a=rtcp-rsize\r\n" +
	"a=rtpmap:96 VP8/90000\r\n" +
	"a=rtcp-fb:96 ccm fir\r\n" +
	"a=rtcp-fb:96 nack\r\n" +
	"a=rtcp-fb:96 nack pli\r\n" +
	"a=rtcp-fb:96 goog-remb\r\n" +
	"a=rtcp-fb:96 transport-cc\r\n" +
	"a=rtpmap:98 VP9/90000\r\n" +
	"a=rtcp-fb:98 ccm fir\r\n" +
	"a=rtcp-fb:98 nack\r\n" +
	"a=rtcp-fb:98 nack pli\r\n" +
	"a=rtcp-fb:98 goog-remb\r\n" +
	"a=rtcp-fb:98 transport-cc\r\n" +
	"a=rtpmap:100 H264/90000\r\n" +
	"a=rtcp-fb:100 ccm fir\r\n" +
	"a=rtcp-fb:100 nack\r\n" +
	"a=rtcp-fb:100 nack pli\r\n" +
	"a=rtcp-fb:100 goog-remb\r\n" +
	"a=rtcp-fb:100 transport-cc\r\n" +
	"a=fmtp:100 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\n" +
	"a=rtpmap:102 red/90000\r\n" +
	"a=rtpmap:127 ulpfec/90000\r\n" +
	"a=rtpmap:125 flexfec-03/90000\r\n" +
	"a=rtcp-fb:125 ccm fir\r\n" +
	"a=rtcp-fb:125 nack\r\n" +
	"a=rtcp-fb:125 nack pli\r\n" +
	"a=rtcp-fb:125 goog-remb\r\n" +
	"a=rtcp-fb:125 transport-cc\r\n" +
	"a=fmtp:125 repair-window=10000000\r\n" +
	"a=rtpmap:97 rtx/90000\r\n" +
	"a=fmtp:97 apt=96\r\n" +
	"a=rtpmap:99 rtx/90000\r\n" +
	"a=fmtp:99 apt=98\r\n" +
	"a=rtpmap:101 rtx/90000\r\n" +
	"a=fmtp:101 apt=100\r\n" +
	"a=rtpmap:124 rtx/90000\r\n" +
	"a=fmtp:124 apt=102\r\n" +
	"a=ssrc-group:FID 3004364195 1126032854\r\n" +
	"a=ssrc-group:FEC-FR 3004364195 1080772241\r\n" +
	"a=ssrc:3004364195 cname:loqPWNg7JMmrFUnr\r\n" +
	"a=ssrc:3004364195 msid:xIKmAwWv4ft4ULxNJGhkHzvPaCkc8EKo4SGj cf093ab0-0b28-4930-8fe1-7ca8d529be25\r\n" +
	"a=ssrc:3004364195 mslabel:xIKmAwWv4ft4ULxNJGhkHzvPaCkc8EKo4SGj\r\n" +
	"a=ssrc:3004364195 label:cf093ab0-0b28-4930-8fe1-7ca8d529be25\r\n" +
	"a=ssrc:1126032854 cname:loqPWNg7JMmrFUnr\r\n" +
	"a=ssrc:1126032854 msid:xIKmAwWv4ft4ULxNJGhkHzvPaCkc8EKo4SGj cf093ab0-0b28-4930-8fe1-7ca8d529be25\r\n" +
	"a=ssrc:1126032854 mslabel:xIKmAwWv4ft4ULxNJGhkHzvPaCkc8EKo4SGj\r\n" +
	"a=ssrc:1126032854 label:cf093ab0-0b28-4930-8fe1-7ca8d529be25\r\n" +
	"a=ssrc:1080772241 cname:loqPWNg7JMmrFUnr\r\n" +
	"a=ssrc:1080772241 msid:xIKmAwWv4ft4ULxNJGhkHzvPaCkc8EKo4SGj cf093ab0-0b28-4930-8fe1-7ca8d529be25\r\n" +
	"a=ssrc:1080772241 mslabel:xIKmAwWv4ft4ULxNJGhkHzvPaCkc8EKo4SGj\r\n" +
	"a=ssrc:1080772241 label:cf093ab0-0b28-4930-8fe1-7ca8d529be25\r\n"


offer, err := Parse(sdpstr)
if err != nil {
    panic(err)
}


mediaInfo := offer.GetMedia("audio")

codecInfo := mediaInfo.GetCodecForType(111)

if codecInfo.GetCodec() != "opus" {
    panic("can not find opus codec")
}

if len(offer.GetMedias()) != 2 {
    panic("parse media error")
}

dtls := offer.GetDTLS()

if dtls.GetHash() != "sha-256" {
    panic("parse dtls error")
}



fmt.Println(offer.String())

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CodecMapFromNames

func CodecMapFromNames(names []string, rtx bool, rtcpfbs []*RTCPFeedbackInfo) map[string]*CodecInfo

Types

type CandidateInfo

type CandidateInfo struct {
	// contains filtered or unexported fields
}

func NewCandidateInfo

func NewCandidateInfo(foundation string, componentID int, transport string,
	priority int, address string, port int, ctype string, relAddr string, relPort int) *CandidateInfo

func (*CandidateInfo) Clone

func (c *CandidateInfo) Clone() *CandidateInfo

func (*CandidateInfo) GetAddress

func (c *CandidateInfo) GetAddress() string

func (*CandidateInfo) GetComponentID

func (c *CandidateInfo) GetComponentID() int

func (*CandidateInfo) GetFoundation

func (c *CandidateInfo) GetFoundation() string

func (*CandidateInfo) GetPort

func (c *CandidateInfo) GetPort() int

func (*CandidateInfo) GetPriority

func (c *CandidateInfo) GetPriority() int

func (*CandidateInfo) GetRelAddr

func (c *CandidateInfo) GetRelAddr() string

func (*CandidateInfo) GetRelPort

func (c *CandidateInfo) GetRelPort() int

func (*CandidateInfo) GetTransport

func (c *CandidateInfo) GetTransport() string

func (*CandidateInfo) GetType

func (c *CandidateInfo) GetType() string

type Capability

type Capability struct {
	Codecs     []string        `json:"codecs"`
	Rtx        bool            `json:"rtx,omitempty"`
	Rtcpfbs    []*RtcpFeedback `json:"rtcpfbs,omitempty"`
	Extensions []string        `json:"extensions,omitempty"`
	Simulcast  bool            `json:"simulcast,omitempty"`
}

func CapabilityFromJSON

func CapabilityFromJSON(cap []byte) (*Capability, error)

type CodecInfo

type CodecInfo struct {
	// contains filtered or unexported fields
}

func NewCodecInfo

func NewCodecInfo(codec string, ctype int) *CodecInfo

func (*CodecInfo) AddParam

func (c *CodecInfo) AddParam(key, value string)

func (*CodecInfo) AddParams

func (c *CodecInfo) AddParams(params map[string]string)

func (*CodecInfo) AddRTCPFeedback

func (c *CodecInfo) AddRTCPFeedback(rtcpfb *RTCPFeedbackInfo)

func (*CodecInfo) Clone

func (c *CodecInfo) Clone() *CodecInfo

func (*CodecInfo) GetCodec

func (c *CodecInfo) GetCodec() string

func (*CodecInfo) GetParam

func (c *CodecInfo) GetParam(key string) string

func (*CodecInfo) GetParams

func (c *CodecInfo) GetParams() map[string]string

func (*CodecInfo) GetRTCPFeedbacks

func (c *CodecInfo) GetRTCPFeedbacks() []*RTCPFeedbackInfo

func (*CodecInfo) GetRTX

func (c *CodecInfo) GetRTX() int

func (*CodecInfo) GetType

func (c *CodecInfo) GetType() int

func (*CodecInfo) HasParam

func (c *CodecInfo) HasParam(key string) bool

func (*CodecInfo) HasRTX

func (c *CodecInfo) HasRTX() bool

func (*CodecInfo) SetRTX

func (c *CodecInfo) SetRTX(rtx int)

func (*CodecInfo) SetType

func (c *CodecInfo) SetType(ctype int)

type CryptoInfo

type CryptoInfo struct {
	// contains filtered or unexported fields
}

func NewCryptoInfo

func NewCryptoInfo(tag int, cipherSuite string, keyParams string, sessionParams string) *CryptoInfo

func (*CryptoInfo) Clone

func (s *CryptoInfo) Clone() *CryptoInfo

func (*CryptoInfo) GetCipherSuite

func (s *CryptoInfo) GetCipherSuite() string

func (*CryptoInfo) GetKeyParams

func (s *CryptoInfo) GetKeyParams() string

func (*CryptoInfo) GetSessionParams

func (s *CryptoInfo) GetSessionParams() string

func (*CryptoInfo) GetTag

func (s *CryptoInfo) GetTag() int

type DTLSInfo

type DTLSInfo struct {
	// contains filtered or unexported fields
}

func NewDTLSInfo

func NewDTLSInfo(setup Setup, hash string, fingerprint string) *DTLSInfo

func (*DTLSInfo) Clone

func (d *DTLSInfo) Clone() *DTLSInfo

func (*DTLSInfo) GetFingerprint

func (d *DTLSInfo) GetFingerprint() string

func (*DTLSInfo) GetHash

func (d *DTLSInfo) GetHash() string

func (*DTLSInfo) GetSetup

func (d *DTLSInfo) GetSetup() Setup

func (*DTLSInfo) SetSetup

func (d *DTLSInfo) SetSetup(setup Setup)

type Direction

type Direction uint8
const (
	SENDRECV Direction = iota + 1
	SENDONLY
	RECVONLY
	INACTIVE
)

func DirectionbyValue

func DirectionbyValue(direction string) Direction

func (Direction) Reverse

func (d Direction) Reverse() Direction

func (Direction) String

func (d Direction) String() string

type DirectionWay

type DirectionWay uint8
const (
	SEND DirectionWay = iota + 1
	RECV
)

func DirectionWaybyValue

func DirectionWaybyValue(d string) DirectionWay

func (DirectionWay) Reverse

func (d DirectionWay) Reverse() DirectionWay

func (DirectionWay) String

func (d DirectionWay) String() string

type ICEInfo

type ICEInfo struct {
	// contains filtered or unexported fields
}

func GenerateICEInfo

func GenerateICEInfo(lite bool) *ICEInfo

func ICEInfoGenerate

func ICEInfoGenerate(lite bool) *ICEInfo

func NewICEInfo

func NewICEInfo(ufrag, password string) *ICEInfo

func (*ICEInfo) Clone

func (c *ICEInfo) Clone() *ICEInfo

func (*ICEInfo) GetPassword

func (c *ICEInfo) GetPassword() string

func (*ICEInfo) GetUfrag

func (c *ICEInfo) GetUfrag() string

func (*ICEInfo) IsEndOfCandidate

func (c *ICEInfo) IsEndOfCandidate() bool

func (*ICEInfo) IsLite

func (c *ICEInfo) IsLite() bool

func (*ICEInfo) SetEndOfCandidate

func (c *ICEInfo) SetEndOfCandidate(endOfCandidate bool)

func (*ICEInfo) SetLite

func (c *ICEInfo) SetLite(lite bool)

type MediaInfo

type MediaInfo struct {
	// contains filtered or unexported fields
}

func MediaInfoCreate

func MediaInfoCreate(mType string, capability *Capability) *MediaInfo

func NewMediaInfo

func NewMediaInfo(id string, mtype string) *MediaInfo

func (*MediaInfo) AddCodec

func (m *MediaInfo) AddCodec(codecInfo *CodecInfo)

func (*MediaInfo) AddExtension

func (m *MediaInfo) AddExtension(id int, name string)

func (*MediaInfo) AddRID

func (m *MediaInfo) AddRID(ridInfo *RIDInfo)

func (*MediaInfo) Answer

func (m *MediaInfo) Answer(supportedMedia *MediaInfo) *MediaInfo

func (*MediaInfo) AnswerCapability

func (m *MediaInfo) AnswerCapability(cap *Capability) *MediaInfo

func (*MediaInfo) Clone

func (m *MediaInfo) Clone() *MediaInfo

func (*MediaInfo) GetBitrate

func (m *MediaInfo) GetBitrate() int

func (*MediaInfo) GetCodec

func (m *MediaInfo) GetCodec(codec string) *CodecInfo

GetCodec should return array

func (*MediaInfo) GetCodecForType

func (m *MediaInfo) GetCodecForType(pt int) *CodecInfo

func (*MediaInfo) GetCodecs

func (m *MediaInfo) GetCodecs() map[int]*CodecInfo

func (*MediaInfo) GetDirection

func (m *MediaInfo) GetDirection() Direction

func (*MediaInfo) GetExtensions

func (m *MediaInfo) GetExtensions() map[int]string

func (*MediaInfo) GetID

func (m *MediaInfo) GetID() string

func (*MediaInfo) GetRID

func (m *MediaInfo) GetRID(id string) *RIDInfo

func (*MediaInfo) GetRIDS

func (m *MediaInfo) GetRIDS() map[string]*RIDInfo

func (*MediaInfo) GetSimulcast

func (m *MediaInfo) GetSimulcast() bool

func (*MediaInfo) GetSimulcastInfo

func (m *MediaInfo) GetSimulcastInfo() *SimulcastInfo

func (*MediaInfo) GetType

func (m *MediaInfo) GetType() string

func (*MediaInfo) HasExtension

func (m *MediaInfo) HasExtension(uri string) bool

func (*MediaInfo) HasRTX

func (m *MediaInfo) HasRTX() bool

func (*MediaInfo) SetBitrate

func (m *MediaInfo) SetBitrate(bitrate int)

func (*MediaInfo) SetCodecs

func (m *MediaInfo) SetCodecs(codecs map[int]*CodecInfo)

func (*MediaInfo) SetDirection

func (m *MediaInfo) SetDirection(direction Direction)

func (*MediaInfo) SetID

func (m *MediaInfo) SetID(id string)

func (*MediaInfo) SetSimulcast

func (m *MediaInfo) SetSimulcast(simulcast bool)

func (*MediaInfo) SetSimulcastInfo

func (m *MediaInfo) SetSimulcastInfo(info *SimulcastInfo)

type RIDInfo

type RIDInfo struct {
	// contains filtered or unexported fields
}

func NewRIDInfo

func NewRIDInfo(id string, direction DirectionWay) *RIDInfo

func (*RIDInfo) AddParam

func (r *RIDInfo) AddParam(id, param string)

func (*RIDInfo) Clone

func (r *RIDInfo) Clone() *RIDInfo

func (*RIDInfo) GetDirection

func (r *RIDInfo) GetDirection() DirectionWay

func (*RIDInfo) GetFormats

func (r *RIDInfo) GetFormats() []int

func (*RIDInfo) GetID

func (r *RIDInfo) GetID() string

func (*RIDInfo) GetParams

func (r *RIDInfo) GetParams() map[string]string

func (*RIDInfo) SetDirection

func (r *RIDInfo) SetDirection(direction DirectionWay)

func (*RIDInfo) SetFormats

func (r *RIDInfo) SetFormats(formats []string)

func (*RIDInfo) SetParams

func (r *RIDInfo) SetParams(params map[string]string)

type RTCPFeedbackInfo

type RTCPFeedbackInfo struct {
	// contains filtered or unexported fields
}

func NewRTCPFeedbackInfo

func NewRTCPFeedbackInfo(id string, params []string) *RTCPFeedbackInfo

func (*RTCPFeedbackInfo) Clone

func (r *RTCPFeedbackInfo) Clone() *RTCPFeedbackInfo

func (*RTCPFeedbackInfo) GetID

func (r *RTCPFeedbackInfo) GetID() string

func (*RTCPFeedbackInfo) GetParams

func (r *RTCPFeedbackInfo) GetParams() []string

type RtcpFeedback

type RtcpFeedback struct {
	ID     string   `json:"id,omitempty"`
	Params []string `json:"params,omitempty"`
}

type SDPInfo

type SDPInfo struct {
	// contains filtered or unexported fields
}

func Create

func Create(ice *ICEInfo, dtls *DTLSInfo, candidates []*CandidateInfo, capabilities map[string]*Capability) *SDPInfo

func Create2

func Create2(capabilities map[string]*Capability) *SDPInfo

func NewSDPInfo

func NewSDPInfo() *SDPInfo

func Parse

func Parse(sdp string) (*SDPInfo, error)

func (*SDPInfo) AddCandidate

func (s *SDPInfo) AddCandidate(candidate *CandidateInfo)

func (*SDPInfo) AddCandidates

func (s *SDPInfo) AddCandidates(candidates []*CandidateInfo)

func (*SDPInfo) AddMedia

func (s *SDPInfo) AddMedia(media *MediaInfo)

func (*SDPInfo) AddStream

func (s *SDPInfo) AddStream(stream *StreamInfo)

func (*SDPInfo) Answer

func (s *SDPInfo) Answer(ice *ICEInfo, dtls *DTLSInfo, candidates []*CandidateInfo, medias map[string]*Capability) *SDPInfo

func (*SDPInfo) Clone

func (s *SDPInfo) Clone() *SDPInfo

func (*SDPInfo) GetAudioMedia

func (s *SDPInfo) GetAudioMedia() *MediaInfo

func (*SDPInfo) GetCandidates

func (s *SDPInfo) GetCandidates() []*CandidateInfo

func (*SDPInfo) GetCrypto

func (s *SDPInfo) GetCrypto() *CryptoInfo

func (*SDPInfo) GetDTLS

func (s *SDPInfo) GetDTLS() *DTLSInfo

func (*SDPInfo) GetFirstStream

func (s *SDPInfo) GetFirstStream() *StreamInfo

func (*SDPInfo) GetICE

func (s *SDPInfo) GetICE() *ICEInfo

func (*SDPInfo) GetMedia

func (s *SDPInfo) GetMedia(mtype string) *MediaInfo

func (*SDPInfo) GetMediaByID

func (s *SDPInfo) GetMediaByID(mid string) *MediaInfo

func (*SDPInfo) GetMedias

func (s *SDPInfo) GetMedias() []*MediaInfo

func (*SDPInfo) GetMediasByType

func (s *SDPInfo) GetMediasByType(mtype string) []*MediaInfo

func (*SDPInfo) GetStream

func (s *SDPInfo) GetStream(id string) *StreamInfo

func (*SDPInfo) GetStreamByMediaID

func (s *SDPInfo) GetStreamByMediaID(mid string) *StreamInfo

func (*SDPInfo) GetStreams

func (s *SDPInfo) GetStreams() map[string]*StreamInfo

func (*SDPInfo) GetTrackByMediaID

func (s *SDPInfo) GetTrackByMediaID(mid string) *TrackInfo

func (*SDPInfo) GetVersion

func (s *SDPInfo) GetVersion() int

func (*SDPInfo) GetVideoMedia

func (s *SDPInfo) GetVideoMedia() *MediaInfo

func (*SDPInfo) RemoveAllStreams

func (s *SDPInfo) RemoveAllStreams()

func (*SDPInfo) RemoveStream

func (s *SDPInfo) RemoveStream(stream *StreamInfo)

func (*SDPInfo) ReplaceMedia

func (s *SDPInfo) ReplaceMedia(media *MediaInfo) bool

func (*SDPInfo) SetCrypto

func (s *SDPInfo) SetCrypto(crypto *CryptoInfo)

func (*SDPInfo) SetDTLS

func (s *SDPInfo) SetDTLS(dtls *DTLSInfo)

func (*SDPInfo) SetICE

func (s *SDPInfo) SetICE(ice *ICEInfo)

func (*SDPInfo) SetVersion

func (s *SDPInfo) SetVersion(version int)

func (*SDPInfo) String

func (s *SDPInfo) String() string

func (*SDPInfo) Unify

func (s *SDPInfo) Unify() *SDPInfo

Unify return an unified plan version of the SDP info

type Setup

type Setup string
const (
	SETUPACTIVE   Setup = "active"
	SETUPPASSIVE  Setup = "passive"
	SETUPACTPASS  Setup = "actpass"
	SETUPINACTIVE Setup = "inactive"
)

func SetupByValue

func SetupByValue(s string) Setup

func (Setup) Reverse

func (s Setup) Reverse() Setup

func (Setup) String

func (s Setup) String() string

type SimulcastInfo

type SimulcastInfo struct {
	// contains filtered or unexported fields
}

func NewSimulcastInfo

func NewSimulcastInfo() *SimulcastInfo

func (*SimulcastInfo) AddSimulcastAlternativeStreams

func (s *SimulcastInfo) AddSimulcastAlternativeStreams(direction DirectionWay, streams []*SimulcastStreamInfo)

func (*SimulcastInfo) AddSimulcastStream

func (s *SimulcastInfo) AddSimulcastStream(direction DirectionWay, stream *SimulcastStreamInfo)

func (*SimulcastInfo) Clone

func (s *SimulcastInfo) Clone() *SimulcastInfo

func (*SimulcastInfo) GetSimulcastStreams

func (s *SimulcastInfo) GetSimulcastStreams(direction DirectionWay) [][]*SimulcastStreamInfo

type SimulcastStreamInfo

type SimulcastStreamInfo struct {
	// contains filtered or unexported fields
}

func NewSimulcastStreamInfo

func NewSimulcastStreamInfo(id string, paused bool) *SimulcastStreamInfo

func (*SimulcastStreamInfo) Clone

func (*SimulcastStreamInfo) GetID

func (s *SimulcastStreamInfo) GetID() string

func (*SimulcastStreamInfo) IsPaused

func (s *SimulcastStreamInfo) IsPaused() bool

type SourceGroupInfo

type SourceGroupInfo struct {
	// contains filtered or unexported fields
}

func NewSourceGroupInfo

func NewSourceGroupInfo(semantics string, ssrcs []uint) *SourceGroupInfo

func (*SourceGroupInfo) Clone

func (s *SourceGroupInfo) Clone() *SourceGroupInfo

func (*SourceGroupInfo) GetSSRCs

func (s *SourceGroupInfo) GetSSRCs() []uint

func (*SourceGroupInfo) GetSemantics

func (s *SourceGroupInfo) GetSemantics() string

type SourceInfo

type SourceInfo struct {
	// contains filtered or unexported fields
}

func NewSourceInfo

func NewSourceInfo(ssrc uint) *SourceInfo

func (*SourceInfo) Clone

func (s *SourceInfo) Clone() *SourceInfo

func (*SourceInfo) GetCName

func (s *SourceInfo) GetCName() string

func (*SourceInfo) GetSSRC

func (s *SourceInfo) GetSSRC() uint

func (*SourceInfo) GetStreamID

func (s *SourceInfo) GetStreamID() string

func (*SourceInfo) GetTrackID

func (s *SourceInfo) GetTrackID() string

func (*SourceInfo) SetCName

func (s *SourceInfo) SetCName(cname string)

func (*SourceInfo) SetStreamID

func (s *SourceInfo) SetStreamID(streamID string)

func (*SourceInfo) SetTrackID

func (s *SourceInfo) SetTrackID(trackID string)

type StreamInfo

type StreamInfo struct {
	// contains filtered or unexported fields
}

func NewStreamInfo

func NewStreamInfo(streamID string) *StreamInfo

func (*StreamInfo) AddTrack

func (s *StreamInfo) AddTrack(track *TrackInfo)

func (*StreamInfo) Clone

func (s *StreamInfo) Clone() *StreamInfo

func (*StreamInfo) GetFirstTrack

func (s *StreamInfo) GetFirstTrack(media string) *TrackInfo

func (*StreamInfo) GetID

func (s *StreamInfo) GetID() string

func (*StreamInfo) GetTrack

func (s *StreamInfo) GetTrack(trackID string) *TrackInfo

func (*StreamInfo) GetTracks

func (s *StreamInfo) GetTracks() map[string]*TrackInfo

func (*StreamInfo) RemoveAllTracks

func (s *StreamInfo) RemoveAllTracks()

func (*StreamInfo) RemoveTrack

func (s *StreamInfo) RemoveTrack(track *TrackInfo)

func (*StreamInfo) RemoveTrackById

func (s *StreamInfo) RemoveTrackById(trackId string)

type TrackEncodingInfo

type TrackEncodingInfo struct {
	// contains filtered or unexported fields
}

func NewTrackEncodingInfo

func NewTrackEncodingInfo(id string, paused bool) *TrackEncodingInfo

func (*TrackEncodingInfo) AddCodec

func (t *TrackEncodingInfo) AddCodec(codec *CodecInfo)

func (*TrackEncodingInfo) AddParam

func (t *TrackEncodingInfo) AddParam(id, param string)

func (*TrackEncodingInfo) Clone

func (*TrackEncodingInfo) GetCodecs

func (t *TrackEncodingInfo) GetCodecs() map[string]*CodecInfo

func (*TrackEncodingInfo) GetID

func (t *TrackEncodingInfo) GetID() string

func (*TrackEncodingInfo) GetParams

func (t *TrackEncodingInfo) GetParams() map[string]string

func (*TrackEncodingInfo) IsPaused

func (t *TrackEncodingInfo) IsPaused() bool

func (*TrackEncodingInfo) SetParams

func (t *TrackEncodingInfo) SetParams(params map[string]string)

type TrackInfo

type TrackInfo struct {
	// contains filtered or unexported fields
}

func NewTrackInfo

func NewTrackInfo(id, media string) *TrackInfo

func (*TrackInfo) AddAlternativeEncodings

func (t *TrackInfo) AddAlternativeEncodings(alternatives []*TrackEncodingInfo)

func (*TrackInfo) AddEncoding

func (t *TrackInfo) AddEncoding(encoding *TrackEncodingInfo)

func (*TrackInfo) AddSSRC

func (t *TrackInfo) AddSSRC(ssrc uint)

func (*TrackInfo) AddSourceGroup

func (t *TrackInfo) AddSourceGroup(group *SourceGroupInfo)

func (*TrackInfo) Clone

func (t *TrackInfo) Clone() *TrackInfo

func (*TrackInfo) GetEncodings

func (t *TrackInfo) GetEncodings() [][]*TrackEncodingInfo

func (*TrackInfo) GetID

func (t *TrackInfo) GetID() string

func (*TrackInfo) GetMedia

func (t *TrackInfo) GetMedia() string

func (*TrackInfo) GetMediaID

func (t *TrackInfo) GetMediaID() string

func (*TrackInfo) GetSSRCS

func (t *TrackInfo) GetSSRCS() []uint

func (*TrackInfo) GetSourceGroup

func (t *TrackInfo) GetSourceGroup(schematics string) *SourceGroupInfo

func (*TrackInfo) GetSourceGroupS

func (t *TrackInfo) GetSourceGroupS() []*SourceGroupInfo

func (*TrackInfo) SetEncodings

func (t *TrackInfo) SetEncodings(encodings [][]*TrackEncodingInfo)

func (*TrackInfo) SetMediaID

func (t *TrackInfo) SetMediaID(mediaID string)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL