2018-08-24 03:55:36 +03:00
|
|
|
/*
|
|
|
|
NAME
|
|
|
|
amf_headers.go
|
|
|
|
|
|
|
|
DESCRIPTION
|
|
|
|
See Readme.md
|
|
|
|
|
|
|
|
AUTHORS
|
|
|
|
Saxon Nelson-Milton <saxon@ausocean.org>
|
|
|
|
|
|
|
|
LICENSE
|
|
|
|
amf_headers.go is Copyright (C) 2017 the Australian Ocean Lab (AusOcean)
|
|
|
|
|
|
|
|
It is free software: you can redistribute it and/or modify them
|
|
|
|
under the terms of the GNU General Public License as published by the
|
|
|
|
Free Software Foundation, either version 3 of the License, or (at your
|
|
|
|
option) any later version.
|
|
|
|
|
|
|
|
It is distributed in the hope that it will be useful, but WITHOUT
|
|
|
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
|
|
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
|
|
for more details.
|
|
|
|
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
|
|
along with revid in gpl.txt. If not, see http://www.gnu.org/licenses.
|
|
|
|
|
|
|
|
Derived from librtmp under the GNU Lesser General Public License 2.1
|
|
|
|
Copyright (C) 2005-2008 Team XBMC http://www.xbmc.org
|
|
|
|
Copyright (C) 2008-2009 Andrej Stepanchuk
|
|
|
|
Copyright (C) 2009-2010 Howard Chu
|
|
|
|
*/
|
2018-08-24 03:17:11 +03:00
|
|
|
package rtmp
|
|
|
|
|
|
|
|
const (
|
|
|
|
AMF_NUMBER = iota
|
|
|
|
AMF_BOOLEAN
|
|
|
|
AMF_STRING
|
|
|
|
AMF_OBJECT
|
|
|
|
AMF_MOVIECLIP /* reserved, not used */
|
|
|
|
AMF_NULL
|
|
|
|
AMF_UNDEFINED
|
|
|
|
AMF_REFERENCE
|
|
|
|
AMF_ECMA_ARRAY
|
|
|
|
AMF_OBJECT_END
|
|
|
|
AMF_STRICT_ARRAY
|
|
|
|
AMF_DATE
|
|
|
|
AMF_LONG_STRING
|
|
|
|
AMF_UNSUPPORTED
|
|
|
|
AMF_RECORDSET /* reserved, not used */
|
|
|
|
AMF_XML_DOC
|
|
|
|
AMF_TYPED_OBJECT
|
|
|
|
AMF_AVMPLUS /* switch to AMF3 */
|
|
|
|
AMF_INVALID = 0xff
|
|
|
|
)
|
|
|
|
|
|
|
|
// typedef struct C_AVal
|
|
|
|
// amf.h +57
|
|
|
|
type C_AVal struct {
|
|
|
|
av_val *byte
|
|
|
|
av_len int32
|
|
|
|
}
|
|
|
|
|
|
|
|
// typedef enum
|
|
|
|
// amf.h +40
|
|
|
|
type C_AMFDataType int32
|
|
|
|
|
|
|
|
// typedef struct AMF_Object
|
|
|
|
// amf.h +67
|
|
|
|
type C_AMFObject struct {
|
|
|
|
o_num int32
|
|
|
|
o_props *C_AMFObjectProperty
|
|
|
|
}
|
|
|
|
|
|
|
|
// typedef struct AMFObjectProperty
|
|
|
|
// amf.h +79
|
|
|
|
type C_AMFObjectProperty struct {
|
|
|
|
p_name C_AVal
|
|
|
|
p_type C_AMFDataType
|
|
|
|
p_vu P_vu
|
|
|
|
p_UTCoffset int16
|
|
|
|
}
|
|
|
|
|
|
|
|
// typedef struct P_vu
|
|
|
|
// amf.h +73
|
|
|
|
type P_vu struct {
|
|
|
|
p_number float64
|
|
|
|
p_aval C_AVal
|
|
|
|
p_object C_AMFObject
|
|
|
|
}
|