Merge pull request #237 from lijw30/master

[refactor] split ArrayEnd from ObjectEnd of rtmp amf0 to make code more readable
pull/241/head
yoko 2 years ago committed by GitHub
commit dd0925b6f0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -48,7 +48,11 @@ const (
//Amf0TypeMarkerTypedObject = uint8(0x10) //Amf0TypeMarkerTypedObject = uint8(0x10)
) )
var Amf0TypeMarkerObjectEndBytes = []byte{0, 0, Amf0TypeMarkerObjectEnd} var (
// object-end-type(0x00 0x00 0x09) 表示Object和EcmaArray类型的结束标识
Amf0TypeMarkerObjectEndBytes = []byte{0, 0, Amf0TypeMarkerObjectEnd}
Amf0TypeMarkerArrayEndBytes = []byte{0, 0, Amf0TypeMarkerObjectEnd}
)
// --------------------------------------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------------------------------------
@ -396,10 +400,9 @@ func (amf0) ReadArray(b []byte) (ObjectPairArray, int, error) {
} }
} }
if len(b)-index >= 3 && bytes.Equal(b[index:index+3], Amf0TypeMarkerObjectEndBytes) { if len(b)-index >= 3 && bytes.Equal(b[index:index+3], Amf0TypeMarkerArrayEndBytes) {
index += 3 index += 3
} else { } else {
// 测试时发现Array最后也是以00 00 09结束不确定是否是标准规定的加个日志在这
Log.Warn("amf ReadArray without suffix Amf0TypeMarkerObjectEndBytes.") Log.Warn("amf ReadArray without suffix Amf0TypeMarkerObjectEndBytes.")
} }
return ops, index, nil return ops, index, nil

@ -270,7 +270,7 @@ func (c *ChunkComposer) RunLoop(reader io.Reader, cb OnCompleteMessage) error {
// TODO(chef): 这里应该永远执行不到,可以删除掉 // TODO(chef): 这里应该永远执行不到,可以删除掉
if stream.msg.Len() > stream.header.MsgLen { if stream.msg.Len() > stream.header.MsgLen {
return base.NewErrRtmpShortBuffer(int(stream.header.MsgLen), int(stream.msg.Len()), "len of msg bigger tthan msg len of header") return base.NewErrRtmpShortBuffer(int(stream.header.MsgLen), int(stream.msg.Len()), "len of msg bigger than msg len of header")
} }
} }
} }

Loading…
Cancel
Save