Documentation ¶
Overview ¶
Package gortsplib is a RTSP 1.0 library for the Go programming language, written for rtsp-simple-server.
Examples are available at https://github.com/kodie-artner/gortsplib/tree/master/examples
Index ¶
- type Client
- func (c *Client) Announce(u *url.URL, tracks Tracks) (*base.Response, error)
- func (c *Client) Close() error
- func (c *Client) Describe(u *url.URL) (Tracks, *url.URL, *base.Response, error)
- func (c *Client) Options(u *url.URL) (*base.Response, error)
- func (c *Client) Pause() (*base.Response, error)
- func (c *Client) Play(ra *headers.Range) (*base.Response, error)
- func (c *Client) Record() (*base.Response, error)
- func (c *Client) Seek(ra *headers.Range) (*base.Response, error)
- func (c *Client) Setup(forPlay bool, track Track, baseURL *url.URL, rtpPort int, rtcpPort int) (*base.Response, error)
- func (c *Client) SetupAndPlay(tracks Tracks, baseURL *url.URL) error
- func (c *Client) Start(scheme string, host string) error
- func (c *Client) StartPublishing(address string, tracks Tracks) error
- func (c *Client) Tracks() Tracks
- func (c *Client) Wait() error
- func (c *Client) WritePacketRTCP(trackID int, pkt rtcp.Packet) error
- func (c *Client) WritePacketRTP(trackID int, pkt *rtp.Packet, ptsEqualsDTS bool) error
- type ClientOnPacketRTCPCtx
- type ClientOnPacketRTPCtx
- type Server
- type ServerConn
- type ServerHandler
- type ServerHandlerOnAnnounce
- type ServerHandlerOnAnnounceCtx
- type ServerHandlerOnConnClose
- type ServerHandlerOnConnCloseCtx
- type ServerHandlerOnConnOpen
- type ServerHandlerOnConnOpenCtx
- type ServerHandlerOnDescribe
- type ServerHandlerOnDescribeCtx
- type ServerHandlerOnGetParameter
- type ServerHandlerOnGetParameterCtx
- type ServerHandlerOnPacketRTCP
- type ServerHandlerOnPacketRTCPCtx
- type ServerHandlerOnPacketRTP
- type ServerHandlerOnPacketRTPCtx
- type ServerHandlerOnPause
- type ServerHandlerOnPauseCtx
- type ServerHandlerOnPlay
- type ServerHandlerOnPlayCtx
- type ServerHandlerOnRecord
- type ServerHandlerOnRecordCtx
- type ServerHandlerOnRequest
- type ServerHandlerOnResponse
- type ServerHandlerOnSessionClose
- type ServerHandlerOnSessionCloseCtx
- type ServerHandlerOnSessionOpen
- type ServerHandlerOnSessionOpenCtx
- type ServerHandlerOnSetParameter
- type ServerHandlerOnSetParameterCtx
- type ServerHandlerOnSetup
- type ServerHandlerOnSetupCtx
- type ServerSession
- func (ss *ServerSession) AnnouncedTracks() Tracks
- func (ss *ServerSession) Close() error
- func (ss *ServerSession) SetuppedTracks() map[int]*ServerSessionSetuppedTrack
- func (ss *ServerSession) SetuppedTransport() *Transport
- func (ss *ServerSession) State() ServerSessionState
- func (ss *ServerSession) WritePacketRTCP(trackID int, pkt rtcp.Packet)
- func (ss *ServerSession) WritePacketRTP(trackID int, pkt *rtp.Packet)
- type ServerSessionSetuppedTrack
- type ServerSessionState
- type ServerStream
- type Track
- type TrackGeneric
- type TrackH264
- func (t *TrackH264) ClockRate() int
- func (t *TrackH264) GetControl() string
- func (t *TrackH264) MediaDescription() *psdp.MediaDescription
- func (t *TrackH264) SafePPS() []byte
- func (t *TrackH264) SafeSPS() []byte
- func (t *TrackH264) SafeSetPPS(v []byte)
- func (t *TrackH264) SafeSetSPS(v []byte)
- func (t *TrackH264) SetControl(c string)
- type TrackH265
- func (t *TrackH265) ClockRate() int
- func (t *TrackH265) GetControl() string
- func (t *TrackH265) MediaDescription() *psdp.MediaDescription
- func (t *TrackH265) SafePPS() []byte
- func (t *TrackH265) SafeSPS() []byte
- func (t *TrackH265) SafeSetPPS(v []byte)
- func (t *TrackH265) SafeSetSPS(v []byte)
- func (t *TrackH265) SafeSetVPS(v []byte)
- func (t *TrackH265) SafeVPS() []byte
- func (t *TrackH265) SetControl(c string)
- type TrackJPEG
- type TrackMPEG2Audio
- type TrackMPEG2Video
- type TrackMPEG4Audio
- type TrackOpus
- type TrackPCMA
- type TrackPCMU
- type TrackVP8
- type TrackVP9
- type Tracks
- type Transport
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct { // // RTSP parameters (all optional) // // timeout of read operations. // It defaults to 10 seconds. ReadTimeout time.Duration // timeout of write operations. // It defaults to 10 seconds. WriteTimeout time.Duration // a TLS configuration to connect to TLS (RTSPS) servers. // It defaults to nil. TLSConfig *tls.Config // disable being redirected to other servers, that can happen during Describe(). // It defaults to false. RedirectDisable bool // enable communication with servers which don't provide server ports or use // different server ports than the ones announced. // This can be a security issue. // It defaults to false. AnyPortEnable bool // the stream transport (UDP, Multicast or TCP). // If nil, it is chosen automatically (first UDP, then, if it fails, TCP). // It defaults to nil. Transport *Transport // If the client is reading with UDP, it must receive // at least a packet within this timeout. // It defaults to 3 seconds. InitialUDPReadTimeout time.Duration // read buffer count. // If greater than 1, allows to pass buffers to routines different than the one // that is reading frames. // It defaults to 256. ReadBufferCount int // write buffer count. // It allows to queue packets before sending them. // It defaults to 256. WriteBufferCount int // user agent header // It defaults to "gortsplib" UserAgent string // // system functions (all optional) // // function used to initialize the TCP client. // It defaults to (&net.Dialer{}).DialContext. DialContext func(ctx context.Context, network, address string) (net.Conn, error) // function used to initialize UDP listeners. // It defaults to net.ListenPacket. ListenPacket func(network, address string) (net.PacketConn, error) // // callbacks (all optional) // // called before every request. OnRequest func(*base.Request) // called after every response. OnResponse func(*base.Response) // called when a RTP packet arrives. OnPacketRTP func(*ClientOnPacketRTPCtx) // called when a RTCP packet arrives. OnPacketRTCP func(*ClientOnPacketRTCPCtx) // contains filtered or unexported fields }
Client is a RTSP client.
func (*Client) Pause ¶
Pause writes a PAUSE request and reads a Response. This can be called only after Play() or Record().
func (*Client) Play ¶
Play writes a PLAY request and reads a Response. This can be called only after Setup().
func (*Client) Record ¶
Record writes a RECORD request and reads a Response. This can be called only after Announce() and Setup().
func (*Client) Setup ¶
func (c *Client) Setup( forPlay bool, track Track, baseURL *url.URL, rtpPort int, rtcpPort int, ) (*base.Response, error)
Setup writes a SETUP request and reads a Response. rtpPort and rtcpPort are used only if transport is UDP. if rtpPort and rtcpPort are zero, they are chosen automatically.
func (*Client) SetupAndPlay ¶
SetupAndPlay setups and play the given tracks.
func (*Client) StartPublishing ¶
StartPublishing connects to the address and starts publishing the tracks.
func (*Client) Wait ¶
Wait waits until all client resources are closed. This can happen when a fatal error occurs or when Close() is called.
func (*Client) WritePacketRTCP ¶
WritePacketRTCP writes a RTCP packet.
type ClientOnPacketRTCPCtx ¶
ClientOnPacketRTCPCtx is the context of a RTCP packet.
type ClientOnPacketRTPCtx ¶
type ClientOnPacketRTPCtx struct { TrackID int Packet *rtp.Packet PTSEqualsDTS bool H264NALUs [][]byte H264PTS time.Duration }
ClientOnPacketRTPCtx is the context of a RTP packet.
type Server ¶
type Server struct { // // RTSP parameters (all optional except RTSPAddress) // // the RTSP address of the server, to accept connections and send and receive // packets with the TCP transport. RTSPAddress string // a port to send and receive RTP packets with the UDP transport. // If UDPRTPAddress and UDPRTCPAddress are filled, the server can support the UDP transport. UDPRTPAddress string // a port to send and receive RTCP packets with the UDP transport. // If UDPRTPAddress and UDPRTCPAddress are filled, the server can support the UDP transport. UDPRTCPAddress string // a range of multicast IPs to use with the UDP-multicast transport. // If MulticastIPRange, MulticastRTPPort, MulticastRTCPPort are filled, the server // can support the UDP-multicast transport. MulticastIPRange string // a port to send RTP packets with the UDP-multicast transport. // If MulticastIPRange, MulticastRTPPort, MulticastRTCPPort are filled, the server // can support the UDP-multicast transport. MulticastRTPPort int // a port to send RTCP packets with the UDP-multicast transport. // If MulticastIPRange, MulticastRTPPort, MulticastRTCPPort are filled, the server // can support the UDP-multicast transport. MulticastRTCPPort int // timeout of read operations. // It defaults to 10 seconds ReadTimeout time.Duration // timeout of write operations. // It defaults to 10 seconds WriteTimeout time.Duration // a TLS configuration to accept TLS (RTSPS) connections. TLSConfig *tls.Config // read buffer count. // If greater than 1, allows to pass buffers to routines different than the one // that is reading frames. // It also allows to buffer routed frames and mitigate network fluctuations // that are particularly relevant when using UDP. // It defaults to 256. ReadBufferCount int // write buffer count. // It allows to queue packets before sending them. // It defaults to 256. WriteBufferCount int // // handler (optional) // // an handler to handle server events. Handler ServerHandler // // system functions (all optional) // // function used to initialize the TCP listener. // It defaults to net.Listen. Listen func(network string, address string) (net.Listener, error) // function used to initialize UDP listeners. // It defaults to net.ListenPacket. ListenPacket func(network, address string) (net.PacketConn, error) // contains filtered or unexported fields }
Server is a RTSP server.
func (*Server) StartAndWait ¶
StartAndWait starts the server and waits until a fatal error.
type ServerConn ¶
type ServerConn struct {
// contains filtered or unexported fields
}
ServerConn is a server-side RTSP connection.
func (*ServerConn) NetConn ¶
func (sc *ServerConn) NetConn() net.Conn
NetConn returns the underlying net.Conn.
type ServerHandler ¶
type ServerHandler interface{}
ServerHandler is the interface implemented by all the server handlers.
type ServerHandlerOnAnnounce ¶
type ServerHandlerOnAnnounce interface {
OnAnnounce(*ServerHandlerOnAnnounceCtx) (*base.Response, error)
}
ServerHandlerOnAnnounce can be implemented by a ServerHandler.
type ServerHandlerOnAnnounceCtx ¶
type ServerHandlerOnAnnounceCtx struct { Server *Server Session *ServerSession Conn *ServerConn Request *base.Request Path string Query string Tracks Tracks }
ServerHandlerOnAnnounceCtx is the context of an ANNOUNCE request.
type ServerHandlerOnConnClose ¶
type ServerHandlerOnConnClose interface {
OnConnClose(*ServerHandlerOnConnCloseCtx)
}
ServerHandlerOnConnClose can be implemented by a ServerHandler.
type ServerHandlerOnConnCloseCtx ¶
type ServerHandlerOnConnCloseCtx struct { Conn *ServerConn Error error }
ServerHandlerOnConnCloseCtx is the context of a connection closure.
type ServerHandlerOnConnOpen ¶
type ServerHandlerOnConnOpen interface {
OnConnOpen(*ServerHandlerOnConnOpenCtx)
}
ServerHandlerOnConnOpen can be implemented by a ServerHandler.
type ServerHandlerOnConnOpenCtx ¶
type ServerHandlerOnConnOpenCtx struct {
Conn *ServerConn
}
ServerHandlerOnConnOpenCtx is the context of a connection opening.
type ServerHandlerOnDescribe ¶
type ServerHandlerOnDescribe interface {
OnDescribe(*ServerHandlerOnDescribeCtx) (*base.Response, *ServerStream, error)
}
ServerHandlerOnDescribe can be implemented by a ServerHandler.
type ServerHandlerOnDescribeCtx ¶
type ServerHandlerOnDescribeCtx struct { Conn *ServerConn Request *base.Request Path string Query string }
ServerHandlerOnDescribeCtx is the context of a DESCRIBE request.
type ServerHandlerOnGetParameter ¶
type ServerHandlerOnGetParameter interface {
OnGetParameter(*ServerHandlerOnGetParameterCtx) (*base.Response, error)
}
ServerHandlerOnGetParameter can be implemented by a ServerHandler.
type ServerHandlerOnGetParameterCtx ¶
type ServerHandlerOnGetParameterCtx struct { Session *ServerSession Conn *ServerConn Request *base.Request Path string Query string }
ServerHandlerOnGetParameterCtx is the context of a GET_PARAMETER request.
type ServerHandlerOnPacketRTCP ¶
type ServerHandlerOnPacketRTCP interface {
OnPacketRTCP(*ServerHandlerOnPacketRTCPCtx)
}
ServerHandlerOnPacketRTCP can be implemented by a ServerHandler.
type ServerHandlerOnPacketRTCPCtx ¶
type ServerHandlerOnPacketRTCPCtx struct { Session *ServerSession TrackID int Packet rtcp.Packet }
ServerHandlerOnPacketRTCPCtx is the context of a RTCP packet.
type ServerHandlerOnPacketRTP ¶
type ServerHandlerOnPacketRTP interface {
OnPacketRTP(*ServerHandlerOnPacketRTPCtx)
}
ServerHandlerOnPacketRTP can be implemented by a ServerHandler.
type ServerHandlerOnPacketRTPCtx ¶
type ServerHandlerOnPacketRTPCtx struct { Session *ServerSession TrackID int Packet *rtp.Packet PTSEqualsDTS bool H264NALUs [][]byte H264PTS time.Duration }
ServerHandlerOnPacketRTPCtx is the context of a RTP packet.
type ServerHandlerOnPause ¶
type ServerHandlerOnPause interface {
OnPause(*ServerHandlerOnPauseCtx) (*base.Response, error)
}
ServerHandlerOnPause can be implemented by a ServerHandler.
type ServerHandlerOnPauseCtx ¶
type ServerHandlerOnPauseCtx struct { Session *ServerSession Conn *ServerConn Request *base.Request Path string Query string }
ServerHandlerOnPauseCtx is the context of a PAUSE request.
type ServerHandlerOnPlay ¶
type ServerHandlerOnPlay interface {
OnPlay(*ServerHandlerOnPlayCtx) (*base.Response, error)
}
ServerHandlerOnPlay can be implemented by a ServerHandler.
type ServerHandlerOnPlayCtx ¶
type ServerHandlerOnPlayCtx struct { Session *ServerSession Conn *ServerConn Request *base.Request Path string Query string }
ServerHandlerOnPlayCtx is the context of a PLAY request.
type ServerHandlerOnRecord ¶
type ServerHandlerOnRecord interface {
OnRecord(*ServerHandlerOnRecordCtx) (*base.Response, error)
}
ServerHandlerOnRecord can be implemented by a ServerHandler.
type ServerHandlerOnRecordCtx ¶
type ServerHandlerOnRecordCtx struct { Session *ServerSession Conn *ServerConn Request *base.Request Path string Query string }
ServerHandlerOnRecordCtx is the context of a RECORD request.
type ServerHandlerOnRequest ¶
type ServerHandlerOnRequest interface {
OnRequest(*ServerConn, *base.Request)
}
ServerHandlerOnRequest can be implemented by a ServerHandler.
type ServerHandlerOnResponse ¶
type ServerHandlerOnResponse interface {
OnResponse(*ServerConn, *base.Response)
}
ServerHandlerOnResponse can be implemented by a ServerHandler.
type ServerHandlerOnSessionClose ¶
type ServerHandlerOnSessionClose interface {
OnSessionClose(*ServerHandlerOnSessionCloseCtx)
}
ServerHandlerOnSessionClose can be implemented by a ServerHandler.
type ServerHandlerOnSessionCloseCtx ¶
type ServerHandlerOnSessionCloseCtx struct { Session *ServerSession Error error }
ServerHandlerOnSessionCloseCtx is the context of a session closure.
type ServerHandlerOnSessionOpen ¶
type ServerHandlerOnSessionOpen interface {
OnSessionOpen(*ServerHandlerOnSessionOpenCtx)
}
ServerHandlerOnSessionOpen can be implemented by a ServerHandler.
type ServerHandlerOnSessionOpenCtx ¶
type ServerHandlerOnSessionOpenCtx struct { Session *ServerSession Conn *ServerConn }
ServerHandlerOnSessionOpenCtx is the context of a session opening.
type ServerHandlerOnSetParameter ¶
type ServerHandlerOnSetParameter interface {
OnSetParameter(*ServerHandlerOnSetParameterCtx) (*base.Response, error)
}
ServerHandlerOnSetParameter can be implemented by a ServerHandler.
type ServerHandlerOnSetParameterCtx ¶
type ServerHandlerOnSetParameterCtx struct { Session *ServerSession Conn *ServerConn Request *base.Request Path string Query string }
ServerHandlerOnSetParameterCtx is the context of a SET_PARAMETER request.
type ServerHandlerOnSetup ¶
type ServerHandlerOnSetup interface { // must return a Response and a stream. // the stream is needed to // - add the session the the stream's readers // - send the stream SSRC to the session OnSetup(*ServerHandlerOnSetupCtx) (*base.Response, *ServerStream, error) }
ServerHandlerOnSetup can be implemented by a ServerHandler.
type ServerHandlerOnSetupCtx ¶
type ServerHandlerOnSetupCtx struct { Server *Server Session *ServerSession Conn *ServerConn Request *base.Request Path string Query string TrackID int Transport Transport }
ServerHandlerOnSetupCtx is the context of a OPTIONS request.
type ServerSession ¶
type ServerSession struct {
// contains filtered or unexported fields
}
ServerSession is a server-side RTSP session.
func (*ServerSession) AnnouncedTracks ¶
func (ss *ServerSession) AnnouncedTracks() Tracks
AnnouncedTracks returns the announced tracks.
func (*ServerSession) Close ¶
func (ss *ServerSession) Close() error
Close closes the ServerSession.
func (*ServerSession) SetuppedTracks ¶
func (ss *ServerSession) SetuppedTracks() map[int]*ServerSessionSetuppedTrack
SetuppedTracks returns the setupped tracks.
func (*ServerSession) SetuppedTransport ¶
func (ss *ServerSession) SetuppedTransport() *Transport
SetuppedTransport returns the transport of the setupped tracks.
func (*ServerSession) State ¶
func (ss *ServerSession) State() ServerSessionState
State returns the state of the session.
func (*ServerSession) WritePacketRTCP ¶
func (ss *ServerSession) WritePacketRTCP(trackID int, pkt rtcp.Packet)
WritePacketRTCP writes a RTCP packet to the session.
func (*ServerSession) WritePacketRTP ¶
func (ss *ServerSession) WritePacketRTP(trackID int, pkt *rtp.Packet)
WritePacketRTP writes a RTP packet to the session.
type ServerSessionSetuppedTrack ¶
type ServerSessionSetuppedTrack struct {
// contains filtered or unexported fields
}
ServerSessionSetuppedTrack is a setupped track of a ServerSession.
type ServerSessionState ¶
type ServerSessionState int
ServerSessionState is a state of a ServerSession.
const ( ServerSessionStateInitial ServerSessionState = iota ServerSessionStatePrePlay ServerSessionStatePlay ServerSessionStatePreRecord ServerSessionStateRecord )
states.
func (ServerSessionState) String ¶
func (s ServerSessionState) String() string
String implements fmt.Stringer.
type ServerStream ¶
type ServerStream struct {
// contains filtered or unexported fields
}
ServerStream represents a single stream. This is in charge of - distributing the stream to each reader - allocating multicast listeners - gathering infos about the stream to generate SSRC and RTP-Info
func NewServerStream ¶
func NewServerStream(tracks Tracks) *ServerStream
NewServerStream allocates a ServerStream.
func (*ServerStream) Tracks ¶
func (st *ServerStream) Tracks() Tracks
Tracks returns the tracks of the stream.
func (*ServerStream) WritePacketRTCP ¶
func (st *ServerStream) WritePacketRTCP(trackID int, pkt rtcp.Packet)
WritePacketRTCP writes a RTCP packet to all the readers of the stream.
func (*ServerStream) WritePacketRTP ¶
func (st *ServerStream) WritePacketRTP(trackID int, pkt *rtp.Packet, ptsEqualsDTS bool)
WritePacketRTP writes a RTP packet to all the readers of the stream.
type Track ¶
type Track interface { // ClockRate returns the track clock rate. ClockRate() int // GetControl returns the track control attribute. GetControl() string // SetControl sets the track control attribute. SetControl(string) // MediaDescription returns the track media description in SDP format. MediaDescription() *psdp.MediaDescription // contains filtered or unexported methods }
Track is a RTSP track.
type TrackGeneric ¶
type TrackGeneric struct { Media string Formats []string RTPMap string FMTP string // contains filtered or unexported fields }
TrackGeneric is a generic track.
func (*TrackGeneric) ClockRate ¶
func (t *TrackGeneric) ClockRate() int
ClockRate returns the track clock rate.
func (*TrackGeneric) GetControl ¶
func (t *TrackGeneric) GetControl() string
GetControl gets the track control attribute.
func (*TrackGeneric) MediaDescription ¶
func (t *TrackGeneric) MediaDescription() *psdp.MediaDescription
MediaDescription returns the track media description in SDP format.
func (*TrackGeneric) SetControl ¶
func (t *TrackGeneric) SetControl(c string)
SetControl sets the track control attribute.
type TrackH264 ¶
type TrackH264 struct { PayloadType uint8 SPS []byte PPS []byte // contains filtered or unexported fields }
TrackH264 is a H264 track.
func (*TrackH264) GetControl ¶
func (t *TrackH264) GetControl() string
GetControl gets the track control attribute.
func (*TrackH264) MediaDescription ¶
func (t *TrackH264) MediaDescription() *psdp.MediaDescription
MediaDescription returns the track media description in SDP format.
func (*TrackH264) SafeSetPPS ¶
SafeSetPPS sets the track PPS.
func (*TrackH264) SafeSetSPS ¶
SafeSetSPS sets the track SPS.
func (*TrackH264) SetControl ¶
func (t *TrackH264) SetControl(c string)
SetControl sets the track control attribute.
type TrackH265 ¶
type TrackH265 struct { PayloadType uint8 VPS []byte SPS []byte PPS []byte // contains filtered or unexported fields }
TrackH265 is a H265 track.
func (*TrackH265) GetControl ¶
func (t *TrackH265) GetControl() string
GetControl gets the track control attribute.
func (*TrackH265) MediaDescription ¶
func (t *TrackH265) MediaDescription() *psdp.MediaDescription
MediaDescription returns the track media description in SDP format.
func (*TrackH265) SafeSetPPS ¶
SafeSetPPS sets the track PPS.
func (*TrackH265) SafeSetSPS ¶
SafeSetSPS sets the track SPS.
func (*TrackH265) SafeSetVPS ¶
SafeSetVPS sets the track VPS.
func (*TrackH265) SetControl ¶
func (t *TrackH265) SetControl(c string)
SetControl sets the track control attribute.
type TrackJPEG ¶
type TrackJPEG struct {
// contains filtered or unexported fields
}
TrackJPEG is a JPEG track.
func (*TrackJPEG) GetControl ¶
func (t *TrackJPEG) GetControl() string
GetControl gets the track control attribute.
func (*TrackJPEG) MediaDescription ¶
func (t *TrackJPEG) MediaDescription() *psdp.MediaDescription
MediaDescription returns the track media description in SDP format.
func (*TrackJPEG) SetControl ¶
func (t *TrackJPEG) SetControl(c string)
SetControl sets the track control attribute.
type TrackMPEG2Audio ¶
type TrackMPEG2Audio struct {
// contains filtered or unexported fields
}
TrackMPEG2Audio is a MPEG-1 or MPEG-2 audio track.
func (*TrackMPEG2Audio) ClockRate ¶
func (t *TrackMPEG2Audio) ClockRate() int
ClockRate returns the track clock rate.
func (*TrackMPEG2Audio) GetControl ¶
func (t *TrackMPEG2Audio) GetControl() string
GetControl gets the track control attribute.
func (*TrackMPEG2Audio) MediaDescription ¶
func (t *TrackMPEG2Audio) MediaDescription() *psdp.MediaDescription
MediaDescription returns the track media description in SDP format.
func (*TrackMPEG2Audio) SetControl ¶
func (t *TrackMPEG2Audio) SetControl(c string)
SetControl sets the track control attribute.
type TrackMPEG2Video ¶
type TrackMPEG2Video struct {
// contains filtered or unexported fields
}
TrackMPEG2Video is a MPEG-1 or MPEG-2 video track.
func (*TrackMPEG2Video) ClockRate ¶
func (t *TrackMPEG2Video) ClockRate() int
ClockRate returns the track clock rate.
func (*TrackMPEG2Video) GetControl ¶
func (t *TrackMPEG2Video) GetControl() string
GetControl gets the track control attribute.
func (*TrackMPEG2Video) MediaDescription ¶
func (t *TrackMPEG2Video) MediaDescription() *psdp.MediaDescription
MediaDescription returns the track media description in SDP format.
func (*TrackMPEG2Video) SetControl ¶
func (t *TrackMPEG2Video) SetControl(c string)
SetControl sets the track control attribute.
type TrackMPEG4Audio ¶
type TrackMPEG4Audio struct { PayloadType uint8 Config *mpeg4audio.Config SizeLength int IndexLength int IndexDeltaLength int // contains filtered or unexported fields }
TrackMPEG4Audio is a MPEG-4 audio track.
func (*TrackMPEG4Audio) ClockRate ¶
func (t *TrackMPEG4Audio) ClockRate() int
ClockRate returns the track clock rate.
func (*TrackMPEG4Audio) GetControl ¶
func (t *TrackMPEG4Audio) GetControl() string
GetControl gets the track control attribute.
func (*TrackMPEG4Audio) MediaDescription ¶
func (t *TrackMPEG4Audio) MediaDescription() *psdp.MediaDescription
MediaDescription returns the track media description in SDP format.
func (*TrackMPEG4Audio) SetControl ¶
func (t *TrackMPEG4Audio) SetControl(c string)
SetControl sets the track control attribute.
type TrackOpus ¶
type TrackOpus struct { PayloadType uint8 SampleRate int ChannelCount int // contains filtered or unexported fields }
TrackOpus is a Opus track.
func (*TrackOpus) GetControl ¶
func (t *TrackOpus) GetControl() string
GetControl gets the track control attribute.
func (*TrackOpus) MediaDescription ¶
func (t *TrackOpus) MediaDescription() *psdp.MediaDescription
MediaDescription returns the track media description in SDP format.
func (*TrackOpus) SetControl ¶
func (t *TrackOpus) SetControl(c string)
SetControl sets the track control attribute.
type TrackPCMA ¶
type TrackPCMA struct {
// contains filtered or unexported fields
}
TrackPCMA is a PCMA track.
func (*TrackPCMA) GetControl ¶
func (t *TrackPCMA) GetControl() string
GetControl gets the track control attribute.
func (*TrackPCMA) MediaDescription ¶
func (t *TrackPCMA) MediaDescription() *psdp.MediaDescription
MediaDescription returns the track media description in SDP format.
func (*TrackPCMA) SetControl ¶
func (t *TrackPCMA) SetControl(c string)
SetControl sets the track control attribute.
type TrackPCMU ¶
type TrackPCMU struct {
// contains filtered or unexported fields
}
TrackPCMU is a PCMU track.
func (*TrackPCMU) GetControl ¶
func (t *TrackPCMU) GetControl() string
GetControl gets the track control attribute.
func (*TrackPCMU) MediaDescription ¶
func (t *TrackPCMU) MediaDescription() *psdp.MediaDescription
MediaDescription returns the track media description in SDP format.
func (*TrackPCMU) SetControl ¶
func (t *TrackPCMU) SetControl(c string)
SetControl sets the track control attribute.
type TrackVP8 ¶
type TrackVP8 struct { PayloadType uint8 MaxFR *int MaxFS *int // contains filtered or unexported fields }
TrackVP8 is a VP8 track.
func (*TrackVP8) GetControl ¶
func (t *TrackVP8) GetControl() string
GetControl gets the track control attribute.
func (*TrackVP8) MediaDescription ¶
func (t *TrackVP8) MediaDescription() *psdp.MediaDescription
MediaDescription returns the track media description in SDP format.
func (*TrackVP8) SetControl ¶
func (t *TrackVP8) SetControl(c string)
SetControl sets the track control attribute.
type TrackVP9 ¶
type TrackVP9 struct { PayloadType uint8 MaxFR *int MaxFS *int ProfileID *int // contains filtered or unexported fields }
TrackVP9 is a VP9 track.
func (*TrackVP9) GetControl ¶
func (t *TrackVP9) GetControl() string
GetControl gets the track control attribute.
func (*TrackVP9) MediaDescription ¶
func (t *TrackVP9) MediaDescription() *psdp.MediaDescription
MediaDescription returns the track media description in SDP format.
func (*TrackVP9) SetControl ¶
func (t *TrackVP9) SetControl(c string)
SetControl sets the track control attribute.
Source Files ¶
- client.go
- clientudpl.go
- constants.go
- emptytimer.go
- rtppacketmultibuffer.go
- server.go
- serverconn.go
- serverhandler.go
- servermulticasthandler.go
- serversession.go
- serverstream.go
- serverudpl.go
- track.go
- track_generic.go
- track_h264.go
- track_h265.go
- track_jpeg.go
- track_mpeg2audio.go
- track_mpeg2video.go
- track_mpeg4audio.go
- track_opus.go
- track_pcma.go
- track_pcmu.go
- track_vp8.go
- track_vp9.go
- tracks.go
- transport.go
Directories ¶
Path | Synopsis |
---|---|
examples
|
|
pkg
|
|
auth
Package auth contains utilities to perform authentication.
|
Package auth contains utilities to perform authentication. |
base
Package base contains the primitives of the RTSP protocol.
|
Package base contains the primitives of the RTSP protocol. |
bits
Package bits contains functions to read/write bits from/to buffers.
|
Package bits contains functions to read/write bits from/to buffers. |
conn
Package conn contains a RTSP TCP connection implementation.
|
Package conn contains a RTSP TCP connection implementation. |
h264
Package h264 contains utilities to work with the H264 codec.
|
Package h264 contains utilities to work with the H264 codec. |
headers
Package headers contains various RTSP headers.
|
Package headers contains various RTSP headers. |
liberrors
Package liberrors contains errors returned by the library.
|
Package liberrors contains errors returned by the library. |
mpeg4audio
Package mpeg4audio contains utilities to work with MPEG-4 audio codecs.
|
Package mpeg4audio contains utilities to work with MPEG-4 audio codecs. |
multibuffer
Package multibuffer contains a buffer with multiple levels.
|
Package multibuffer contains a buffer with multiple levels. |
ringbuffer
Package ringbuffer contains a ring buffer.
|
Package ringbuffer contains a ring buffer. |
rtcpreceiver
Package rtcpreceiver contains a utility to generate RTCP receiver reports.
|
Package rtcpreceiver contains a utility to generate RTCP receiver reports. |
rtcpsender
Package rtcpsender contains a utility to generate RTCP sender reports.
|
Package rtcpsender contains a utility to generate RTCP sender reports. |
rtpcleaner
Package rtpcleaner contains a cleaning utility.
|
Package rtpcleaner contains a cleaning utility. |
rtph264
Package rtph264 contains a RTP/H264 decoder and encoder.
|
Package rtph264 contains a RTP/H264 decoder and encoder. |
rtpmpeg4audio
Package rtpmpeg4audio contains a RTP/MPEG4-audio decoder and encoder.
|
Package rtpmpeg4audio contains a RTP/MPEG4-audio decoder and encoder. |
rtptimedec
Package rtptimedec contains a RTP timestamp decoder.
|
Package rtptimedec contains a RTP timestamp decoder. |
sdp
Package sdp contains a SDP encoder/decoder compatible with most RTSP implementations.
|
Package sdp contains a SDP encoder/decoder compatible with most RTSP implementations. |
url
Package url contains the URL structure.
|
Package url contains the URL structure. |