Expand description
C bindings for moq_net.
Provides a C-compatible API for real-time pub/sub over QUIC.
§Concepts
- Session: Network connection to a MoQ relay
- Origin: Collection of broadcasts
- Broadcast: Container for tracks
- Track: Named stream of groups
- Group: Collection of frames
- Frame: Sized payload with timestamp
§Error Handling
All functions return negative error codes on failure or non-negative values on success. Resources are managed through opaque integer handles that must be explicitly closed.
Structs§
- Audio
- Id
- Opaque resource identifier returned to C code.
- moq_
announced - Information about a broadcast announced by an origin.
- moq_
audio_ config - Information about an audio rendition in the catalog.
- moq_
audio_ decoder_ output - PCM layout the caller wants out of
moq_consume_audio_raw. - moq_
audio_ encoder_ input - PCM layout the caller hands to
moq_publish_audio_raw_frame. - moq_
audio_ encoder_ output - Codec-side configuration.
sample_rate/channels= 0 means “match the input (snapping the rate up to a libopus-supported value if necessary)”. - moq_
audio_ frame - One audio frame: payload bytes plus a presentation timestamp.
- moq_
frame - Information about a frame of media.
- moq_
json_ config - Options for a JSON snapshot track (lossy latest-value mode).
- moq_
json_ stream_ config - Options for a JSON stream track (lossless append-log mode).
- moq_
json_ value - A JSON value delivered by a consumer callback.
- moq_
section - An untyped application section in the catalog: a top-level key beyond
video/audio. - moq_
video_ config - Information about a video rendition in the catalog.
Enums§
- Error
- Error types that can occur in the FFI layer.
- moq_
audio_ format - Raw PCM sample layout, mirroring WebCodecs
AudioData.format.
Functions§
- moq_
consume_ audio_ close - Stop an audio track consumer’s background task.
- moq_
consume_ ⚠audio_ config - Query information about an audio track in a catalog.
- moq_
consume_ ⚠audio_ ordered - Consume an audio track from a broadcast, emitting the frames in order.
- moq_
consume_ ⚠audio_ raw - Subscribe to an audio track and decode it into PCM.
- moq_
consume_ audio_ raw_ close - Stop an audio (raw PCM) consumer’s background task.
- moq_
consume_ ⚠audio_ raw_ frame - Copy a delivered frame’s metadata into
dst. - moq_
consume_ audio_ raw_ frame_ free - Free a frame previously delivered through the consume callback. Required for every delivered frame ID; closing the parent consumer is not enough.
- moq_
consume_ ⚠catalog - Create a catalog consumer for a broadcast.
- moq_
consume_ catalog_ close - Stop a catalog consumer’s background subscription.
- moq_
consume_ catalog_ free - Free a catalog snapshot received via the moq_consume_catalog callback.
- moq_
consume_ ⚠catalog_ section - Query an untyped application section in a catalog by index.
- moq_
consume_ close - Close a broadcast consumer and clean up its resources.
- moq_
consume_ ⚠frame - Get a chunk of a frame’s payload.
- moq_
consume_ frame_ close - Close a frame and clean up its resources.
- moq_
consume_ ⚠json - Subscribe to a JSON snapshot track (lossy latest-value) by name.
- moq_
consume_ json_ close - Stop a JSON consumer’s background task (snapshot or stream).
- moq_
consume_ ⚠json_ stream - Subscribe to a JSON stream track (lossless append-log) by name.
- moq_
consume_ ⚠json_ value - Read a JSON value delivered via a moq_consume_json or moq_consume_json_stream callback.
- moq_
consume_ json_ value_ close - Release a JSON value delivered via a consumer callback.
- moq_
consume_ ⚠track - Subscribe to a raw track by name, delivering each frame’s payload as-is.
- moq_
consume_ track_ close - Stop a raw track consumer’s background task.
- moq_
consume_ ⚠track_ frame - Read a raw frame’s payload delivered via the moq_consume_track callback.
- moq_
consume_ track_ frame_ close - Close a raw frame and clean up its resources.
- moq_
consume_ video_ close - Stop a video track consumer’s background task.
- moq_
consume_ ⚠video_ config - Query information about a video track in a catalog.
- moq_
consume_ ⚠video_ ordered - Consume a video track from a broadcast, delivering frames in order.
- moq_
error - Human-readable reason for the most recent failed call on the calling thread.
- moq_
log_ ⚠level - Initialize the library with a log level.
- moq_
origin_ ⚠announced - Learn about all broadcasts published to an origin.
- moq_
origin_ announced_ close - Stop receiving announcements for broadcasts published to an origin.
- moq_
origin_ ⚠announced_ info - Query information about a broadcast discovered by moq_origin_announced.
- moq_
origin_ close - Close an origin and clean up its resources.
- moq_
origin_ ⚠consume - Consume a broadcast from an origin by path.
- moq_
origin_ ⚠consume_ announced - Consume a broadcast from an origin by path, waiting until it is announced.
- moq_
origin_ consume_ announced_ close - Abort a wait started by moq_origin_consume_announced.
- moq_
origin_ create - Create an origin for publishing broadcasts.
- moq_
origin_ ⚠publish - Publish a broadcast to an origin.
- moq_
publish_ ⚠audio_ config - Add or replace an audio rendition in a broadcast’s catalog.
- moq_
publish_ ⚠audio_ raw - Open an audio track on a broadcast.
- moq_
publish_ audio_ raw_ close - Flush any pending samples and finalize an audio producer.
- moq_
publish_ ⚠audio_ raw_ frame - Push one audio frame.
- moq_
publish_ ⚠audio_ remove - Remove an audio rendition from a broadcast’s catalog by name.
- moq_
publish_ ⚠catalog_ section - Set or replace an untyped application section in a broadcast’s catalog.
- moq_
publish_ ⚠catalog_ section_ remove - Remove an untyped application section from a broadcast’s catalog by name.
- moq_
publish_ close - Close a broadcast and clean up its resources.
- moq_
publish_ create - Create a new broadcast for publishing media tracks.
- moq_
publish_ group_ close - Finish a raw group. No more frames can be written.
- moq_
publish_ ⚠group_ frame - Write a frame into a raw group created by moq_publish_track_group.
- moq_
publish_ ⚠json - Create a JSON snapshot track (lossy latest-value) on a broadcast.
- moq_
publish_ json_ close - Finish a JSON snapshot track. No more values can be published.
- moq_
publish_ ⚠json_ stream - Create a JSON stream track (lossless append-log) on a broadcast.
- moq_
publish_ ⚠json_ stream_ append - Append one record to a JSON stream track.
valueis a UTF-8 JSON document. - moq_
publish_ json_ stream_ close - Finish a JSON stream track. No more records can be appended.
- moq_
publish_ ⚠json_ update - Publish a new value to a JSON snapshot track.
valueis a UTF-8 JSON document. A no-op if unchanged from the previous update. - moq_
publish_ media_ close - Remove a track from a broadcast.
- moq_
publish_ ⚠media_ frame - Write data to a track.
- moq_
publish_ ⚠media_ ordered - Create a new media track for a broadcast
- moq_
publish_ ⚠track - Create a raw track on a broadcast for arbitrary byte payloads.
- moq_
publish_ track_ close - Finish a raw track. No more groups or frames can be written.
- moq_
publish_ ⚠track_ frame - Write a single-frame group to a raw track.
- moq_
publish_ track_ group - Append a new group to a raw track, returning a group producer.
- moq_
publish_ ⚠video_ config - Add or replace a video rendition in a broadcast’s catalog.
- moq_
publish_ ⚠video_ remove - Remove a video rendition from a broadcast’s catalog by name.
- moq_
session_ close - Request that a session shut down.
- moq_
session_ ⚠connect - Start establishing a connection to a MoQ server.
Type Aliases§
- Status
- Status code returned by FFI functions.