All notable changes to this project are documented in this file.
The format is based on Keep a Changelog.
1.0.0 — YYYY-MM-DD
- Initial stable release of
gstklvpluginas a GStreamer 1.x plugin suite written in C11/GNU11 for end-to-end KLV metadata workflows. - Four production elements:
klvmetaenc,klvmetadec,klvframeinject, andtspmtrewrite. - Full MISB ST 0601.8 local-set coverage driven by
data/stanag4609_tags.ini, including BER lengths, MISB UL handling, checksum generation/validation, INI-driven scaling, andhex:/base64:support for byte-oriented tags. - Internal KLV helper libraries in
src/klv/for BER, checksum, JSON parsing, scaling, tag-definition loading, and UL constants. - Internal MPEG-TS helper libraries in
src/ts/for CRC-32/MPEG-2, PAT/PMT parsing, and PMT section rebuilding. - Meson as the primary build, test, and install workflow, plus CMake support for alternative builds and the C++ example programs.
- Python examples for local TS roundtrip, SRT sender/receiver, and UDP sender/receiver.
- C++ examples for TS roundtrip, SRT sender/receiver, and UDP sender/receiver.
- Bash workflow helpers for development shells, full validation, installation, and strict Doxygen generation.
- Debian-style packaging support via
packaging/deb/build_deb.sh, including staged installs and.debgeneration for Debian-family x86 and ARM systems such as Raspberry Pi OS. - Installed project documentation, Doxygen coverage across code and support scripts, and licensing metadata.
tspmtrewritenow documents and implements the transport signaling actually used by this repository: KLV is carried asstream_type 0x06withregistration_descriptorKLVAplusmetadata_descriptor (0x26)for practical GStreamertsdemuxcompatibility.- SRT examples and guides were aligned with the live configuration that decodes reliably in practice:
mpegtsmux alignment=7,srtsrc blocksize=1316, andlatency=125.
verify_ts_klv.pynow accepts both legacy0x15captures and the current0x06 + KLVAsignaling used by this repository.- The TS readers tolerate real-world
tsdemuxbehavior where KLV may arrive without the full MISB UL in the demuxed payload, and rebuild the expected KLV buffer before decoding. - The installed-plugin validation path now covers clean-registry discovery so blacklist and stale-registry issues can be reproduced and checked explicitly.
- Meson
gst-checksuites cover the four public elements plus KLV and TS support libraries. - Smoke coverage includes Python TS roundtrip, UDP loopback, staged installed-plugin discovery with a clean GStreamer registry, and C++ TS roundtrip when
cmakeis available. - Validation helpers also run Python syntax checks, shell syntax checks, and strict Doxygen generation so the release can be checked end to end with a single command.
- Project license changed from MIT to GNU AGPL-3.0.