Ancillary Data Packet and Space Formatting
This library is ready for production
Implementation of ST 291 in Typescript using @astronautlabs/bitstream
This library provides the ability to read and write SMPTE ST 291 ancillary messages as they appear within the Vertical Ancillary space or other appropriate carriers. It implements 10-bit data words, parity and checksumming to ease implementations. ST 291 packets are used to send various types of data alongside video essence, notably captions, digital cue points, and AFD information.
npm install @astronautlabs/st291
This library exposes an element class called Packet that implements the syntax for ST291 packets. You can use
BitstreamWriter from that package along with this class in order to read and write the packets. For quick usage, you can use serialize/deserialize:
import * as ST291 from '@astronautlabs/st291'; // read let packet = await ST291.Packet.deserialize(buffer); // write buffer = packet.serialize();
The package also exposes
parity() for computing 2-bit parity on an 8-bit data byte and
checksum() for computing the 9-bit checksum on a set of 10-bit user data words.