Documentation ¶
Overview ¶
Package message contains a RTMP message reader/writer.
Index ¶
- Constants
- type Acknowledge
- type Audio
- type AudioAACType
- type CommandAMF0
- type DataAMF0
- type ExtendedCodedFrames
- type ExtendedFramesX
- type ExtendedMPEG2TSSequenceStart
- type ExtendedMetadata
- type ExtendedSequenceEnd
- type ExtendedSequenceStart
- type ExtendedType
- type FourCC
- type Message
- type ReadWriter
- type Reader
- type SetChunkSize
- type SetPeerBandwidth
- type SetWindowAckSize
- type Type
- type UserControlPingRequest
- type UserControlPingResponse
- type UserControlSetBufferLength
- type UserControlStreamBegin
- type UserControlStreamDry
- type UserControlStreamEOF
- type UserControlStreamIsRecorded
- type UserControlType
- type Video
- type VideoType
- type Writer
Constants ¶
const ( CodecMPEG1Audio = 2 CodecMPEG4Audio = 10 )
supported audio codecs
const (
// AudioChunkStreamID is the chunk stream ID that is usually used to send Audio{}
AudioChunkStreamID = 4
)
const (
CodecH264 = 7
)
supported video codecs
const (
// ControlChunkStreamID is the stream ID used for control messages.
ControlChunkStreamID = 2
)
const (
// VideoChunkStreamID is the chunk stream ID that is usually used to send Video{}
VideoChunkStreamID = 6
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Acknowledge ¶
type Acknowledge struct {
Value uint32
}
Acknowledge is an acknowledgement message.
func (*Acknowledge) Marshal ¶
func (m *Acknowledge) Marshal() (*rawmessage.Message, error)
Marshal implements Message.
func (*Acknowledge) Unmarshal ¶
func (m *Acknowledge) Unmarshal(raw *rawmessage.Message) error
Unmarshal implements Message.
type Audio ¶
type Audio struct { ChunkStreamID byte DTS time.Duration MessageStreamID uint32 Codec uint8 Rate uint8 Depth uint8 Channels uint8 AACType AudioAACType // only for CodecMPEG4Audio Payload []byte }
Audio is an audio message.
type AudioAACType ¶
type AudioAACType uint8
AudioAACType is the AAC type of a Audio.
const ( AudioAACTypeConfig AudioAACType = 0 AudioAACTypeAU AudioAACType = 1 )
AudioAACType values.
type CommandAMF0 ¶
type CommandAMF0 struct { ChunkStreamID byte MessageStreamID uint32 Name string CommandID int Arguments []interface{} }
CommandAMF0 is a AMF0 command message.
func (CommandAMF0) Marshal ¶
func (m CommandAMF0) Marshal() (*rawmessage.Message, error)
Marshal implements Message.
func (*CommandAMF0) Unmarshal ¶
func (m *CommandAMF0) Unmarshal(raw *rawmessage.Message) error
Unmarshal implements Message.
type DataAMF0 ¶
DataAMF0 is a AMF0 data message.
type ExtendedCodedFrames ¶
type ExtendedCodedFrames struct { ChunkStreamID byte DTS time.Duration MessageStreamID uint32 FourCC FourCC PTSDelta time.Duration Payload []byte }
ExtendedCodedFrames is a CodedFrames extended message.
func (ExtendedCodedFrames) Marshal ¶
func (m ExtendedCodedFrames) Marshal() (*rawmessage.Message, error)
Marshal implements Message.
func (*ExtendedCodedFrames) Unmarshal ¶
func (m *ExtendedCodedFrames) Unmarshal(raw *rawmessage.Message) error
Unmarshal implements Message.
type ExtendedFramesX ¶
type ExtendedFramesX struct { ChunkStreamID byte DTS time.Duration MessageStreamID uint32 FourCC FourCC Payload []byte }
ExtendedFramesX is a FramesX extended message.
func (ExtendedFramesX) Marshal ¶
func (m ExtendedFramesX) Marshal() (*rawmessage.Message, error)
Marshal implements Message.
func (*ExtendedFramesX) Unmarshal ¶
func (m *ExtendedFramesX) Unmarshal(raw *rawmessage.Message) error
Unmarshal implements Message.
type ExtendedMPEG2TSSequenceStart ¶
type ExtendedMPEG2TSSequenceStart struct {
FourCC FourCC
}
ExtendedMPEG2TSSequenceStart is a MPEG2-TS sequence start extended message.
func (ExtendedMPEG2TSSequenceStart) Marshal ¶
func (m ExtendedMPEG2TSSequenceStart) Marshal() (*rawmessage.Message, error)
Marshal implements Message.
func (*ExtendedMPEG2TSSequenceStart) Unmarshal ¶
func (m *ExtendedMPEG2TSSequenceStart) Unmarshal(raw *rawmessage.Message) error
Unmarshal implements Message.
type ExtendedMetadata ¶
type ExtendedMetadata struct {
FourCC FourCC
}
ExtendedMetadata is a metadata extended message.
func (ExtendedMetadata) Marshal ¶
func (m ExtendedMetadata) Marshal() (*rawmessage.Message, error)
Marshal implements Message.
func (*ExtendedMetadata) Unmarshal ¶
func (m *ExtendedMetadata) Unmarshal(raw *rawmessage.Message) error
Unmarshal implements Message.
type ExtendedSequenceEnd ¶
type ExtendedSequenceEnd struct {
FourCC FourCC
}
ExtendedSequenceEnd is a sequence end extended message.
func (ExtendedSequenceEnd) Marshal ¶
func (m ExtendedSequenceEnd) Marshal() (*rawmessage.Message, error)
Marshal implements Message.
func (*ExtendedSequenceEnd) Unmarshal ¶
func (m *ExtendedSequenceEnd) Unmarshal(raw *rawmessage.Message) error
Unmarshal implements Message.
type ExtendedSequenceStart ¶
type ExtendedSequenceStart struct { ChunkStreamID byte MessageStreamID uint32 FourCC FourCC Config []byte }
ExtendedSequenceStart is a sequence start extended message.
func (ExtendedSequenceStart) Marshal ¶
func (m ExtendedSequenceStart) Marshal() (*rawmessage.Message, error)
Marshal implements Message.
func (*ExtendedSequenceStart) Unmarshal ¶
func (m *ExtendedSequenceStart) Unmarshal(raw *rawmessage.Message) error
Unmarshal implements Message.
type ExtendedType ¶
type ExtendedType uint8
ExtendedType is a message extended type.
const ( ExtendedTypeSequenceStart ExtendedType = 0 ExtendedTypeCodedFrames ExtendedType = 1 ExtendedTypeSequenceEnd ExtendedType = 2 ExtendedTypeFramesX ExtendedType = 3 ExtendedTypeMetadata ExtendedType = 4 ExtendedTypeMPEG2TSSequenceStart ExtendedType = 5 )
message extended types.
type Message ¶
type Message interface { Unmarshal(*rawmessage.Message) error Marshal() (*rawmessage.Message, error) }
Message is a message.
type ReadWriter ¶
type ReadWriter struct {
// contains filtered or unexported fields
}
ReadWriter is a message reader/writer.
func NewReadWriter ¶
func NewReadWriter( rw io.ReadWriter, bcrw *bytecounter.ReadWriter, checkAcknowledge bool, ) *ReadWriter
NewReadWriter allocates a ReadWriter.
type Reader ¶
type Reader struct {
// contains filtered or unexported fields
}
Reader is a message reader.
type SetChunkSize ¶
type SetChunkSize struct {
Value uint32
}
SetChunkSize is a set chunk size message.
func (*SetChunkSize) Marshal ¶
func (m *SetChunkSize) Marshal() (*rawmessage.Message, error)
Marshal implements Message.
func (*SetChunkSize) Unmarshal ¶
func (m *SetChunkSize) Unmarshal(raw *rawmessage.Message) error
Unmarshal implements Message.
type SetPeerBandwidth ¶
SetPeerBandwidth is a set peer bandwidth message.
func (*SetPeerBandwidth) Marshal ¶
func (m *SetPeerBandwidth) Marshal() (*rawmessage.Message, error)
Marshal implements Message.
func (*SetPeerBandwidth) Unmarshal ¶
func (m *SetPeerBandwidth) Unmarshal(raw *rawmessage.Message) error
Unmarshal implements Message.
type SetWindowAckSize ¶
type SetWindowAckSize struct {
Value uint32
}
SetWindowAckSize is a set window acknowledgement message.
func (*SetWindowAckSize) Marshal ¶
func (m *SetWindowAckSize) Marshal() (*rawmessage.Message, error)
Marshal implements Message.
func (*SetWindowAckSize) Unmarshal ¶
func (m *SetWindowAckSize) Unmarshal(raw *rawmessage.Message) error
Unmarshal implements Message.
type Type ¶
type Type byte
Type is a message type.
const ( TypeSetChunkSize Type = 1 TypeAbortMessage Type = 2 TypeAcknowledge Type = 3 TypeSetWindowAckSize Type = 5 TypeSetPeerBandwidth Type = 6 TypeUserControl Type = 4 TypeCommandAMF3 Type = 17 TypeCommandAMF0 Type = 20 TypeDataAMF3 Type = 15 TypeDataAMF0 Type = 18 TypeAudio Type = 8 TypeVideo Type = 9 )
message types.
type UserControlPingRequest ¶
type UserControlPingRequest struct {
ServerTime uint32
}
UserControlPingRequest is a user control message.
func (UserControlPingRequest) Marshal ¶
func (m UserControlPingRequest) Marshal() (*rawmessage.Message, error)
Marshal implements Message.
func (*UserControlPingRequest) Unmarshal ¶
func (m *UserControlPingRequest) Unmarshal(raw *rawmessage.Message) error
Unmarshal implements Message.
type UserControlPingResponse ¶
type UserControlPingResponse struct {
ServerTime uint32
}
UserControlPingResponse is a user control message.
func (UserControlPingResponse) Marshal ¶
func (m UserControlPingResponse) Marshal() (*rawmessage.Message, error)
Marshal implements Message.
func (*UserControlPingResponse) Unmarshal ¶
func (m *UserControlPingResponse) Unmarshal(raw *rawmessage.Message) error
Unmarshal implements Message.
type UserControlSetBufferLength ¶
UserControlSetBufferLength is a user control message.
func (UserControlSetBufferLength) Marshal ¶
func (m UserControlSetBufferLength) Marshal() (*rawmessage.Message, error)
Marshal implements Message.
func (*UserControlSetBufferLength) Unmarshal ¶
func (m *UserControlSetBufferLength) Unmarshal(raw *rawmessage.Message) error
Unmarshal implements Message.
type UserControlStreamBegin ¶
type UserControlStreamBegin struct {
StreamID uint32
}
UserControlStreamBegin is a user control message.
func (UserControlStreamBegin) Marshal ¶
func (m UserControlStreamBegin) Marshal() (*rawmessage.Message, error)
Marshal implements Message.
func (*UserControlStreamBegin) Unmarshal ¶
func (m *UserControlStreamBegin) Unmarshal(raw *rawmessage.Message) error
Unmarshal implements Message.
type UserControlStreamDry ¶
type UserControlStreamDry struct {
StreamID uint32
}
UserControlStreamDry is a user control message.
func (UserControlStreamDry) Marshal ¶
func (m UserControlStreamDry) Marshal() (*rawmessage.Message, error)
Marshal implements Message.
func (*UserControlStreamDry) Unmarshal ¶
func (m *UserControlStreamDry) Unmarshal(raw *rawmessage.Message) error
Unmarshal implements Message.
type UserControlStreamEOF ¶
type UserControlStreamEOF struct {
StreamID uint32
}
UserControlStreamEOF is a user control message.
func (UserControlStreamEOF) Marshal ¶
func (m UserControlStreamEOF) Marshal() (*rawmessage.Message, error)
Marshal implements Message.
func (*UserControlStreamEOF) Unmarshal ¶
func (m *UserControlStreamEOF) Unmarshal(raw *rawmessage.Message) error
Unmarshal implements Message.
type UserControlStreamIsRecorded ¶
type UserControlStreamIsRecorded struct {
StreamID uint32
}
UserControlStreamIsRecorded is a user control message.
func (UserControlStreamIsRecorded) Marshal ¶
func (m UserControlStreamIsRecorded) Marshal() (*rawmessage.Message, error)
Marshal implements Message.
func (*UserControlStreamIsRecorded) Unmarshal ¶
func (m *UserControlStreamIsRecorded) Unmarshal(raw *rawmessage.Message) error
Unmarshal implements Message.
type UserControlType ¶
type UserControlType uint16
UserControlType is a user control type.
const ( UserControlTypeStreamBegin UserControlType = 0 UserControlTypeStreamEOF UserControlType = 1 UserControlTypeStreamDry UserControlType = 2 UserControlTypeSetBufferLength UserControlType = 3 UserControlTypeStreamIsRecorded UserControlType = 4 UserControlTypePingRequest UserControlType = 6 UserControlTypePingResponse UserControlType = 7 )
user control types.
type Video ¶
type Video struct { ChunkStreamID byte DTS time.Duration MessageStreamID uint32 Codec uint8 IsKeyFrame bool Type VideoType PTSDelta time.Duration Payload []byte }
Video is a video message.
Source Files ¶
- acknowledge.go
- audio.go
- command_amf0.go
- data_amf0.go
- extended_coded_frames.go
- extended_frames_x.go
- extended_metadata.go
- extended_mpeg2ts_sequence_start.go
- extended_sequence_end.go
- extended_sequence_start.go
- message.go
- reader.go
- readwriter.go
- set_chunk_size.go
- set_peer_bandwidth.go
- set_window_ack_size.go
- user_control_ping_request.go
- user_control_ping_response.go
- user_control_set_buffer_length.go
- user_control_stream_begin.go
- user_control_stream_dry.go
- user_control_stream_eof.go
- user_control_stream_is_recorded.go
- video.go
- writer.go