SYMBOL INDEX (690 symbols across 62 files) FILE: av/av.go constant TAG_AUDIO (line 9) | TAG_AUDIO = 8 constant TAG_VIDEO (line 10) | TAG_VIDEO = 9 constant TAG_SCRIPTDATAAMF0 (line 11) | TAG_SCRIPTDATAAMF0 = 18 constant TAG_SCRIPTDATAAMF3 (line 12) | TAG_SCRIPTDATAAMF3 = 0xf constant MetadatAMF0 (line 16) | MetadatAMF0 = 0x12 constant MetadataAMF3 (line 17) | MetadataAMF3 = 0xf constant SOUND_MP3 (line 21) | SOUND_MP3 = 2 constant SOUND_NELLYMOSER_16KHZ_MONO (line 22) | SOUND_NELLYMOSER_16KHZ_MONO = 4 constant SOUND_NELLYMOSER_8KHZ_MONO (line 23) | SOUND_NELLYMOSER_8KHZ_MONO = 5 constant SOUND_NELLYMOSER (line 24) | SOUND_NELLYMOSER = 6 constant SOUND_ALAW (line 25) | SOUND_ALAW = 7 constant SOUND_MULAW (line 26) | SOUND_MULAW = 8 constant SOUND_AAC (line 27) | SOUND_AAC = 10 constant SOUND_SPEEX (line 28) | SOUND_SPEEX = 11 constant SOUND_5_5Khz (line 30) | SOUND_5_5Khz = 0 constant SOUND_11Khz (line 31) | SOUND_11Khz = 1 constant SOUND_22Khz (line 32) | SOUND_22Khz = 2 constant SOUND_44Khz (line 33) | SOUND_44Khz = 3 constant SOUND_8BIT (line 35) | SOUND_8BIT = 0 constant SOUND_16BIT (line 36) | SOUND_16BIT = 1 constant SOUND_MONO (line 38) | SOUND_MONO = 0 constant SOUND_STEREO (line 39) | SOUND_STEREO = 1 constant AAC_SEQHDR (line 41) | AAC_SEQHDR = 0 constant AAC_RAW (line 42) | AAC_RAW = 1 constant AVC_SEQHDR (line 46) | AVC_SEQHDR = 0 constant AVC_NALU (line 47) | AVC_NALU = 1 constant AVC_EOS (line 48) | AVC_EOS = 2 constant FRAME_KEY (line 50) | FRAME_KEY = 1 constant FRAME_INTER (line 51) | FRAME_INTER = 2 constant VIDEO_H264 (line 53) | VIDEO_H264 = 7 type Packet (line 62) | type Packet struct type PacketHeader (line 72) | type PacketHeader interface type AudioPacketHeader (line 75) | type AudioPacketHeader interface type VideoPacketHeader (line 81) | type VideoPacketHeader interface type Demuxer (line 89) | type Demuxer interface type Muxer (line 93) | type Muxer interface type SampleRater (line 97) | type SampleRater interface type CodecParser (line 101) | type CodecParser interface type GetWriter (line 106) | type GetWriter interface type Handler (line 110) | type Handler interface type Alive (line 115) | type Alive interface type Closer (line 119) | type Closer interface type CalcTime (line 124) | type CalcTime interface type Info (line 128) | type Info struct method IsInterval (line 135) | func (info Info) IsInterval() bool { method String (line 139) | func (info Info) String() string { type ReadCloser (line 144) | type ReadCloser interface type WriteCloser (line 150) | type WriteCloser interface FILE: av/rwbase.go type RWBaser (line 8) | type RWBaser struct method BaseTimeStamp (line 24) | func (rw *RWBaser) BaseTimeStamp() uint32 { method CalcBaseTimestamp (line 28) | func (rw *RWBaser) CalcBaseTimestamp() { method RecTimeStamp (line 36) | func (rw *RWBaser) RecTimeStamp(timestamp, typeID uint32) { method SetPreTime (line 44) | func (rw *RWBaser) SetPreTime() { method Alive (line 50) | func (rw *RWBaser) Alive() bool { function NewRWBaser (line 17) | func NewRWBaser(duration time.Duration) RWBaser { FILE: configure/channel.go type RoomKeysType (line 13) | type RoomKeysType struct method SetKey (line 45) | func (r *RoomKeysType) SetKey(channel string) (key string, err error) { method GetKey (line 74) | func (r *RoomKeysType) GetKey(channel string) (newKey string, err erro... method GetChannel (line 95) | func (r *RoomKeysType) GetChannel(key string) (channel string, err err... method DeleteChannel (line 108) | func (r *RoomKeysType) DeleteChannel(channel string) bool { method DeleteKey (line 122) | func (r *RoomKeysType) DeleteKey(key string) bool { function Init (line 24) | func Init() { FILE: configure/liveconfig.go type Application (line 27) | type Application struct type Applications (line 36) | type Applications type JWT (line 38) | type JWT struct type ServerCfg (line 42) | type ServerCfg struct function initLog (line 97) | func initLog() { function init (line 104) | func init() { function initDefault (line 110) | func initDefault() { function CheckAppName (line 165) | func CheckAppName(appname string) bool { function GetStaticPushUrlList (line 176) | func GetStaticPushUrlList(appname string) ([]string, bool) { FILE: container/flv/demuxer.go type Demuxer (line 12) | type Demuxer struct method DemuxH (line 19) | func (d *Demuxer) DemuxH(p *av.Packet) error { method Demux (line 30) | func (d *Demuxer) Demux(p *av.Packet) error { function NewDemuxer (line 15) | func NewDemuxer() *Demuxer { FILE: container/flv/muxer.go constant headerLen (line 49) | headerLen = 11 type FLVWriter (line 52) | type FLVWriter struct method Write (line 81) | func (writer *FLVWriter) Write(p *av.Packet) error { method Wait (line 127) | func (writer *FLVWriter) Wait() { method Close (line 134) | func (writer *FLVWriter) Close(error) { method Info (line 143) | func (writer *FLVWriter) Info() (ret av.Info) { function NewFLVWriter (line 62) | func NewFLVWriter(app, title, url string, ctx *os.File) *FLVWriter { type FlvDvr (line 150) | type FlvDvr struct method GetWriter (line 152) | func (f *FlvDvr) GetWriter(info av.Info) av.WriteCloser { FILE: container/flv/tag.go type flvTag (line 9) | type flvTag struct type mediaTag (line 16) | type mediaTag struct type Tag (line 104) | type Tag struct method SoundFormat (line 109) | func (tag *Tag) SoundFormat() uint8 { method AACPacketType (line 113) | func (tag *Tag) AACPacketType() uint8 { method IsKeyFrame (line 117) | func (tag *Tag) IsKeyFrame() bool { method IsSeq (line 121) | func (tag *Tag) IsSeq() bool { method CodecID (line 126) | func (tag *Tag) CodecID() uint8 { method CompositionTime (line 130) | func (tag *Tag) CompositionTime() int32 { method ParseMediaTagHeader (line 135) | func (tag *Tag) ParseMediaTagHeader(b []byte, isVideo bool) (n int, er... method parseAudioHeader (line 145) | func (tag *Tag) parseAudioHeader(b []byte) (n int, err error) { method parseVideoHeader (line 164) | func (tag *Tag) parseVideoHeader(b []byte) (n int, err error) { FILE: container/ts/crc32.go function GenCrc32 (line 3) | func GenCrc32(src []byte) uint32 { FILE: container/ts/muxer.go constant tsDefaultDataLen (line 10) | tsDefaultDataLen = 184 constant tsPacketLen (line 11) | tsPacketLen = 188 constant h264DefaultHZ (line 12) | h264DefaultHZ = 90 constant videoPID (line 14) | videoPID = 0x100 constant audioPID (line 15) | audioPID = 0x101 constant videoSID (line 16) | videoSID = 0xe0 constant audioSID (line 17) | audioSID = 0xc0 type Muxer (line 20) | type Muxer struct method Mux (line 34) | func (muxer *Muxer) Mux(p *av.Packet, w io.Writer) error { method PAT (line 162) | func (muxer *Muxer) PAT() []byte { method PMT (line 199) | func (muxer *Muxer) PMT(soundFormat byte, hasVideo bool) []byte { method adaptationBufInit (line 258) | func (muxer *Muxer) adaptationBufInit(src []byte, remainBytes byte) { method writePcr (line 270) | func (muxer *Muxer) writePcr(b []byte, i byte, pcr int64) error { function NewMuxer (line 30) | func NewMuxer() *Muxer { type pesHeader (line 286) | type pesHeader struct method packet (line 292) | func (header *pesHeader) packet(p *av.Packet, pts, dts int64) error { method writeTs (line 345) | func (header *pesHeader) writeTs(src []byte, i int, fb int, ts int64) { FILE: container/ts/muxer_test.go type TestWriter (line 11) | type TestWriter struct method Write (line 17) | func (w *TestWriter) Write(p []byte) (int, error) { function TestTSEncoder (line 23) | func TestTSEncoder(t *testing.T) { FILE: main.go function startHls (line 22) | func startHls() *hls.Server { function startRtmp (line 42) | func startRtmp(stream *rtmp.RtmpStream, hlsServer *hls.Server) { function startHTTPFlv (line 92) | func startHTTPFlv(stream *rtmp.RtmpStream) { function startAPI (line 112) | func startAPI(stream *rtmp.RtmpStream) { function init (line 134) | func init() { function main (line 144) | func main() { FILE: parser/aac/parser.go type mpegExtension (line 10) | type mpegExtension struct type mpegCfgInfo (line 15) | type mpegCfgInfo struct constant adtsHeaderLen (line 34) | adtsHeaderLen = 7 type Parser (line 37) | type Parser struct method specificInfo (line 51) | func (parser *Parser) specificInfo(src []byte) error { method adts (line 62) | func (parser *Parser) adts(src []byte, w io.Writer) error { method SampleRate (line 98) | func (parser *Parser) SampleRate() int { method Parse (line 106) | func (parser *Parser) Parse(b []byte, packetType uint8, w io.Writer) (... function NewParser (line 43) | func NewParser() *Parser { FILE: parser/h264/parser.go constant i_frame (line 10) | i_frame byte = 0 constant p_frame (line 11) | p_frame byte = 1 constant b_frame (line 12) | b_frame byte = 2 constant nalu_type_not_define (line 16) | nalu_type_not_define byte = 0 constant nalu_type_slice (line 17) | nalu_type_slice byte = 1 constant nalu_type_dpa (line 18) | nalu_type_dpa byte = 2 constant nalu_type_dpb (line 19) | nalu_type_dpb byte = 3 constant nalu_type_dpc (line 20) | nalu_type_dpc byte = 4 constant nalu_type_idr (line 21) | nalu_type_idr byte = 5 constant nalu_type_sei (line 22) | nalu_type_sei byte = 6 constant nalu_type_sps (line 23) | nalu_type_sps byte = 7 constant nalu_type_pps (line 24) | nalu_type_pps byte = 8 constant nalu_type_aud (line 25) | nalu_type_aud byte = 9 constant nalu_type_eoesq (line 26) | nalu_type_eoesq byte = 10 constant nalu_type_eostream (line 27) | nalu_type_eostream byte = 11 constant nalu_type_filler (line 28) | nalu_type_filler byte = 12 constant naluBytesLen (line 32) | naluBytesLen int = 4 constant maxSpsPpsLen (line 33) | maxSpsPpsLen int = 2 * 1024 type Parser (line 50) | type Parser struct method parseSpecificInfo (line 77) | func (parser *Parser) parseSpecificInfo(src []byte) error { method isNaluHeader (line 123) | func (parser *Parser) isNaluHeader(src []byte) bool { method naluSize (line 133) | func (parser *Parser) naluSize(src []byte) (int, error) { method getAnnexbH264 (line 145) | func (parser *Parser) getAnnexbH264(src []byte, w io.Writer) error { method Parse (line 219) | func (parser *Parser) Parse(b []byte, isSeq bool, w io.Writer) (err er... type sequenceHeader (line 56) | type sequenceHeader struct function NewParser (line 70) | func NewParser() *Parser { FILE: parser/h264/parser_test.go function TestH264SeqDemux (line 11) | func TestH264SeqDemux(t *testing.T) { function TestH264AnnexbDemux (line 28) | func TestH264AnnexbDemux(t *testing.T) { function TestH264NalueSizeException (line 42) | func TestH264NalueSizeException(t *testing.T) { function TestH264Mp4Demux (line 53) | func TestH264Mp4Demux(t *testing.T) { function TestH264Mp4DemuxException1 (line 70) | func TestH264Mp4DemuxException1(t *testing.T) { function TestH264Mp4DemuxException2 (line 82) | func TestH264Mp4DemuxException2(t *testing.T) { FILE: parser/mp3/parser.go type Parser (line 7) | type Parser struct method Parse (line 26) | func (parser *Parser) Parse(src []byte) error { method SampleRate (line 38) | func (parser *Parser) SampleRate() int { function NewParser (line 11) | func NewParser() *Parser { FILE: parser/parser.go type CodecParser (line 17) | type CodecParser struct method SampleRate (line 27) | func (codeParser *CodecParser) SampleRate() (int, error) { method Parse (line 37) | func (codeParser *CodecParser) Parse(p *av.Packet, w io.Writer) (err e... function NewCodecParser (line 23) | func NewCodecParser() *CodecParser { FILE: protocol/amf/amf.go method DecodeBatch (line 8) | func (d *Decoder) DecodeBatch(r io.Reader, ver Version) (ret []interface... method Decode (line 20) | func (d *Decoder) Decode(r io.Reader, ver Version) (interface{}, error) { method EncodeBatch (line 31) | func (e *Encoder) EncodeBatch(w io.Writer, ver Version, val ...interface... method Encode (line 40) | func (e *Encoder) Encode(w io.Writer, val interface{}, ver Version) (int... FILE: protocol/amf/amf_test.go function EncodeAndDecode (line 11) | func EncodeAndDecode(val interface{}, ver Version) (result interface{}, ... function Compare (line 30) | func Compare(val interface{}, ver Version, name string, t *testing.T) { function TestAmf0Number (line 51) | func TestAmf0Number(t *testing.T) { function TestAmf0String (line 57) | func TestAmf0String(t *testing.T) { function TestAmf0Boolean (line 62) | func TestAmf0Boolean(t *testing.T) { function TestAmf0Null (line 67) | func TestAmf0Null(t *testing.T) { function TestAmf0Object (line 71) | func TestAmf0Object(t *testing.T) { function TestAmf0Array (line 105) | func TestAmf0Array(t *testing.T) { function TestAmf3Integer (line 125) | func TestAmf3Integer(t *testing.T) { function TestAmf3Double (line 131) | func TestAmf3Double(t *testing.T) { function TestAmf3String (line 137) | func TestAmf3String(t *testing.T) { function TestAmf3Boolean (line 142) | func TestAmf3Boolean(t *testing.T) { function TestAmf3Null (line 147) | func TestAmf3Null(t *testing.T) { function TestAmf3Date (line 151) | func TestAmf3Date(t *testing.T) { function TestAmf3Array (line 159) | func TestAmf3Array(t *testing.T) { function TestAmf3ByteArray (line 187) | func TestAmf3ByteArray(t *testing.T) { FILE: protocol/amf/const.go constant AMF0 (line 8) | AMF0 = 0x00 constant AMF3 (line 9) | AMF3 = 0x03 constant AMF0_NUMBER_MARKER (line 13) | AMF0_NUMBER_MARKER = 0x00 constant AMF0_BOOLEAN_MARKER (line 14) | AMF0_BOOLEAN_MARKER = 0x01 constant AMF0_STRING_MARKER (line 15) | AMF0_STRING_MARKER = 0x02 constant AMF0_OBJECT_MARKER (line 16) | AMF0_OBJECT_MARKER = 0x03 constant AMF0_MOVIECLIP_MARKER (line 17) | AMF0_MOVIECLIP_MARKER = 0x04 constant AMF0_NULL_MARKER (line 18) | AMF0_NULL_MARKER = 0x05 constant AMF0_UNDEFINED_MARKER (line 19) | AMF0_UNDEFINED_MARKER = 0x06 constant AMF0_REFERENCE_MARKER (line 20) | AMF0_REFERENCE_MARKER = 0x07 constant AMF0_ECMA_ARRAY_MARKER (line 21) | AMF0_ECMA_ARRAY_MARKER = 0x08 constant AMF0_OBJECT_END_MARKER (line 22) | AMF0_OBJECT_END_MARKER = 0x09 constant AMF0_STRICT_ARRAY_MARKER (line 23) | AMF0_STRICT_ARRAY_MARKER = 0x0a constant AMF0_DATE_MARKER (line 24) | AMF0_DATE_MARKER = 0x0b constant AMF0_LONG_STRING_MARKER (line 25) | AMF0_LONG_STRING_MARKER = 0x0c constant AMF0_UNSUPPORTED_MARKER (line 26) | AMF0_UNSUPPORTED_MARKER = 0x0d constant AMF0_RECORDSET_MARKER (line 27) | AMF0_RECORDSET_MARKER = 0x0e constant AMF0_XML_DOCUMENT_MARKER (line 28) | AMF0_XML_DOCUMENT_MARKER = 0x0f constant AMF0_TYPED_OBJECT_MARKER (line 29) | AMF0_TYPED_OBJECT_MARKER = 0x10 constant AMF0_ACMPLUS_OBJECT_MARKER (line 30) | AMF0_ACMPLUS_OBJECT_MARKER = 0x11 constant AMF0_BOOLEAN_FALSE (line 34) | AMF0_BOOLEAN_FALSE = 0x00 constant AMF0_BOOLEAN_TRUE (line 35) | AMF0_BOOLEAN_TRUE = 0x01 constant AMF0_STRING_MAX (line 36) | AMF0_STRING_MAX = 65535 constant AMF3_INTEGER_MAX (line 37) | AMF3_INTEGER_MAX = 536870911 constant AMF3_UNDEFINED_MARKER (line 41) | AMF3_UNDEFINED_MARKER = 0x00 constant AMF3_NULL_MARKER (line 42) | AMF3_NULL_MARKER = 0x01 constant AMF3_FALSE_MARKER (line 43) | AMF3_FALSE_MARKER = 0x02 constant AMF3_TRUE_MARKER (line 44) | AMF3_TRUE_MARKER = 0x03 constant AMF3_INTEGER_MARKER (line 45) | AMF3_INTEGER_MARKER = 0x04 constant AMF3_DOUBLE_MARKER (line 46) | AMF3_DOUBLE_MARKER = 0x05 constant AMF3_STRING_MARKER (line 47) | AMF3_STRING_MARKER = 0x06 constant AMF3_XMLDOC_MARKER (line 48) | AMF3_XMLDOC_MARKER = 0x07 constant AMF3_DATE_MARKER (line 49) | AMF3_DATE_MARKER = 0x08 constant AMF3_ARRAY_MARKER (line 50) | AMF3_ARRAY_MARKER = 0x09 constant AMF3_OBJECT_MARKER (line 51) | AMF3_OBJECT_MARKER = 0x0a constant AMF3_XMLSTRING_MARKER (line 52) | AMF3_XMLSTRING_MARKER = 0x0b constant AMF3_BYTEARRAY_MARKER (line 53) | AMF3_BYTEARRAY_MARKER = 0x0c type ExternalHandler (line 56) | type ExternalHandler type Decoder (line 58) | type Decoder struct method RegisterExternalHandler (line 72) | func (d *Decoder) RegisterExternalHandler(name string, f ExternalHandl... function NewDecoder (line 66) | func NewDecoder() *Decoder { type Encoder (line 76) | type Encoder struct type Version (line 79) | type Version type Array (line 81) | type Array type Object (line 82) | type Object type TypedObject (line 84) | type TypedObject struct type Trait (line 89) | type Trait struct function NewTrait (line 96) | func NewTrait() *Trait { function NewTypedObject (line 100) | func NewTypedObject() *TypedObject { FILE: protocol/amf/decoder_amf0.go method DecodeAmf0 (line 10) | func (d *Decoder) DecodeAmf0(r io.Reader) (interface{}, error) { method DecodeAmf0Number (line 58) | func (d *Decoder) DecodeAmf0Number(r io.Reader, decodeMarker bool) (resu... method DecodeAmf0Boolean (line 73) | func (d *Decoder) DecodeAmf0Boolean(r io.Reader, decodeMarker bool) (res... method DecodeAmf0String (line 96) | func (d *Decoder) DecodeAmf0String(r io.Reader, decodeMarker bool) (resu... method DecodeAmf0Object (line 119) | func (d *Decoder) DecodeAmf0Object(r io.Reader, decodeMarker bool) (Obje... method DecodeAmf0Null (line 155) | func (d *Decoder) DecodeAmf0Null(r io.Reader, decodeMarker bool) (result... method DecodeAmf0Undefined (line 162) | func (d *Decoder) DecodeAmf0Undefined(r io.Reader, decodeMarker bool) (r... method DecodeAmf0EcmaArray (line 199) | func (d *Decoder) DecodeAmf0EcmaArray(r io.Reader, decodeMarker bool) (O... method DecodeAmf0StrictArray (line 219) | func (d *Decoder) DecodeAmf0StrictArray(r io.Reader, decodeMarker bool) ... method DecodeAmf0Date (line 248) | func (d *Decoder) DecodeAmf0Date(r io.Reader, decodeMarker bool) (result... method DecodeAmf0LongString (line 268) | func (d *Decoder) DecodeAmf0LongString(r io.Reader, decodeMarker bool) (... method DecodeAmf0Unsupported (line 289) | func (d *Decoder) DecodeAmf0Unsupported(r io.Reader, decodeMarker bool) ... method DecodeAmf0XmlDocument (line 299) | func (d *Decoder) DecodeAmf0XmlDocument(r io.Reader, decodeMarker bool) ... method DecodeAmf0TypedObject (line 315) | func (d *Decoder) DecodeAmf0TypedObject(r io.Reader, decodeMarker bool) ... FILE: protocol/amf/decoder_amf0_test.go function TestDecodeAmf0Number (line 8) | func TestDecodeAmf0Number(t *testing.T) { function TestDecodeAmf0BooleanTrue (line 44) | func TestDecodeAmf0BooleanTrue(t *testing.T) { function TestDecodeAmf0BooleanFalse (line 80) | func TestDecodeAmf0BooleanFalse(t *testing.T) { function TestDecodeAmf0String (line 116) | func TestDecodeAmf0String(t *testing.T) { function TestDecodeAmf0Object (line 152) | func TestDecodeAmf0Object(t *testing.T) { function TestDecodeAmf0Null (line 199) | func TestDecodeAmf0Null(t *testing.T) { function TestDecodeAmf0Undefined (line 224) | func TestDecodeAmf0Undefined(t *testing.T) { function TestDecodeAmf0EcmaArray (line 271) | func TestDecodeAmf0EcmaArray(t *testing.T) { function TestDecodeAmf0StrictArray (line 318) | func TestDecodeAmf0StrictArray(t *testing.T) { function TestDecodeAmf0Date (line 383) | func TestDecodeAmf0Date(t *testing.T) { function TestDecodeAmf0LongString (line 419) | func TestDecodeAmf0LongString(t *testing.T) { function TestDecodeAmf0Unsupported (line 455) | func TestDecodeAmf0Unsupported(t *testing.T) { function TestDecodeAmf0XmlDocument (line 480) | func TestDecodeAmf0XmlDocument(t *testing.T) { function TestDecodeAmf0TypedObject (line 516) | func TestDecodeAmf0TypedObject(t *testing.T) { FILE: protocol/amf/decoder_amf3.go method DecodeAmf3 (line 11) | func (d *Decoder) DecodeAmf3(r io.Reader) (interface{}, error) { method DecodeAmf3Undefined (line 51) | func (d *Decoder) DecodeAmf3Undefined(r io.Reader, decodeMarker bool) (r... method DecodeAmf3Null (line 58) | func (d *Decoder) DecodeAmf3Null(r io.Reader, decodeMarker bool) (result... method DecodeAmf3False (line 65) | func (d *Decoder) DecodeAmf3False(r io.Reader, decodeMarker bool) (resul... method DecodeAmf3True (line 73) | func (d *Decoder) DecodeAmf3True(r io.Reader, decodeMarker bool) (result... method DecodeAmf3Integer (line 80) | func (d *Decoder) DecodeAmf3Integer(r io.Reader, decodeMarker bool) (res... method DecodeAmf3Double (line 100) | func (d *Decoder) DecodeAmf3Double(r io.Reader, decodeMarker bool) (resu... method DecodeAmf3String (line 117) | func (d *Decoder) DecodeAmf3String(r io.Reader, decodeMarker bool) (resu... method DecodeAmf3Date (line 152) | func (d *Decoder) DecodeAmf3Date(r io.Reader, decodeMarker bool) (result... method DecodeAmf3Array (line 191) | func (d *Decoder) DecodeAmf3Array(r io.Reader, decodeMarker bool) (resul... method DecodeAmf3Object (line 239) | func (d *Decoder) DecodeAmf3Object(r io.Reader, decodeMarker bool) (resu... method DecodeAmf3Xml (line 380) | func (d *Decoder) DecodeAmf3Xml(r io.Reader, decodeMarker bool) (result ... method DecodeAmf3ByteArray (line 430) | func (d *Decoder) DecodeAmf3ByteArray(r io.Reader, decodeMarker bool) (r... method decodeU29 (line 463) | func (d *Decoder) decodeU29(r io.Reader) (result uint32, err error) { method decodeReferenceInt (line 487) | func (d *Decoder) decodeReferenceInt(r io.Reader) (isRef bool, refVal ui... FILE: protocol/amf/decoder_amf3_external.go method decodeAbstractMessage (line 10) | func (d *Decoder) decodeAbstractMessage(r io.Reader) (result Object, err... method decodeAsyncMessageExt (line 23) | func (d *Decoder) decodeAsyncMessageExt(r io.Reader) (result Object, err... method decodeAsyncMessage (line 26) | func (d *Decoder) decodeAsyncMessage(r io.Reader) (result Object, err er... method decodeAcknowledgeMessageExt (line 40) | func (d *Decoder) decodeAcknowledgeMessageExt(r io.Reader) (result Objec... method decodeAcknowledgeMessage (line 43) | func (d *Decoder) decodeAcknowledgeMessage(r io.Reader) (result Object, ... method decodeArrayCollection (line 57) | func (d *Decoder) decodeArrayCollection(r io.Reader) (interface{}, error) { method decodeExternal (line 66) | func (d *Decoder) decodeExternal(r io.Reader, obj *Object, fieldSets ...... function readFlags (line 113) | func readFlags(r io.Reader) (result []uint8, err error) { FILE: protocol/amf/decoder_amf3_test.go type u29TestCase (line 8) | type u29TestCase struct function TestDecodeAmf3Undefined (line 31) | func TestDecodeAmf3Undefined(t *testing.T) { function TestDecodeAmf3Null (line 45) | func TestDecodeAmf3Null(t *testing.T) { function TestDecodeAmf3False (line 59) | func TestDecodeAmf3False(t *testing.T) { function TestDecodeAmf3True (line 74) | func TestDecodeAmf3True(t *testing.T) { function TestDecodeU29 (line 89) | func TestDecodeU29(t *testing.T) { function TestDecodeAmf3Integer (line 104) | func TestDecodeAmf3Integer(t *testing.T) { function TestDecodeAmf3Double (line 137) | func TestDecodeAmf3Double(t *testing.T) { function TestDecodeAmf3String (line 152) | func TestDecodeAmf3String(t *testing.T) { function TestDecodeAmf3Array (line 167) | func TestDecodeAmf3Array(t *testing.T) { function TestDecodeAmf3Object (line 194) | func TestDecodeAmf3Object(t *testing.T) { FILE: protocol/amf/encoder_amf0.go method EncodeAmf0 (line 11) | func (e *Encoder) EncodeAmf0(w io.Writer, val interface{}) (int, error) { method EncodeAmf0Number (line 61) | func (e *Encoder) EncodeAmf0Number(w io.Writer, val float64, encodeMarke... method EncodeAmf0Boolean (line 80) | func (e *Encoder) EncodeAmf0Boolean(w io.Writer, val bool, encodeMarker ... method EncodeAmf0String (line 109) | func (e *Encoder) EncodeAmf0String(w io.Writer, val string, encodeMarker... method EncodeAmf0Object (line 138) | func (e *Encoder) EncodeAmf0Object(w io.Writer, val Object, encodeMarker... method EncodeAmf0Null (line 178) | func (e *Encoder) EncodeAmf0Null(w io.Writer, encodeMarker bool) (n int,... method EncodeAmf0Undefined (line 191) | func (e *Encoder) EncodeAmf0Undefined(w io.Writer, encodeMarker bool) (n... method EncodeAmf0EcmaArray (line 208) | func (e *Encoder) EncodeAmf0EcmaArray(w io.Writer, val Object, encodeMar... method EncodeAmf0StrictArray (line 237) | func (e *Encoder) EncodeAmf0StrictArray(w io.Writer, val Array, encodeMa... method EncodeAmf0LongString (line 268) | func (e *Encoder) EncodeAmf0LongString(w io.Writer, val string, encodeMa... method EncodeAmf0Unsupported (line 295) | func (e *Encoder) EncodeAmf0Unsupported(w io.Writer, encodeMarker bool) ... method EncodeAmf0Amf3Marker (line 307) | func (e *Encoder) EncodeAmf0Amf3Marker(w io.Writer) error { FILE: protocol/amf/encoder_amf0_test.go function TestEncodeAmf0Number (line 9) | func TestEncodeAmf0Number(t *testing.T) { function TestEncodeAmf0BooleanTrue (line 27) | func TestEncodeAmf0BooleanTrue(t *testing.T) { function TestEncodeAmf0BooleanFalse (line 45) | func TestEncodeAmf0BooleanFalse(t *testing.T) { function TestEncodeAmf0String (line 63) | func TestEncodeAmf0String(t *testing.T) { function TestEncodeAmf0Object (line 81) | func TestEncodeAmf0Object(t *testing.T) { function TestEncodeAmf0EcmaArray (line 102) | func TestEncodeAmf0EcmaArray(t *testing.T) { function TestEncodeAmf0StrictArray (line 121) | func TestEncodeAmf0StrictArray(t *testing.T) { function TestEncodeAmf0Null (line 142) | func TestEncodeAmf0Null(t *testing.T) { function TestEncodeAmf0LongString (line 160) | func TestEncodeAmf0LongString(t *testing.T) { FILE: protocol/amf/encoder_amf3.go method EncodeAmf3 (line 14) | func (e *Encoder) EncodeAmf3(w io.Writer, val interface{}) (int, error) { method EncodeAmf3Undefined (line 85) | func (e *Encoder) EncodeAmf3Undefined(w io.Writer, encodeMarker bool) (n... method EncodeAmf3Null (line 98) | func (e *Encoder) EncodeAmf3Null(w io.Writer, encodeMarker bool) (n int,... method EncodeAmf3False (line 111) | func (e *Encoder) EncodeAmf3False(w io.Writer, encodeMarker bool) (n int... method EncodeAmf3True (line 124) | func (e *Encoder) EncodeAmf3True(w io.Writer, encodeMarker bool) (n int,... method EncodeAmf3Integer (line 136) | func (e *Encoder) EncodeAmf3Integer(w io.Writer, val uint32, encodeMarke... method EncodeAmf3Double (line 155) | func (e *Encoder) EncodeAmf3Double(w io.Writer, val float64, encodeMarke... method EncodeAmf3String (line 176) | func (e *Encoder) EncodeAmf3String(w io.Writer, val string, encodeMarker... method EncodeAmf3Date (line 199) | func (e *Encoder) EncodeAmf3Date(w io.Writer, val time.Time, encodeMarke... method EncodeAmf3Array (line 227) | func (e *Encoder) EncodeAmf3Array(w io.Writer, val Array, encodeMarker b... method EncodeAmf3Object (line 264) | func (e *Encoder) EncodeAmf3Object(w io.Writer, val TypedObject, encodeM... method EncodeAmf3ByteArray (line 367) | func (e *Encoder) EncodeAmf3ByteArray(w io.Writer, val []byte, encodeMar... method encodeAmf3Utf8 (line 395) | func (e *Encoder) encodeAmf3Utf8(w io.Writer, val string) (n int, err er... method encodeAmf3Uint29 (line 415) | func (e *Encoder) encodeAmf3Uint29(w io.Writer, val uint32) (n int, err ... FILE: protocol/amf/encoder_amf3_test.go function TestEncodeAmf3EmptyString (line 8) | func TestEncodeAmf3EmptyString(t *testing.T) { function TestEncodeAmf3Undefined (line 24) | func TestEncodeAmf3Undefined(t *testing.T) { function TestEncodeAmf3Null (line 40) | func TestEncodeAmf3Null(t *testing.T) { function TestEncodeAmf3False (line 56) | func TestEncodeAmf3False(t *testing.T) { function TestEncodeAmf3True (line 72) | func TestEncodeAmf3True(t *testing.T) { function TestEncodeAmf3Integer (line 88) | func TestEncodeAmf3Integer(t *testing.T) { function TestEncodeAmf3Double (line 118) | func TestEncodeAmf3Double(t *testing.T) { function TestEncodeAmf3String (line 134) | func TestEncodeAmf3String(t *testing.T) { function TestEncodeAmf3Array (line 150) | func TestEncodeAmf3Array(t *testing.T) { function TestEncodeAmf3Object (line 176) | func TestEncodeAmf3Object(t *testing.T) { FILE: protocol/amf/metadata.go constant ADD (line 11) | ADD = 0x0 constant DEL (line 12) | DEL = 0x3 constant SetDataFrame (line 16) | SetDataFrame string = "@setDataFrame" constant OnMetaData (line 17) | OnMetaData string = "onMetaData" function init (line 22) | func init() { function MetaDataReform (line 31) | func MetaDataReform(p []byte, flag uint8) ([]byte, error) { FILE: protocol/amf/util.go function DumpBytes (line 9) | func DumpBytes(label string, buf []byte, size int) { function Dump (line 17) | func Dump(label string, val interface{}) error { function WriteByte (line 27) | func WriteByte(w io.Writer, b byte) (err error) { function WriteBytes (line 36) | func WriteBytes(w io.Writer, bytes []byte) (int, error) { function ReadByte (line 40) | func ReadByte(r io.Reader) (byte, error) { function ReadBytes (line 49) | func ReadBytes(r io.Reader, n int) ([]byte, error) { function WriteMarker (line 64) | func WriteMarker(w io.Writer, m byte) error { function ReadMarker (line 68) | func ReadMarker(r io.Reader) (byte, error) { function AssertMarker (line 72) | func AssertMarker(r io.Reader, checkMarker bool, m byte) error { FILE: protocol/api/api.go type Response (line 19) | type Response struct method SendJson (line 25) | func (r *Response) SendJson() (int, error) { type Operation (line 32) | type Operation struct type OperationChange (line 38) | type OperationChange struct type ClientInfo (line 45) | type ClientInfo struct type Server (line 51) | type Server struct method Serve (line 103) | func (s *Server) Serve(l net.Listener) error { method GetLiveStatics (line 146) | func (server *Server) GetLiveStatics(w http.ResponseWriter, req *http.... method handlePull (line 246) | func (s *Server) handlePull(w http.ResponseWriter, req *http.Request) { method handlePush (line 315) | func (s *Server) handlePush(w http.ResponseWriter, req *http.Request) { method handleReset (line 378) | func (s *Server) handleReset(w http.ResponseWriter, r *http.Request) { method handleGet (line 410) | func (s *Server) handleGet(w http.ResponseWriter, r *http.Request) { method handleDelete (line 441) | func (s *Server) handleDelete(w http.ResponseWriter, r *http.Request) { function NewServer (line 57) | func NewServer(h av.Handler, rtmpAddr string) *Server { function JWTMiddleware (line 65) | func JWTMiddleware(next http.Handler) http.Handler { type stream (line 130) | type stream struct type streams (line 140) | type streams struct FILE: protocol/hls/align.go constant syncms (line 4) | syncms = 2 type align (line 7) | type align struct method align (line 12) | func (a *align) align(dts *uint64, inc uint32) { FILE: protocol/hls/audio_cache.go constant cache_max_frames (line 6) | cache_max_frames byte = 6 constant audio_cache_len (line 7) | audio_cache_len int = 10 * 1024 type audioCache (line 10) | type audioCache struct method Cache (line 24) | func (a *audioCache) Cache(src []byte, pts uint64) bool { method GetFrame (line 37) | func (a *audioCache) GetFrame() (int, uint64, []byte) { method CacheNum (line 42) | func (a *audioCache) CacheNum() byte { function newAudioCache (line 18) | func newAudioCache() *audioCache { FILE: protocol/hls/cache.go constant maxTSCacheNum (line 11) | maxTSCacheNum = 3 type TSCacheItem (line 18) | type TSCacheItem struct method ID (line 35) | func (tcCacheItem *TSCacheItem) ID() string { method GenM3U8PlayList (line 40) | func (tcCacheItem *TSCacheItem) GenM3U8PlayList() ([]byte, error) { method SetItem (line 67) | func (tcCacheItem *TSCacheItem) SetItem(key string, item TSItem) { method GetItem (line 78) | func (tcCacheItem *TSCacheItem) GetItem(key string) (TSItem, error) { function NewTSCacheItem (line 26) | func NewTSCacheItem(id string) *TSCacheItem { FILE: protocol/hls/hls.go constant duration (line 21) | duration = 3000 type Server (line 37) | type Server struct method Serve (line 50) | func (server *Server) Serve(listener net.Listener) error { method GetWriter (line 66) | func (server *Server) GetWriter(info av.Info) av.WriteCloser { method getConn (line 79) | func (server *Server) getConn(key string) *Source { method checkStop (line 87) | func (server *Server) checkStop() { method handle (line 102) | func (server *Server) handle(w http.ResponseWriter, r *http.Request) { method parseM3u8 (line 154) | func (server *Server) parseM3u8(pathstr string) (key string, err error) { method parseTs (line 160) | func (server *Server) parseTs(pathstr string) (key string, err error) { function NewServer (line 42) | func NewServer() *Server { FILE: protocol/hls/item.go type TSItem (line 3) | type TSItem struct function NewTSItem (line 10) | func NewTSItem(name string, duration, seqNum int, b []byte) TSItem { FILE: protocol/hls/source.go constant videoHZ (line 18) | videoHZ = 90000 constant aacSampleLen (line 19) | aacSampleLen = 1024 constant maxQueueNum (line 20) | maxQueueNum = 512 constant h264_default_hz (line 22) | h264_default_hz uint64 = 90 type Source (line 25) | type Source struct method GetCacheInc (line 68) | func (source *Source) GetCacheInc() *TSCacheItem { method DropPacket (line 72) | func (source *Source) DropPacket(pktQue chan *av.Packet, info av.Info) { method Write (line 100) | func (source *Source) Write(p *av.Packet) (err error) { method SendPacket (line 122) | func (source *Source) SendPacket() error { method Info (line 170) | func (source *Source) Info() (ret av.Info) { method cleanup (line 174) | func (source *Source) cleanup() { method Close (line 182) | func (source *Source) Close(err error) { method cut (line 190) | func (source *Source) cut() { method parse (line 213) | func (source *Source) parse(p *av.Packet) (int32, bool, error) { method calcPtsDts (line 247) | func (source *Source) calcPtsDts(isVideo bool, ts, compositionTs uint3... method flushAudio (line 257) | func (source *Source) flushAudio() error { method muxAudio (line 261) | func (source *Source) muxAudio(limit byte) error { method tsMux (line 272) | func (source *Source) tsMux(p *av.Packet) error { function NewSource (line 43) | func NewSource(info av.Info) *Source { FILE: protocol/hls/status.go type status (line 5) | type status struct method update (line 23) | func (t *status) update(isVideo bool, timestamp uint32) { method resetAndNew (line 34) | func (t *status) resetAndNew() { method durationMs (line 41) | func (t *status) durationMs() int64 { function newStatus (line 15) | func newStatus() *status { FILE: protocol/httpflv/server.go type Server (line 15) | type Server struct method Serve (line 35) | func (server *Server) Serve(l net.Listener) error { method getStreams (line 50) | func (server *Server) getStreams(w http.ResponseWriter, r *http.Reques... method getStream (line 85) | func (server *Server) getStream(w http.ResponseWriter, r *http.Request) { method handleConn (line 95) | func (server *Server) handleConn(w http.ResponseWriter, r *http.Reques... type stream (line 19) | type stream struct type streams (line 24) | type streams struct function NewServer (line 29) | func NewServer(h av.Handler) *Server { FILE: protocol/httpflv/writer.go constant headerLen (line 17) | headerLen = 11 constant maxQueueNum (line 18) | maxQueueNum = 1024 type FLVWriter (line 21) | type FLVWriter struct method DropPacket (line 65) | func (flvWriter *FLVWriter) DropPacket(pktQue chan *av.Packet, info av... method Write (line 92) | func (flvWriter *FLVWriter) Write(p *av.Packet) (err error) { method SendPacket (line 114) | func (flvWriter *FLVWriter) SendPacket() error { method Wait (line 166) | func (flvWriter *FLVWriter) Wait() { method Close (line 173) | func (flvWriter *FLVWriter) Close(error) { method Info (line 182) | func (flvWriter *FLVWriter) Info() (ret av.Info) { function NewFLVWriter (line 32) | func NewFLVWriter(app, title, url string, ctx http.ResponseWriter) *FLVW... FILE: protocol/rtmp/cache/cache.go type Cache (line 8) | type Cache struct method Write (line 24) | func (cache *Cache) Write(p av.Packet) { method Send (line 57) | func (cache *Cache) Send(w av.WriteCloser) error { function NewCache (line 15) | func NewCache() *Cache { FILE: protocol/rtmp/cache/gop.go type array (line 14) | type array struct method reset (line 27) | func (array *array) reset() { method write (line 32) | func (array *array) write(packet *av.Packet) error { method send (line 41) | func (array *array) send(w av.WriteCloser) error { function newArray (line 19) | func newArray() *array { type GopCache (line 52) | type GopCache struct method writeToArray (line 67) | func (gopCache *GopCache) writeToArray(chunk *av.Packet, startNew bool... method Write (line 87) | func (gopCache *GopCache) Write(p *av.Packet) { method sendTo (line 101) | func (gopCache *GopCache) sendTo(w av.WriteCloser) error { method Send (line 118) | func (gopCache *GopCache) Send(w av.WriteCloser) error { function NewGopCache (line 60) | func NewGopCache(num int) *GopCache { FILE: protocol/rtmp/cache/special.go constant SetDataFrame (line 13) | SetDataFrame string = "@setDataFrame" constant OnMetaData (line 14) | OnMetaData string = "onMetaData" function init (line 19) | func init() { type SpecialCache (line 28) | type SpecialCache struct method Write (line 37) | func (specialCache *SpecialCache) Write(p *av.Packet) { method Send (line 42) | func (specialCache *SpecialCache) Send(w av.WriteCloser) error { function NewSpecialCache (line 33) | func NewSpecialCache() *SpecialCache { FILE: protocol/rtmp/core/chunk_stream.go type ChunkStream (line 11) | type ChunkStream struct method full (line 27) | func (chunkStream *ChunkStream) full() bool { method new (line 31) | func (chunkStream *ChunkStream) new(pool *pool.Pool) { method writeHeader (line 38) | func (chunkStream *ChunkStream) writeHeader(w *ReadWriter) error { method writeChunk (line 83) | func (chunkStream *ChunkStream) writeChunk(w *ReadWriter, chunkSize in... method readChunk (line 123) | func (chunkStream *ChunkStream) readChunk(r *ReadWriter, chunkSize uin... FILE: protocol/rtmp/core/chunk_stream_test.go function TestChunkRead1 (line 12) | func TestChunkRead1(t *testing.T) { function TestWriteChunk (line 82) | func TestWriteChunk(t *testing.T) { FILE: protocol/rtmp/core/conn.go constant _ (line 13) | _ = iota constant idSetChunkSize (line 14) | idSetChunkSize constant idAbortMessage (line 15) | idAbortMessage constant idAck (line 16) | idAck constant idUserControlMessages (line 17) | idUserControlMessages constant idWindowAckSize (line 18) | idWindowAckSize constant idSetPeerBandwidth (line 19) | idSetPeerBandwidth type Conn (line 22) | type Conn struct method Read (line 48) | func (conn *Conn) Read(c *ChunkStream) error { method Write (line 82) | func (conn *Conn) Write(c *ChunkStream) error { method Flush (line 89) | func (conn *Conn) Flush() error { method Close (line 93) | func (conn *Conn) Close() error { method RemoteAddr (line 97) | func (conn *Conn) RemoteAddr() net.Addr { method LocalAddr (line 101) | func (conn *Conn) LocalAddr() net.Addr { method SetDeadline (line 105) | func (conn *Conn) SetDeadline(t time.Time) error { method NewAck (line 109) | func (conn *Conn) NewAck(size uint32) ChunkStream { method NewSetChunkSize (line 113) | func (conn *Conn) NewSetChunkSize(size uint32) ChunkStream { method NewWindowAckSize (line 117) | func (conn *Conn) NewWindowAckSize(size uint32) ChunkStream { method NewSetPeerBandwidth (line 121) | func (conn *Conn) NewSetPeerBandwidth(size uint32) ChunkStream { method handleControlMsg (line 127) | func (conn *Conn) handleControlMsg(c *ChunkStream) { method ack (line 135) | func (conn *Conn) ack(size uint32) { method userControlMsg (line 177) | func (conn *Conn) userControlMsg(eventType, buflen uint32) ChunkStream { method SetBegin (line 193) | func (conn *Conn) SetBegin() { method SetRecorded (line 201) | func (conn *Conn) SetRecorded() { function NewConn (line 35) | func NewConn(c net.Conn, bufferSize int) *Conn { function initControlMsg (line 148) | func initControlMsg(id, size, value uint32) ChunkStream { constant streamBegin (line 162) | streamBegin uint32 = 0 constant streamEOF (line 163) | streamEOF uint32 = 1 constant streamDry (line 164) | streamDry uint32 = 2 constant setBufferLen (line 165) | setBufferLen uint32 = 3 constant streamIsRecorded (line 166) | streamIsRecorded uint32 = 4 constant pingRequest (line 167) | pingRequest uint32 = 6 constant pingResponse (line 168) | pingResponse uint32 = 7 FILE: protocol/rtmp/core/conn_client.go type ConnClient (line 35) | type ConnClient struct method DecodeBatch (line 60) | func (connClient *ConnClient) DecodeBatch(r io.Reader, ver amf.Version... method readRespMsg (line 65) | func (connClient *ConnClient) readRespMsg() error { method writeMsg (line 134) | func (connClient *ConnClient) writeMsg(args ...interface{}) error { method writeConnectMsg (line 155) | func (connClient *ConnClient) writeConnectMsg() error { method writeCreateStreamMsg (line 170) | func (connClient *ConnClient) writeCreateStreamMsg() error { method writePublishMsg (line 193) | func (connClient *ConnClient) writePublishMsg() error { method writePlayMsg (line 202) | func (connClient *ConnClient) writePlayMsg() error { method Start (line 214) | func (connClient *ConnClient) Start(url string, method string) error { method Write (line 334) | func (connClient *ConnClient) Write(c ChunkStream) error { method Flush (line 346) | func (connClient *ConnClient) Flush() error { method Read (line 350) | func (connClient *ConnClient) Read(c *ChunkStream) (err error) { method GetInfo (line 354) | func (connClient *ConnClient) GetInfo() (app string, name string, url ... method GetStreamId (line 361) | func (connClient *ConnClient) GetStreamId() uint32 { method Close (line 365) | func (connClient *ConnClient) Close(err error) { function NewConnClient (line 51) | func NewConnClient() *ConnClient { FILE: protocol/rtmp/core/conn_server.go type ConnectInfo (line 35) | type ConnectInfo struct type ConnectResp (line 48) | type ConnectResp struct type ConnectEvent (line 53) | type ConnectEvent struct type PublishInfo (line 60) | type PublishInfo struct type ConnServer (line 65) | type ConnServer struct method writeMsg (line 88) | func (connServer *ConnServer) writeMsg(csid, streamID uint32, args ...... method connect (line 109) | func (connServer *ConnServer) connect(vs []interface{}) error { method releaseStream (line 138) | func (connServer *ConnServer) releaseStream(vs []interface{}) error { method fcPublish (line 142) | func (connServer *ConnServer) fcPublish(vs []interface{}) error { method connectResp (line 146) | func (connServer *ConnServer) connectResp(cur *ChunkStream) error { method createStream (line 166) | func (connServer *ConnServer) createStream(vs []interface{}) error { method createStreamResp (line 178) | func (connServer *ConnServer) createStreamResp(cur *ChunkStream) error { method publishOrPlay (line 182) | func (connServer *ConnServer) publishOrPlay(vs []interface{}) error { method publishResp (line 201) | func (connServer *ConnServer) publishResp(cur *ChunkStream) error { method playResp (line 209) | func (connServer *ConnServer) playResp(cur *ChunkStream) error { method handleCmdMsg (line 244) | func (connServer *ConnServer) handleCmdMsg(c *ChunkStream) error { method ReadMsg (line 306) | func (connServer *ConnServer) ReadMsg() error { method IsPublisher (line 325) | func (connServer *ConnServer) IsPublisher() bool { method Write (line 329) | func (connServer *ConnServer) Write(c ChunkStream) error { method Flush (line 341) | func (connServer *ConnServer) Flush() error { method Read (line 345) | func (connServer *ConnServer) Read(c *ChunkStream) (err error) { method GetInfo (line 349) | func (connServer *ConnServer) GetInfo() (app string, name string, url ... method Close (line 356) | func (connServer *ConnServer) Close(err error) { function NewConnServer (line 78) | func NewConnServer(conn *Conn) *ConnServer { FILE: protocol/rtmp/core/conn_test.go function TestConnReadNormal (line 13) | func TestConnReadNormal(t *testing.T) { function TestConnCrossReading (line 42) | func TestConnCrossReading(t *testing.T) { function TestSetChunksizeForWrite (line 96) | func TestSetChunksizeForWrite(t *testing.T) { function TestSetChunksize (line 148) | func TestSetChunksize(t *testing.T) { function TestConnWrite (line 205) | func TestConnWrite(t *testing.T) { FILE: protocol/rtmp/core/handshake.go function hsMakeDigest (line 42) | func hsMakeDigest(key []byte, src []byte, gap int) (dst []byte) { function hsCalcDigestPos (line 53) | func hsCalcDigestPos(p []byte, base int) (pos int) { function hsFindDigest (line 61) | func hsFindDigest(p []byte, key []byte, base int) int { function hsParse1 (line 70) | func hsParse1(p []byte, peerkey []byte, key []byte) (ok bool, digest []b... function hsCreate01 (line 82) | func hsCreate01(p []byte, time uint32, ver uint32, key []byte) { function hsCreate2 (line 93) | func hsCreate2(p []byte, key []byte) { method HandshakeClient (line 100) | func (conn *Conn) HandshakeClient() (err error) { method HandshakeServer (line 143) | func (conn *Conn) HandshakeServer() (err error) { FILE: protocol/rtmp/core/read_writer.go type ReadWriter (line 8) | type ReadWriter struct method Read (line 20) | func (rw *ReadWriter) Read(p []byte) (int, error) { method ReadError (line 29) | func (rw *ReadWriter) ReadError() error { method ReadUintBE (line 33) | func (rw *ReadWriter) ReadUintBE(n int) (uint32, error) { method ReadUintLE (line 49) | func (rw *ReadWriter) ReadUintLE(n int) (uint32, error) { method Flush (line 65) | func (rw *ReadWriter) Flush() error { method Write (line 76) | func (rw *ReadWriter) Write(p []byte) (int, error) { method WriteError (line 83) | func (rw *ReadWriter) WriteError() error { method WriteUintBE (line 87) | func (rw *ReadWriter) WriteUintBE(v uint32, n int) error { method WriteUintLE (line 101) | func (rw *ReadWriter) WriteUintLE(v uint32, n int) error { function NewReadWriter (line 14) | func NewReadWriter(rw io.ReadWriter, bufSize int) *ReadWriter { FILE: protocol/rtmp/core/read_writer_test.go function TestReader (line 11) | func TestReader(t *testing.T) { function TestReaderUintBE (line 30) | func TestReaderUintBE(t *testing.T) { function TestReaderUintLE (line 52) | func TestReaderUintLE(t *testing.T) { function TestWriter (line 74) | func TestWriter(t *testing.T) { function TestWriteUintBE (line 90) | func TestWriteUintBE(t *testing.T) { function TestWriteUintLE (line 114) | func TestWriteUintLE(t *testing.T) { FILE: protocol/rtmp/rtmp.go constant maxQueueNum (line 22) | maxQueueNum = 1024 constant SAVE_STATICS_INTERVAL (line 23) | SAVE_STATICS_INTERVAL = 5000 type Client (line 31) | type Client struct method Dial (line 43) | func (c *Client) Dial(url string, method string) error { method GetHandle (line 64) | func (c *Client) GetHandle() av.Handler { function NewRtmpClient (line 36) | func NewRtmpClient(h av.Handler, getter av.GetWriter) *Client { type Server (line 68) | type Server struct method Serve (line 80) | func (s *Server) Serve(listener net.Listener) (err error) { method handleConn (line 100) | func (s *Server) handleConn(conn *core.Conn) error { function NewRtmpServer (line 73) | func NewRtmpServer(h av.Handler, getter av.GetWriter) *Server { type GetInFo (line 169) | type GetInFo interface type StreamReadWriteCloser (line 173) | type StreamReadWriteCloser interface type StaticsBW (line 180) | type StaticsBW struct type VirWriter (line 193) | type VirWriter struct method SaveStatics (line 221) | func (v *VirWriter) SaveStatics(streamid uint32, length uint64, isVide... method Check (line 245) | func (v *VirWriter) Check() { method DropPacket (line 255) | func (v *VirWriter) DropPacket(pktQue chan *av.Packet, info av.Info) { method Write (line 287) | func (v *VirWriter) Write(p *av.Packet) (err error) { method SendPacket (line 308) | func (v *VirWriter) SendPacket() error { method Info (line 346) | func (v *VirWriter) Info() (ret av.Info) { method Close (line 359) | func (v *VirWriter) Close(err error) { function NewVirWriter (line 202) | func NewVirWriter(conn StreamReadWriteCloser) *VirWriter { type VirReader (line 368) | type VirReader struct method SaveStatics (line 386) | func (v *VirReader) SaveStatics(streamid uint32, length uint64, isVide... method Read (line 411) | func (v *VirReader) Read(p *av.Packet) (err error) { method Info (line 445) | func (v *VirReader) Info() (ret av.Info) { method Close (line 457) | func (v *VirReader) Close(err error) { function NewVirReader (line 376) | func NewVirReader(conn StreamReadWriteCloser) *VirReader { FILE: protocol/rtmp/rtmprelay/rtmprelay.go type RtmpRelay (line 19) | type RtmpRelay struct method rcvPlayChunkStream (line 41) | func (self *RtmpRelay) rcvPlayChunkStream() { method sendPublishChunkStream (line 72) | func (self *RtmpRelay) sendPublishChunkStream() { method Start (line 88) | func (self *RtmpRelay) Start() error { method Stop (line 118) | func (self *RtmpRelay) Stop() { function NewRtmpRelay (line 29) | func NewRtmpRelay(playurl *string, publishurl *string) *RtmpRelay { FILE: protocol/rtmp/rtmprelay/staticrelay.go type StaticPush (line 14) | type StaticPush struct method Start (line 103) | func (self *StaticPush) Start() error { method Stop (line 123) | func (self *StaticPush) Stop() { method WriteAvPacket (line 133) | func (self *StaticPush) WriteAvPacket(packet *av.Packet) { method sendPacket (line 141) | func (self *StaticPush) sendPacket(p *av.Packet) { method HandleAvPacket (line 168) | func (self *StaticPush) HandleAvPacket() { method IsStart (line 188) | func (self *StaticPush) IsStart() bool { function GetStaticPushList (line 30) | func GetStaticPushList(appname string) ([]string, error) { function GetAndCreateStaticPushObject (line 48) | func GetAndCreateStaticPushObject(rtmpurl string) *StaticPush { function GetStaticPushObject (line 67) | func GetStaticPushObject(rtmpurl string) (*StaticPush, error) { function ReleaseStaticPushObject (line 78) | func ReleaseStaticPushObject(rtmpurl string) { function NewStaticPush (line 93) | func NewStaticPush(rtmpurl string) *StaticPush { FILE: protocol/rtmp/stream.go type RtmpStream (line 20) | type RtmpStream struct method HandleReader (line 32) | func (rs *RtmpStream) HandleReader(r av.ReadCloser) { method HandleWriter (line 56) | func (rs *RtmpStream) HandleWriter(w av.WriteCloser) { method GetStreams (line 73) | func (rs *RtmpStream) GetStreams() *sync.Map { method CheckAlive (line 77) | func (rs *RtmpStream) CheckAlive() { function NewRtmpStream (line 24) | func NewRtmpStream() *RtmpStream { type Stream (line 90) | type Stream struct method ID (line 114) | func (s *Stream) ID() string { method GetReader (line 121) | func (s *Stream) GetReader() av.ReadCloser { method GetWs (line 125) | func (s *Stream) GetWs() *sync.Map { method Copy (line 129) | func (s *Stream) Copy(dst *Stream) { method AddReader (line 140) | func (s *Stream) AddReader(r av.ReadCloser) { method AddWriter (line 145) | func (s *Stream) AddWriter(w av.WriteCloser) { method StartStaticPush (line 153) | func (s *Stream) StartStaticPush() { method StopStaticPush (line 193) | func (s *Stream) StopStaticPush() { method IsSendStaticPush (line 232) | func (s *Stream) IsSendStaticPush() bool { method SendStaticPush (line 272) | func (s *Stream) SendStaticPush(packet av.Packet) { method TransStart (line 309) | func (s *Stream) TransStart() { method TransStop (line 359) | func (s *Stream) TransStop() { method CheckAlive (line 369) | func (s *Stream) CheckAlive() (n int) { method closeInter (line 396) | func (s *Stream) closeInter() { type PackWriterCloser (line 98) | type PackWriterCloser struct method GetWriter (line 103) | func (p *PackWriterCloser) GetWriter() av.WriteCloser { function NewStream (line 107) | func NewStream() *Stream { FILE: utils/pio/reader.go function U8 (line 3) | func U8(b []byte) (i uint8) { function U16BE (line 7) | func U16BE(b []byte) (i uint16) { function I16BE (line 14) | func I16BE(b []byte) (i int16) { function I24BE (line 21) | func I24BE(b []byte) (i int32) { function U24BE (line 30) | func U24BE(b []byte) (i uint32) { function I32BE (line 39) | func I32BE(b []byte) (i int32) { function U32LE (line 50) | func U32LE(b []byte) (i uint32) { function U32BE (line 61) | func U32BE(b []byte) (i uint32) { function U40BE (line 72) | func U40BE(b []byte) (i uint64) { function U64BE (line 85) | func U64BE(b []byte) (i uint64) { function I64BE (line 104) | func I64BE(b []byte) (i int64) { FILE: utils/pio/writer.go function PutU8 (line 3) | func PutU8(b []byte, v uint8) { function PutI16BE (line 7) | func PutI16BE(b []byte, v int16) { function PutU16BE (line 12) | func PutU16BE(b []byte, v uint16) { function PutI24BE (line 17) | func PutI24BE(b []byte, v int32) { function PutU24BE (line 23) | func PutU24BE(b []byte, v uint32) { function PutI32BE (line 29) | func PutI32BE(b []byte, v int32) { function PutU32BE (line 36) | func PutU32BE(b []byte, v uint32) { function PutU32LE (line 43) | func PutU32LE(b []byte, v uint32) { function PutU40BE (line 50) | func PutU40BE(b []byte, v uint64) { function PutU48BE (line 58) | func PutU48BE(b []byte, v uint64) { function PutU64BE (line 67) | func PutU64BE(b []byte, v uint64) { function PutI64BE (line 78) | func PutI64BE(b []byte, v int64) { FILE: utils/pool/pool.go type Pool (line 3) | type Pool struct method Get (line 10) | func (pool *Pool) Get(size int) []byte { constant maxpoolsize (line 8) | maxpoolsize = 500 * 1024 function NewPool (line 20) | func NewPool() *Pool { FILE: utils/queue/queue.go type Queue (line 10) | type Queue struct method Push (line 26) | func (q *Queue) Push(msg *av.Packet) { method Pop (line 38) | func (q *Queue) Pop() *av.Packet { method pop (line 49) | func (q *Queue) pop() *av.Packet { method Len (line 57) | func (q *Queue) Len() int { method All (line 65) | func (q *Queue) All() []*av.Packet { function NewQueue (line 19) | func NewQueue(maxSize int) *Queue { FILE: utils/uid/rand.go function RandStringRunes (line 7) | func RandStringRunes(n int) string { FILE: utils/uid/uuid.go function NewId (line 9) | func NewId() string {