|
wired
libc-free QUIC/HTTP3 SDK in C for x86_64-linux
|
One track a peer PUBLISHes (chat or audio), and the subscribers recorded against it. More...
#include <moqtrun.h>
Data Fields | |
| int | in_use |
| 1 while the slot holds a PUBLISHed track. | |
| u8 | name [WIRED_MOQTRUN_MAX_NAME] |
| Copied Track Name. | |
| usz | name_len |
| Bytes of name in use. | |
| u64 | own_alias |
| Track Alias this slot's PUBLISH declared. | |
| wired_moqtrun_sub | subs [WIRED_MOQTRUN_MAX_SUBS] |
| Subscriptions recorded against the track (active marks live). | |
| wired_moqtrun_relay | relays [WIRED_MOQTRUN_MAX_RELAYS] |
| Publisher streams being relayed (wired_moqtrun_relay). | |
| u8 | ns [WIRED_MOQTRUN_MAX_NS] |
| Encoded Track Namespace this slot's PUBLISH declared: a SUBSCRIBE matches on namespace AND name (draft 1.5 Full Track Name). | |
| usz | ns_len |
| Bytes of ns in use; 0 for the hub's own tracks. | |
| moqctl_loc | largest |
| Largest Object published on this track (10.2.16), valid when has_largest; restarts with each PUBLISH. | |
| int | has_largest |
| 1 once an Object was published (largest valid). | |
| u64 | request_id |
| Request ID of the PUBLISH that claimed this slot. | |
| u64 | subgroup_timeout_ms |
| The PUBLISH's SUBGROUP_DELIVERY_TIMEOUT Track Property (12.6) in ms, 0 when absent: min()ed into each subscription's effective timeout (wired_moqtrun_sub.subgroup_timeout). | |
| u8 | default_pub_prio |
| The PUBLISH's DEFAULT_PUBLISHER_PRIORITY Track Property (12.4), 128 when absent: the Publisher Priority of a header that omits it. | |
| u64 | cache_tag |
| This incarnation's records in the hub cache (wired_moqt_hub.cache), fresh on every PUBLISH, so a later track in the same slot never reads the old one's Objects. | |
| u64 | up_streams |
| SUBGROUP streams the PUBLISH's publisher opened on this incarnation: what its PUBLISH_DONE Stream Count is checked against. | |
| u64 | pubdone_status |
| The publisher's PUBLISH_DONE (draft-19 10.11) awaiting relay: its Status Code and Stream Count, and the moqt clock past which it goes out regardless (WIRED_MOQTRUN_PUBDONE_WAIT_MS). | |
| u64 | pubdone_streams |
| The held PUBLISH_DONE's Stream Count. | |
| u64 | pubdone_deadline |
| Clock past which the held PUBLISH_DONE goes out anyway. | |
| u8 | pubdone_pending |
| 1 while a PUBLISH_DONE is held. | |
| moqctl_loc | track_end |
| The Object with Status END_OF_TRACK, valid while end_flags bit 0. | |
| moqctl_loc | group_end |
| The latest Object with Status END_OF_GROUP, valid while end_flags bit 1. | |
| u8 | end_flags |
| Bit 0: track_end set; bit 1: group_end set. | |
| u8 | malformed |
| 1 once an Object past track_end or group_end arrived (draft-22 12.1 Malformed Track); the track then ends MALFORMED_TRACK. | |
| u8 | props_len |
| Bytes of props in use: the claiming PUBLISH's (or upstream SUBSCRIBE_OK's) Track Properties, 0 when none or when they exceed WIRED_MOQTRUN_TRACK_PROPS_MAX. | |
| u8 | props [WIRED_MOQTRUN_TRACK_PROPS_MAX] |
| The Track Properties forwarded in SUBSCRIBE_OK (INCLUDE_PROPERTIES, draft-22 9.20.21). | |
One track a peer PUBLISHes (chat or audio), and the subscribers recorded against it.
in_use marks the slot live; own_alias is the Track Alias this hub assigned to this slot's own PUBLISH (draft SS10.7 moqsub scope).
relays[] tracks every publisher stream currently being forwarded on this track (wired_moqtrun_relay's own doc): a later wired_moqt_on_stream_data call whose stream_id matches an entry forwards its bytes straight to that entry's subscriber streams – no SUBGROUP_HEADER re-decode (the audio track writes its header only once, on the stream's first call; later calls carry bare Objects that must not be misread as a header).
| u8 wired_moqtrun_track::ns[WIRED_MOQTRUN_MAX_NS] |
Encoded Track Namespace this slot's PUBLISH declared: a SUBSCRIBE matches on namespace AND name (draft 1.5 Full Track Name).
Empty on the hub's own blob/live tracks, which match by name only.