char * AMF_EncodeString ( char *output, char *outend, const AVal *bv ) { if ( ( bv->av_len < 65536 && output + 1 + 2 + bv->av_len > outend ) || output + 1 + 4 + bv->av_len > outend ) { return NULL; } if ( bv->av_len < 65536 ) { *output++ = AMF_STRING; output = AMF_EncodeInt16 ( output, outend, bv->av_len ); } else { *output++ = AMF_LONG_STRING; output = AMF_EncodeInt32 ( output, outend, bv->av_len ); } memcpy ( output, bv->av_val, bv->av_len ); output += bv->av_len; return output; }
char * amf::AMF_EncodeNamedBoolean(char *output, char *outend, const AVal * strName, bool bVal) { if (output+2+strName->av_len > outend) return NULL; output = AMF_EncodeInt16(output, outend, strName->av_len); memcpy(output, strName->av_val, strName->av_len); output += strName->av_len; return AMF_EncodeBoolean(output, outend, bVal); }
char * amf::AMF_EncodeNamedNumber(char *output, char *outend, const AVal * strName, double dVal) { if (output+2+strName->av_len > outend) return NULL; output = AMF_EncodeInt16(output, outend, strName->av_len); memcpy(output, strName->av_val, strName->av_len); output += strName->av_len; return AMF_EncodeNumber(output, outend, dVal); }
char * amf::AMF_EncodeNamedString(char *output, char *outend, const AVal * strName, const AVal * strValue) { if (output+2+strName->av_len > outend) return NULL; output = AMF_EncodeInt16(output, outend, strName->av_len); memcpy(output, strName->av_val, strName->av_len); output += strName->av_len; return AMF_EncodeString(output, outend, strValue); }
char * amf::AMF_EncodeString(char *output, char *outend, const AVal * bv) { if (output + 1 + 2 + bv->av_len > outend) return NULL; *output++ = AMF_STRING; output = AMF_EncodeInt16(output, outend, bv->av_len); memcpy(output, bv->av_val, bv->av_len); output += bv->av_len; return output; }
uint8_t inline *amf_write_i16(uint8_t *s, uint8_t *e, int i) { return (uint8_t*)AMF_EncodeInt16((char*)s, (char*)e, i); }