@mediafish/amf0
v0.0.5
Published
A library to read/write AMF0 binary format
Downloads
19
Readme
amf0
A library to read/write AMF0 binary format
Install
Usage
const {readValue, writeValue} = require('@mediafish/amf0');
const buffer = Buffer.from([0xFF, 0xFF, 0xFF, 0x61, 0x62, 0x63]);
// Read AMF0
let offset, value, array = [];
while(offset < buffer.length) {
[offset, value] = readValue(buffer, offset);
console.log(JSON.stringify(value, null, 4);
array.push(value);
}
// Write AMF0
offset = 0;
for (const item of array) {
// First, pass null instead of a buffer to detect how many bytes are needed
offset = writeValue(null, offset, item);
}
// And then alloc a buff
const dest = Buffer.alloc(offset);
for (const item of array) {
// Write data actually to the buffer
offset = writeValue(dest, offset, item);
}
API
readValue(buffer, offset)
Read data from the buffer
params
| Name | Type | Required | Default | Description |
| -------- | ------- | -------- | ------- | ------------- |
| buffer
| Buffer
| Yes | N/A | The buffer from which the data is read |
| offset
| number | Yes | N/A | An integer to specify the position within the buffer |
return value
An array containing the following pair of values | Index | Type | Description | | ----- | ------ | ------------ | | [0] | number | An integer to indicate the position from which the next data should be read | | [1] | any | The read value |
writeValue(buffer, offset, value)
Write data to the buffer
params
| Name | Type | Required | Default | Description |
| -------- | ------- | -------- | ------- | ------------- |
| buffer
| Buffer
| Yes | N/A | The buffer to which the data is written |
| offset
| number | Yes | N/A | An integer to specify the position within the buffer |
| value
| any | Yes | N/A | The data to be written to the buffer |
return value
An integer to indicate the position from which the next data should be read