18#ifndef IMQUIC_ROQ_INTERNAL_H
19#define IMQUIC_ROQ_INTERNAL_H
26#define IMQUIC_ROQ 7499633
65 uint64_t flow_id, uint8_t *bytes,
size_t blen);
85 uint8_t *bytes, uint64_t length, gboolean complete);
imquic RoQ public interface (headers)
imquic_roq_multiplexing
RTP Over QUIC multiplexing modes.
Definition imquic/roq.h:71
void imquic_roq_qlog_stream_packet_parsed(imquic_qlog *qlog, uint64_t stream_id, uint64_t flow_id, uint8_t *bytes, size_t length)
Add a stream_packet_parsed event.
Definition roq.c:321
void imquic_roq_qlog_stream_opened(imquic_qlog *qlog, uint64_t stream_id, uint64_t flow_id)
Add a stream_opened event.
Definition roq.c:298
void imquic_roq_stream_incoming(imquic_connection *conn, uint64_t stream_id, uint8_t *bytes, uint64_t length, gboolean complete)
Callback the core invokes when there's new incoming data on a STREAM.
Definition roq.c:138
void imquic_roq_qlog_add_rtp_packet(json_t *data, uint64_t flow_id, uint64_t length)
Helper to add fields for RtpPacket to an event.
Definition roq.c:291
void imquic_roq_datagram_incoming(imquic_connection *conn, uint8_t *bytes, uint64_t length)
Callback the core invokes when there's new incoming data on a DATAGRAM.
Definition roq.c:185
void imquic_roq_init(void)
Initialize the native RoQ stack at startup.
Definition roq.c:51
void imquic_roq_qlog_datagram_packet_parsed(imquic_qlog *qlog, uint64_t flow_id, uint8_t *bytes, size_t length)
Add a datagram_packet_parsed event.
Definition roq.c:346
void imquic_roq_qlog_datagram_packet_created(imquic_qlog *qlog, uint64_t flow_id, uint8_t *bytes, size_t length)
Add a datagram_packet_created event.
Definition roq.c:334
void imquic_roq_deinit(void)
Uninitialize the native RoQ stack.
Definition roq.c:55
void imquic_roq_connection_gone(imquic_connection *conn, uint64_t error_code, const char *reason)
Callback the core invokes when an existing RoQ connection is not available anymore.
Definition roq.c:206
void imquic_roq_qlog_stream_packet_created(imquic_qlog *qlog, uint64_t stream_id, uint64_t flow_id, uint8_t *bytes, size_t length)
Add a stream_packet_created event.
Definition roq.c:308
void imquic_roq_new_connection(imquic_connection *conn, void *user_data)
Callback the core invokes when a new QUIC connection using RoQ is available.
Definition roq.c:118
GMutex imquic_mutex
imquic mutex implementation
Definition mutex.h:18
QUIC Connection.
Definition connection.h:38
QLOG instance.
Definition qlog.h:26
RoQ public callbacks.
Definition internal/roq.h:60
void(* connection_gone)(imquic_connection *conn, uint64_t error_code, const char *reason)
Callback function to be notified about RoQ connections being closed.
Definition internal/roq.h:67
void(* new_connection)(imquic_connection *conn, void *user_data)
Callback function to be notified about new RoQ connections.
Definition internal/roq.h:62
void(* rtp_incoming)(imquic_connection *conn, imquic_roq_multiplexing multiplexing, uint64_t flow_id, uint8_t *bytes, size_t blen)
Callback function to be notified about incoming RTP packets.
Definition internal/roq.h:64
RoQ endpoint instance.
Definition internal/roq.h:34
imquic_connection * conn
Associated QUIC connection.
Definition internal/roq.h:36
GHashTable * packets
Current packet buffer, indexed by stream ID.
Definition internal/roq.h:40
GHashTable * stream_flows_out
Definition internal/roq.h:38
GHashTable * stream_flows_in
Stream flows, indexed by stream ID.
Definition internal/roq.h:38
imquic_mutex mutex
Mutex.
Definition internal/roq.h:42
RoQ stream (when using the same stream for multiple packets).
Definition internal/roq.h:46
uint64_t stream_id
QUIC Stream ID.
Definition internal/roq.h:48
volatile gint destroyed
Whether this instance has been destroyed (reference counting).
Definition internal/roq.h:54
uint64_t flow_id
RoQ Flow ID.
Definition internal/roq.h:50
gboolean new_stream
Whether this is a new stream.
Definition internal/roq.h:52
imquic_refcount ref
Reference counter.
Definition internal/roq.h:56