How umirtech/bsparser-cpp works
bsparser-cpp parses compressed-video bitstreams into syntax structures and reports; it does not decode pixels. The main workflow accepts bytes, optionally demuxes a supported container, frames codec units, parses syntax with retained parameter-set state, and delivers typed results or reports. The README documents broad container and codec support; sampled code confirms dispatch/state behavior and several managers, but not every codec parser’s internal wiring, so those links are shown only at the subsystem level.
Main entry points: bsparser.hpp C++ API and state · parser Codec parsers · demuxer.hpp Container demux · bs_cli.cpp CLI driver
Components 17
Input and demux
- Container demux
demux/demuxer.hpp - Format demuxers
demux/demux_all.hpp
Parsing core
- C++ API and state
bsparser.hpp - Unit framing
parser/nal_framer.hpp - Bit readers
bitstream/rbsp_bitstream_reader.hpp - Parameter-set state
parser/hevc_parameter_set_manager.hpp - Picture-order state
parser/hevc_reference_picture_manager.hpp
Codec syntax
- Codec parsers
parser - Parsed syntax models
syntax
Public interfaces
- CLI driver
cli/bs_cli.cpp - C++ handlers
bsparser.hpp - C ABI
capi/bs_capi.cpp - C struct conversion
capi/bs_structs_conv.hpp - Report exporter
cli/report.hpp - JSON or HTML report
cli/report.hpp
Other components
- Application
- Input bytes
Connections 21
- Application → Input bytes: provides
- Input bytes → Container demux: demuxes
- Container demux → Format demuxers: selects format
- Container demux → C++ API and state: returns stream
- Application → C++ API and state: calls parse
- CLI driver → Container demux: demuxes input
- CLI driver → C++ API and state: invokes parsing
- C++ API and state → Unit framing: frames units
- C++ API and state → Codec parsers: dispatches units
- Codec parsers → Bit readers: reads bits
- Codec parsers → Parsed syntax models: builds models
- C++ API and state → Parameter-set state: stores parameter sets
- Codec parsers → Parameter-set state: resolves dependencies
- Codec parsers → Picture-order state: derives picture order
- C++ API and state → C++ handlers: dispatches results
- Application → C ABI: calls C API
- C ABI → C++ API and state: invokes parsing
- C ABI → C struct conversion: converts results
- CLI driver → Report exporter: builds report
- C++ API and state → Report exporter: parses for report
- Report exporter → JSON or HTML report: exports