message

package
v0.0.6 Latest Latest
Warning

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

Go to latest
Published: Dec 12, 2023 License: BSL-1.0 Imports: 7 Imported by: 8

Documentation

Index

Constants

This section is empty.

Variables

View Source
var CmdBodyDecoders = map[string]BodyDecoderFunc{
	"connect":         DecodeBodyConnect,
	"createStream":    DecodeBodyCreateStream,
	"deleteStream":    DecodeBodyDeleteStream,
	"publish":         DecodeBodyPublish,
	"play":            DecodeBodyPlay,
	"releaseStream":   DecodeBodyReleaseStream,
	"FCPublish":       DecodeBodyFCPublish,
	"FCUnpublish":     DecodeBodyFCUnpublish,
	"getStreamLength": DecodeBodyGetStreamLength,
	"ping":            DecodeBodyPing,
	"closeStream":     DecodeBodyCloseStream,
}
View Source
var DataBodyDecoders = map[string]BodyDecoderFunc{
	"@setDataFrame": DecodeBodyAtSetDataFrame,
}

Functions

func DecodeBodyAtSetDataFrame

func DecodeBodyAtSetDataFrame(r io.Reader, _ AMFDecoder, v *AMFConvertible) error

func DecodeBodyCloseStream

func DecodeBodyCloseStream(_ io.Reader, d AMFDecoder, v *AMFConvertible) error

func DecodeBodyConnect

func DecodeBodyConnect(_ io.Reader, d AMFDecoder, v *AMFConvertible) error

func DecodeBodyConnectResult

func DecodeBodyConnectResult(_ io.Reader, d AMFDecoder, v *AMFConvertible) error

func DecodeBodyCreateStream

func DecodeBodyCreateStream(_ io.Reader, d AMFDecoder, v *AMFConvertible) error

func DecodeBodyCreateStreamResult

func DecodeBodyCreateStreamResult(_ io.Reader, d AMFDecoder, v *AMFConvertible) error

func DecodeBodyDeleteStream

func DecodeBodyDeleteStream(_ io.Reader, d AMFDecoder, v *AMFConvertible) error

func DecodeBodyFCPublish

func DecodeBodyFCPublish(_ io.Reader, d AMFDecoder, v *AMFConvertible) error

func DecodeBodyFCUnpublish

func DecodeBodyFCUnpublish(_ io.Reader, d AMFDecoder, v *AMFConvertible) error

func DecodeBodyGetStreamLength

func DecodeBodyGetStreamLength(_ io.Reader, d AMFDecoder, v *AMFConvertible) error

func DecodeBodyPing

func DecodeBodyPing(_ io.Reader, d AMFDecoder, v *AMFConvertible) error

func DecodeBodyPlay

func DecodeBodyPlay(_ io.Reader, d AMFDecoder, v *AMFConvertible) error

func DecodeBodyPublish

func DecodeBodyPublish(_ io.Reader, d AMFDecoder, v *AMFConvertible) error

func DecodeBodyReleaseStream

func DecodeBodyReleaseStream(_ io.Reader, d AMFDecoder, v *AMFConvertible) error

func EncodeBodyAnyValues

func EncodeBodyAnyValues(e AMFEncoder, v AMFConvertible) error

Types

type AMFConvertible

type AMFConvertible interface {
	FromArgs(args ...interface{}) error
	ToArgs(ty EncodingType) ([]interface{}, error)
}

type AMFDecoder

type AMFDecoder interface {
	Decode(interface{}) error
	Reset(r io.Reader)
}

func NewAMFDecoder

func NewAMFDecoder(r io.Reader, encTy EncodingType) AMFDecoder

type AMFEncoder

type AMFEncoder interface {
	Encode(interface{}) error
	Reset(w io.Writer)
}

func NewAMFEncoder

func NewAMFEncoder(w io.Writer, encTy EncodingType) AMFEncoder

type AbortMessage

type AbortMessage struct {
	ChunkStreamID uint32
}

AbortMessage (2)

func (*AbortMessage) TypeID

func (m *AbortMessage) TypeID() TypeID

type Ack

type Ack struct {
	SequenceNumber uint32
}

Ack (3)

func (*Ack) TypeID

func (m *Ack) TypeID() TypeID

type AggregateMessage

type AggregateMessage struct {
}

AggregateMessage (22)

func (*AggregateMessage) TypeID

func (m *AggregateMessage) TypeID() TypeID

type AudioMessage

type AudioMessage struct {
	Payload io.Reader
}

AudioMessage(8)

func (*AudioMessage) TypeID

func (m *AudioMessage) TypeID() TypeID

type BodyDecoderFunc

type BodyDecoderFunc func(r io.Reader, e AMFDecoder, v *AMFConvertible) error

func CmdBodyDecoderFor

func CmdBodyDecoderFor(name string, transactionID int64) BodyDecoderFunc

func DataBodyDecoderFor

func DataBodyDecoderFor(name string) BodyDecoderFunc

type CommandMessage

type CommandMessage struct {
	CommandName   string
	TransactionID int64
	Encoding      EncodingType
	Body          io.Reader
}

CommandMessage (17, 20)

func (*CommandMessage) TypeID

func (m *CommandMessage) TypeID() TypeID

type DataMessage

type DataMessage struct {
	Name     string
	Encoding EncodingType
	Body     io.Reader
}

DataMessage (15, 18)

func (*DataMessage) TypeID

func (m *DataMessage) TypeID() TypeID

type Decoder

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

func NewDecoder

func NewDecoder(r io.Reader) *Decoder

func (*Decoder) Decode

func (dec *Decoder) Decode(typeID TypeID, msg *Message) error

func (*Decoder) Reset

func (dec *Decoder) Reset(r io.Reader)

type Encoder

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

func NewEncoder

func NewEncoder(w io.Writer) *Encoder

func (*Encoder) Encode

func (enc *Encoder) Encode(msg Message) error

Encode

func (*Encoder) Reset

func (enc *Encoder) Reset(w io.Writer)

type EncodingType

type EncodingType uint8
const (
	EncodingTypeAMF0 EncodingType = 0
	EncodingTypeAMF3 EncodingType = 3
)

type LimitType

type LimitType uint8

SetPeerBandwidth (6)

const (
	LimitTypeHard LimitType = iota
	LimitTypeSoft
	LimitTypeDynamic
)

type Message

type Message interface {
	TypeID() TypeID
}

Message

type NetConnectionConnect

type NetConnectionConnect struct {
	Command NetConnectionConnectCommand
}

func (*NetConnectionConnect) FromArgs

func (t *NetConnectionConnect) FromArgs(args ...interface{}) error

func (*NetConnectionConnect) ToArgs

func (t *NetConnectionConnect) ToArgs(ty EncodingType) ([]interface{}, error)

type NetConnectionConnectCode

type NetConnectionConnectCode string
const (
	NetConnectionConnectCodeSuccess NetConnectionConnectCode = "NetConnection.Connect.Success"
	NetConnectionConnectCodeFailed  NetConnectionConnectCode = "NetConnection.Connect.Failed"
	NetConnectionConnectCodeClosed  NetConnectionConnectCode = "NetConnection.Connect.Closed"
)

type NetConnectionConnectCommand

type NetConnectionConnectCommand struct {
	App            string       `mapstructure:"app" amf0:"app"`
	Type           string       `mapstructure:"type" amf0:"type"`
	FlashVer       string       `mapstructure:"flashVer" amf0:"flashVer"`
	TCURL          string       `mapstructure:"tcUrl" amf0:"tcUrl"`
	Fpad           bool         `mapstructure:"fpad" amf0:"fpad"`
	Capabilities   int          `mapstructure:"capabilities" amf0:"capabilities"`
	AudioCodecs    int          `mapstructure:"audioCodecs" amf0:"audioCodecs"`
	VideoCodecs    int          `mapstructure:"videoCodecs" amf0:"videoCodecs"`
	VideoFunction  int          `mapstructure:"videoFunction" amf0:"videoFunction"`
	ObjectEncoding EncodingType `mapstructure:"objectEncoding" amf0:"objectEncoding"`
}

type NetConnectionConnectResult

type NetConnectionConnectResult struct {
	Properties  NetConnectionConnectResultProperties
	Information NetConnectionConnectResultInformation
}

func (*NetConnectionConnectResult) FromArgs

func (t *NetConnectionConnectResult) FromArgs(args ...interface{}) error

func (*NetConnectionConnectResult) ToArgs

func (t *NetConnectionConnectResult) ToArgs(ty EncodingType) ([]interface{}, error)

type NetConnectionConnectResultInformation

type NetConnectionConnectResultInformation struct {
	Level       string                   `mapstructure:"level" amf0:"level"` // TODO: fix
	Code        NetConnectionConnectCode `mapstructure:"code" amf0:"code"`
	Description string                   `mapstructure:"description" amf0:"description"`
	Data        amf0.ECMAArray           `mapstructure:"data" amf0:"data"`
}

type NetConnectionConnectResultProperties

type NetConnectionConnectResultProperties struct {
	FMSVer       string `mapstructure:"fmsVer" amf0:"fmsVer"`             // TODO: fix
	Capabilities int    `mapstructure:"capabilities" amf0:"capabilities"` // TODO: fix
	Mode         int    `mapstructure:"mode" amf0:"mode"`                 // TODO: fix
}

type NetConnectionCreateStream

type NetConnectionCreateStream struct {
}

func (*NetConnectionCreateStream) FromArgs

func (t *NetConnectionCreateStream) FromArgs(args ...interface{}) error

func (*NetConnectionCreateStream) ToArgs

func (t *NetConnectionCreateStream) ToArgs(ty EncodingType) ([]interface{}, error)

type NetConnectionCreateStreamResult

type NetConnectionCreateStreamResult struct {
	StreamID uint32
}

TODO: fix for error messages

func (*NetConnectionCreateStreamResult) FromArgs

func (t *NetConnectionCreateStreamResult) FromArgs(args ...interface{}) error

func (*NetConnectionCreateStreamResult) ToArgs

func (t *NetConnectionCreateStreamResult) ToArgs(ty EncodingType) ([]interface{}, error)

type NetConnectionReleaseStream

type NetConnectionReleaseStream struct {
	StreamName string
}

func (*NetConnectionReleaseStream) FromArgs

func (t *NetConnectionReleaseStream) FromArgs(args ...interface{}) error

func (*NetConnectionReleaseStream) ToArgs

func (t *NetConnectionReleaseStream) ToArgs(ty EncodingType) ([]interface{}, error)

type NetStreamCloseStream

type NetStreamCloseStream struct {
}

func (*NetStreamCloseStream) FromArgs

func (t *NetStreamCloseStream) FromArgs(args ...interface{}) error

func (*NetStreamCloseStream) ToArgs

func (t *NetStreamCloseStream) ToArgs(ty EncodingType) ([]interface{}, error)

type NetStreamDeleteStream

type NetStreamDeleteStream struct {
	StreamID uint32
}

func (*NetStreamDeleteStream) FromArgs

func (t *NetStreamDeleteStream) FromArgs(args ...interface{}) error

func (*NetStreamDeleteStream) ToArgs

func (t *NetStreamDeleteStream) ToArgs(ty EncodingType) ([]interface{}, error)

type NetStreamFCPublish

type NetStreamFCPublish struct {
	StreamName string
}

func (*NetStreamFCPublish) FromArgs

func (t *NetStreamFCPublish) FromArgs(args ...interface{}) error

func (*NetStreamFCPublish) ToArgs

func (t *NetStreamFCPublish) ToArgs(ty EncodingType) ([]interface{}, error)

type NetStreamFCUnpublish

type NetStreamFCUnpublish struct {
	StreamName string
}

func (*NetStreamFCUnpublish) FromArgs

func (t *NetStreamFCUnpublish) FromArgs(args ...interface{}) error

func (*NetStreamFCUnpublish) ToArgs

func (t *NetStreamFCUnpublish) ToArgs(ty EncodingType) ([]interface{}, error)

type NetStreamGetStreamLength

type NetStreamGetStreamLength struct {
	StreamName string
}

func (*NetStreamGetStreamLength) FromArgs

func (t *NetStreamGetStreamLength) FromArgs(args ...interface{}) error

func (*NetStreamGetStreamLength) ToArgs

func (t *NetStreamGetStreamLength) ToArgs(ty EncodingType) ([]interface{}, error)

type NetStreamOnStatus

type NetStreamOnStatus struct {
	InfoObject NetStreamOnStatusInfoObject
}

func (*NetStreamOnStatus) FromArgs

func (t *NetStreamOnStatus) FromArgs(args ...interface{}) error

func (*NetStreamOnStatus) ToArgs

func (t *NetStreamOnStatus) ToArgs(ty EncodingType) ([]interface{}, error)

type NetStreamOnStatusCode

type NetStreamOnStatusCode string
const (
	NetStreamOnStatusCodeConnectSuccess      NetStreamOnStatusCode = "NetStream.Connect.Success"
	NetStreamOnStatusCodeConnectFailed       NetStreamOnStatusCode = "NetStream.Connect.Failed"
	NetStreamOnStatusCodeMuticastStreamReset NetStreamOnStatusCode = "NetStream.MulticastStream.Reset"
	NetStreamOnStatusCodePlayStart           NetStreamOnStatusCode = "NetStream.Play.Start"
	NetStreamOnStatusCodePlayFailed          NetStreamOnStatusCode = "NetStream.Play.Failed"
	NetStreamOnStatusCodePlayComplete        NetStreamOnStatusCode = "NetStream.Play.Complete"
	NetStreamOnStatusCodePublishBadName      NetStreamOnStatusCode = "NetStream.Publish.BadName"
	NetStreamOnStatusCodePublishFailed       NetStreamOnStatusCode = "NetStream.Publish.Failed"
	NetStreamOnStatusCodePublishStart        NetStreamOnStatusCode = "NetStream.Publish.Start"
	NetStreamOnStatusCodeUnpublishSuccess    NetStreamOnStatusCode = "NetStream.Unpublish.Success"
)

type NetStreamOnStatusInfoObject

type NetStreamOnStatusInfoObject struct {
	Level       NetStreamOnStatusLevel
	Code        NetStreamOnStatusCode
	Description string
}

type NetStreamOnStatusLevel

type NetStreamOnStatusLevel string
const (
	NetStreamOnStatusLevelStatus NetStreamOnStatusLevel = "status"
	NetStreamOnStatusLevelError  NetStreamOnStatusLevel = "error"
)

type NetStreamPing

type NetStreamPing struct {
}

func (*NetStreamPing) FromArgs

func (t *NetStreamPing) FromArgs(args ...interface{}) error

func (*NetStreamPing) ToArgs

func (t *NetStreamPing) ToArgs(ty EncodingType) ([]interface{}, error)

type NetStreamPlay

type NetStreamPlay struct {
	CommandObject interface{}
	StreamName    string
	Start         int64
}

func (*NetStreamPlay) FromArgs

func (t *NetStreamPlay) FromArgs(args ...interface{}) error

func (*NetStreamPlay) ToArgs

func (t *NetStreamPlay) ToArgs(ty EncodingType) ([]interface{}, error)

type NetStreamPublish

type NetStreamPublish struct {
	CommandObject  interface{}
	PublishingName string
	PublishingType string
}

func (*NetStreamPublish) FromArgs

func (t *NetStreamPublish) FromArgs(args ...interface{}) error

func (*NetStreamPublish) ToArgs

func (t *NetStreamPublish) ToArgs(ty EncodingType) ([]interface{}, error)

type NetStreamReleaseStream

type NetStreamReleaseStream struct {
	StreamName string
}

func (*NetStreamReleaseStream) FromArgs

func (t *NetStreamReleaseStream) FromArgs(args ...interface{}) error

func (*NetStreamReleaseStream) ToArgs

func (t *NetStreamReleaseStream) ToArgs(ty EncodingType) ([]interface{}, error)

type NetStreamSetDataFrame

type NetStreamSetDataFrame struct {
	Payload []byte
	AmfData interface{}
}

NetStreamSetDataFrame - send data. AmfData is what will be encoded

func (*NetStreamSetDataFrame) FromArgs

func (t *NetStreamSetDataFrame) FromArgs(args ...interface{}) error

func (*NetStreamSetDataFrame) ToArgs

func (t *NetStreamSetDataFrame) ToArgs(ty EncodingType) ([]interface{}, error)

type SetChunkSize

type SetChunkSize struct {
	ChunkSize uint32
}

SetChunkSize (1)

func (*SetChunkSize) TypeID

func (m *SetChunkSize) TypeID() TypeID

type SetPeerBandwidth

type SetPeerBandwidth struct {
	Size  int32
	Limit LimitType
}

func (*SetPeerBandwidth) TypeID

func (m *SetPeerBandwidth) TypeID() TypeID

type SharedObjectMessage

type SharedObjectMessage struct {
}

SharedObjectMessage (16, 19)

type SharedObjectMessageAMF0

type SharedObjectMessageAMF0 struct {
	SharedObjectMessage
}

func (*SharedObjectMessageAMF0) TypeID

func (m *SharedObjectMessageAMF0) TypeID() TypeID

type SharedObjectMessageAMF3

type SharedObjectMessageAMF3 struct {
	SharedObjectMessage
}

func (*SharedObjectMessageAMF3) TypeID

func (m *SharedObjectMessageAMF3) TypeID() TypeID

type TypeID

type TypeID byte
const (
	TypeIDSetChunkSize            TypeID = 1
	TypeIDAbortMessage            TypeID = 2
	TypeIDAck                     TypeID = 3
	TypeIDUserCtrl                TypeID = 4
	TypeIDWinAckSize              TypeID = 5
	TypeIDSetPeerBandwidth        TypeID = 6
	TypeIDAudioMessage            TypeID = 8
	TypeIDVideoMessage            TypeID = 9
	TypeIDDataMessageAMF3         TypeID = 15
	TypeIDSharedObjectMessageAMF3 TypeID = 16
	TypeIDCommandMessageAMF3      TypeID = 17
	TypeIDDataMessageAMF0         TypeID = 18
	TypeIDSharedObjectMessageAMF0 TypeID = 19
	TypeIDCommandMessageAMF0      TypeID = 20
	TypeIDAggregateMessage        TypeID = 22
)

type UnknownCommandBodyDecodeError

type UnknownCommandBodyDecodeError struct {
	Name          string
	TransactionID int64
	Objs          []interface{}
}

func (*UnknownCommandBodyDecodeError) Error

type UnknownDataBodyDecodeError

type UnknownDataBodyDecodeError struct {
	Name string
	Objs []interface{}
}

func (*UnknownDataBodyDecodeError) Error

type UserControlEventDecoder

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

func NewUserControlEventDecoder

func NewUserControlEventDecoder(r io.Reader) *UserControlEventDecoder

func (*UserControlEventDecoder) Decode

func (dec *UserControlEventDecoder) Decode(msg *UserCtrlEvent) error

type UserControlEventEncoder

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

func NewUserControlEventEncoder

func NewUserControlEventEncoder(w io.Writer) *UserControlEventEncoder

func (*UserControlEventEncoder) Encode

func (enc *UserControlEventEncoder) Encode(msg UserCtrlEvent) error

type UserCtrl

type UserCtrl struct {
	Event UserCtrlEvent
}

UserCtrl (4)

func (*UserCtrl) TypeID

func (m *UserCtrl) TypeID() TypeID

type UserCtrlEvent

type UserCtrlEvent interface{}

type UserCtrlEventPingRequest

type UserCtrlEventPingRequest struct {
	Timestamp uint32
}

UserCtrlEventPingRequest (6)

type UserCtrlEventPingResponse

type UserCtrlEventPingResponse struct {
	Timestamp uint32
}

UserCtrlEventPingResponse (7)

type UserCtrlEventSetBufferLength

type UserCtrlEventSetBufferLength struct {
	StreamID uint32
	LengthMs uint32
}

UserCtrlEventSetBufferLength (3)

type UserCtrlEventStreamBegin

type UserCtrlEventStreamBegin struct {
	StreamID uint32
}

UserCtrlEventStreamBegin (0)

type UserCtrlEventStreamDry

type UserCtrlEventStreamDry struct {
	StreamID uint32
}

UserCtrlEventStreamDry (2)

type UserCtrlEventStreamEOF

type UserCtrlEventStreamEOF struct {
	StreamID uint32
}

UserCtrlEventStreamEOF (1)

type UserCtrlEventStreamIsRecorded

type UserCtrlEventStreamIsRecorded struct {
	StreamID uint32
}

UserCtrlEventStreamIsRecorded (4)

type VideoMessage

type VideoMessage struct {
	Payload io.Reader
}

VideoMessage(9)

func (*VideoMessage) TypeID

func (m *VideoMessage) TypeID() TypeID

type WinAckSize

type WinAckSize struct {
	Size int32
}

WinAckSize (5)

func (*WinAckSize) TypeID

func (m *WinAckSize) TypeID() TypeID

Jump to

Keyboard shortcuts

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