imquic MoQ public interface (headers) More...
#include "imquic.h"

Go to the source code of this file.
Data Structures | |
| struct | imquic_moq_namespace |
| MoQ Track Namespace. More... | |
| struct | imquic_moq_name |
| MoQ Track Name. More... | |
| struct | imquic_moq_location |
| MoQ Group/Object couple (for ranges) More... | |
| struct | imquic_moq_location_range |
| MoQ location range (from where to where, e.g., for FETCH) More... | |
| struct | imquic_moq_subscription_filter |
| MoQ subscription filter. More... | |
| struct | imquic_moq_request_parameters |
| MoQ request parameters. More... | |
| struct | imquic_moq_object_extension |
| MoQ Object Extension. More... | |
| struct | imquic_moq_object |
| MoQ Object. More... | |
| struct | imquic_moq_auth_token |
| MoQ Authorization Token. More... | |
| struct | imquic_moq_auth_token::imquic_moq_auth_token_value |
| Token value, if any. More... | |
Typedefs | |
| typedef enum imquic_moq_auth_token_alias_type | imquic_moq_auth_token_alias_type |
| MoQ Authorization Token Alias Type. | |
| typedef struct imquic_moq_auth_token | imquic_moq_auth_token |
| MoQ Authorization Token. | |
| typedef enum imquic_moq_version | imquic_moq_version |
| Versions that can be negotiated. | |
Enumerations | |
| enum | imquic_moq_auth_token_alias_type { IMQUIC_MOQ_AUTH_TOKEN_DELETE = 0x0 , IMQUIC_MOQ_AUTH_TOKEN_REGISTER = 0x1 , IMQUIC_MOQ_AUTH_TOKEN_USE_ALIAS = 0x2 , IMQUIC_MOQ_AUTH_TOKEN_USE_VALUE = 0x3 } |
| MoQ Authorization Token Alias Type. More... | |
| enum | imquic_moq_version { IMQUIC_MOQ_VERSION_BASE = 0xff000000 , IMQUIC_MOQ_VERSION_MIN = 0xff00000B , IMQUIC_MOQ_VERSION_11 = 0xff00000B , IMQUIC_MOQ_VERSION_12 = 0xff00000C , IMQUIC_MOQ_VERSION_13 = 0xff00000D , IMQUIC_MOQ_VERSION_14 = 0xff00000E , IMQUIC_MOQ_VERSION_15 = 0xff00000F , IMQUIC_MOQ_VERSION_16 = 0xff000010 , IMQUIC_MOQ_VERSION_MAX = IMQUIC_MOQ_VERSION_16 , IMQUIC_MOQ_VERSION_ANY = 0xff0000ff , IMQUIC_MOQ_VERSION_ANY_LEGACY = 0xff0000fe } |
| Versions that can be negotiated. More... | |
Functions | |
| const char * | imquic_moq_auth_token_alias_type_str (imquic_moq_auth_token_alias_type type) |
| Helper function to serialize to string the name of a imquic_moq_auth_token_alias_type property. | |
| int | imquic_moq_parse_auth_token (uint8_t *bytes, size_t blen, imquic_moq_auth_token *token) |
| Helper mode to parse an auth token buffer to a imquic_moq_auth_token instance. | |
| size_t | imquic_moq_build_auth_token (imquic_moq_auth_token *token, uint8_t *bytes, size_t blen) |
| Helper mode to craft an auth token buffer out of a imquic_moq_auth_token instance. | |
| const char * | imquic_moq_version_str (imquic_moq_version version) |
| Helper function to serialize to string the name of a imquic_moq_version property. | |
| imquic_moq_version | imquic_moq_get_version (imquic_connection *conn) |
| Helper function to get the MoQ version associated with a connection. | |
| int | imquic_moq_set_connection_auth (imquic_connection *conn, uint8_t *auth, size_t authlen) |
| Method to provide credentials, as a client, on a new connection. If credentials need to provided, this must be done as soon as the connection is established, and before sending any MoQ message. A good place to do that is the callback fired when a new connection is available. | |
| int | imquic_moq_set_max_request_id (imquic_connection *conn, uint64_t max_request_id) |
| Helper function to set the Maximum Request ID a subscriber can send. | |
| uint64_t | imquic_moq_get_next_request_id (imquic_connection *conn) |
| Helper function to get the next Request ID we can use. | |
| const char * | imquic_moq_get_remote_implementation (imquic_connection *conn) |
| Helper function to return the MoQ implementation name as a string, if provided by the peer of this connection. | |
MoQ endpoints management | |
| imquic_server * | imquic_create_moq_server (const char *name,...) |
Method to create a new MoQ server, using variable arguments to dictate what the server should do (e.g., port to bind to, ALPN, etc.). Variable arguments are in the form of a sequence of name-value started with a IMQUIC_CONFIG_INIT and ended by a IMQUIC_CONFIG_DONE , e.g.: | |
| imquic_client * | imquic_create_moq_client (const char *name,...) |
Method to create a new MoQ client, using variable arguments to dictate what the client should do (e.g., address to connect to, ALPN, etc.). Variable arguments are in the form of a sequence of name-value started with a IMQUIC_CONFIG_INIT and ended by a IMQUIC_CONFIG_DONE , e.g.: | |
| void | imquic_set_new_moq_connection_cb (imquic_endpoint *endpoint, void(*new_moq_connection)(imquic_connection *conn, void *user_data)) |
| Configure the callback function to be notified about new QUIC connections on the configured endpoint. For a server, it will be triggered any time a client successfully connects to the server; for a client, it will be triggered when the client successfully connects to the server. Notice that this precedes the MoQ setup/handshakes, which means you'll need to wait until the callback set in imquic_set_moq_ready_cb is fired, before being able to use the MoQ API for publishing/subscribing. | |
| void | imquic_set_incoming_moq_connection_cb (imquic_endpoint *endpoint, uint64_t(*incoming_moq_connection)(imquic_connection *conn, uint8_t *auth, size_t authlen)) |
Configure the callback function to be notified, as a server, when a CLIENT_SETUP is received. This is a chance, for instance, to evaluate the credentials that were provided. It's the application responsibility to accept or reject the connection at this point: returning 0 will accept the connection, while returning an error code will reject and close it. Connections are automatically accepted if this callback is not configured. | |
| void | imquic_set_moq_ready_cb (imquic_endpoint *endpoint, void(*moq_ready)(imquic_connection *conn)) |
| Configure the callback function to be notified when a MoQ connection has been successfully established. After this, the MoQ APIs can be used to start exchanging MoQ messages. | |
| void | imquic_set_incoming_publish_namespace_cb (imquic_endpoint *endpoint, void(*incoming_publish_namespace)(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, imquic_moq_request_parameters *parameters)) |
Configure the callback function to be notified when there's an incoming PUBLISH_NAMESPACE request. | |
| void | imquic_set_incoming_publish_namespace_cancel_cb (imquic_endpoint *endpoint, void(*incoming_publish_namespace_cancel)(imquic_connection *conn, imquic_moq_namespace *tns, imquic_moq_request_error_code error_code, const char *reason)) |
Configure the callback function to be notified when there's an incoming PUBLISH_NAMESPACE_CANCEL request. | |
| void | imquic_set_publish_namespace_accepted_cb (imquic_endpoint *endpoint, void(*publish_namespace_accepted)(imquic_connection *conn, uint64_t request_id, imquic_moq_request_parameters *parameters)) |
Configure the callback function to be notified when an PUBLISH_NAMESPACE we previously sent was accepted. | |
| void | imquic_set_publish_namespace_error_cb (imquic_endpoint *endpoint, void(*publish_namespace_error)(imquic_connection *conn, uint64_t request_id, imquic_moq_request_error_code error_code, const char *reason, uint64_t retry_interval)) |
Configure the callback function to be notified when an PUBLISH_NAMESPACE we previously sent was rejected with an error. | |
| void | imquic_set_publish_namespace_done_cb (imquic_endpoint *endpoint, void(*publish_namespace_done)(imquic_connection *conn, imquic_moq_namespace *tns)) |
Configure the callback function to be notified when there's an incoming PUBLISH_NAMESPACE_DONE request. | |
| void | imquic_set_incoming_publish_cb (imquic_endpoint *endpoint, void(*incoming_publish)(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, imquic_moq_name *tn, uint64_t track_alias, imquic_moq_request_parameters *parameters, GList *track_extensions)) |
Configure the callback function to be notified when there's an incoming PUBLISH request. | |
| void | imquic_set_publish_accepted_cb (imquic_endpoint *endpoint, void(*publish_accepted)(imquic_connection *conn, uint64_t request_id, imquic_moq_request_parameters *parameters)) |
Configure the callback function to be notified when a PUBLISH we previously sent was accepted. | |
| void | imquic_set_publish_error_cb (imquic_endpoint *endpoint, void(*publish_error)(imquic_connection *conn, uint64_t request_id, imquic_moq_request_error_code error_code, const char *reason, uint64_t retry_interval)) |
Configure the callback function to be notified when a PUBLISH we previously sent was rejected with an error. | |
| void | imquic_set_incoming_subscribe_cb (imquic_endpoint *endpoint, void(*incoming_subscribe)(imquic_connection *conn, uint64_t request_id, uint64_t track_alias, imquic_moq_namespace *tns, imquic_moq_name *tn, imquic_moq_request_parameters *parameters)) |
Configure the callback function to be notified when there's an incoming SUBSCRIBE request. | |
| void | imquic_set_subscribe_accepted_cb (imquic_endpoint *endpoint, void(*subscribe_accepted)(imquic_connection *conn, uint64_t request_id, uint64_t track_alias, imquic_moq_request_parameters *parameters, GList *track_extensions)) |
Configure the callback function to be notified when a SUBSCRIBE we previously sent was accepted. | |
| void | imquic_set_subscribe_error_cb (imquic_endpoint *endpoint, void(*subscribe_error)(imquic_connection *conn, uint64_t request_id, imquic_moq_request_error_code error_code, const char *reason, uint64_t track_alias, uint64_t retry_interval)) |
Configure the callback function to be notified when a SUBSCRIBE we previously sent was rejected with an error. | |
| void | imquic_set_request_updated_cb (imquic_endpoint *endpoint, void(*request_updated)(imquic_connection *conn, uint64_t request_id, uint64_t sub_request_id, imquic_moq_request_parameters *parameters)) |
Configure the callback function to be notified when an update is received for a request (e.g., a SUBSCRIBE ) we previously sent. | |
| void | imquic_set_request_update_accepted_cb (imquic_endpoint *endpoint, void(*request_update_accepted)(imquic_connection *conn, uint64_t request_id, imquic_moq_request_parameters *parameters)) |
Configure the callback function to be notified when an OK is received for a REQUEST_UPDATE we previously sent. | |
| void | imquic_set_request_update_error_cb (imquic_endpoint *endpoint, void(*request_update_error)(imquic_connection *conn, uint64_t request_id, imquic_moq_request_error_code error_code, const char *reason, uint64_t retry_interval)) |
Configure the callback function to be notified when a REQUEST_UPDATE we previously sent was rejected with an error. | |
| void | imquic_set_publish_done_cb (imquic_endpoint *endpoint, void(*publish_done)(imquic_connection *conn, uint64_t request_id, imquic_moq_pub_done_code status_code, uint64_t streams_count, const char *reason)) |
Configure the callback function to be notified when a PUBLISH we received or a SUBSCRIBE we sent is now done. | |
| void | imquic_set_incoming_unsubscribe_cb (imquic_endpoint *endpoint, void(*incoming_unsubscribe)(imquic_connection *conn, uint64_t request_id)) |
Configure the callback function to be notified when there's an incoming UNSUBSCRIBE request. | |
| void | imquic_set_requests_blocked_cb (imquic_endpoint *endpoint, void(*requests_blocked)(imquic_connection *conn, uint64_t max_request_id)) |
Configure the callback function to be notified when there's an incoming REQUESTS_BLOCKED request. | |
| void | imquic_set_incoming_subscribe_namespace_cb (imquic_endpoint *endpoint, void(*incoming_subscribe_namespace)(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, imquic_moq_subscribe_namespace_options subscribe_options, imquic_moq_request_parameters *parameters)) |
Configure the callback function to be notified when there's an incoming SUBSCRIBE_NAMESPACE request. | |
| void | imquic_set_subscribe_namespace_accepted_cb (imquic_endpoint *endpoint, void(*subscribe_namespace_accepted)(imquic_connection *conn, uint64_t request_id, imquic_moq_request_parameters *parameters)) |
Configure the callback function to be notified when an SUBSCRIBE_NAMESPACE we previously sent was accepted. | |
| void | imquic_set_subscribe_namespace_error_cb (imquic_endpoint *endpoint, void(*subscribe_namespace_error)(imquic_connection *conn, uint64_t request_id, imquic_moq_request_error_code error_code, const char *reason, uint64_t retry_interval)) |
Configure the callback function to be notified when an SUBSCRIBE_NAMESPACE we previously sent was rejected with an error. | |
| void | imquic_set_incoming_unsubscribe_namespace_cb (imquic_endpoint *endpoint, void(*incoming_unsubscribe_namespace)(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns)) |
Configure the callback function to be notified when there's an incoming UNSUBSCRIBE_NAMESPACE request. | |
| void | imquic_set_incoming_namespace_cb (imquic_endpoint *endpoint, void(*incoming_namespace)(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns)) |
Configure the callback function to be notified when there's an incoming NAMESPACE request. | |
| void | imquic_set_incoming_namespace_done_cb (imquic_endpoint *endpoint, void(*incoming_namespace_done)(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns)) |
Configure the callback function to be notified when there's an incoming NAMESPACE_DONE request. | |
| void | imquic_set_incoming_standalone_fetch_cb (imquic_endpoint *endpoint, void(*incoming_standalone_fetch)(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, imquic_moq_name *tn, imquic_moq_location_range *range, imquic_moq_request_parameters *parameters)) |
Configure the callback function to be notified when there's an incoming standalone FETCH request. | |
| void | imquic_set_incoming_joining_fetch_cb (imquic_endpoint *endpoint, void(*incoming_joining_fetch)(imquic_connection *conn, uint64_t request_id, uint64_t joining_request_id, gboolean absolute, uint64_t joining_start, imquic_moq_request_parameters *parameters)) |
Configure the callback function to be notified when there's an incoming joining FETCH request. | |
| void | imquic_set_incoming_fetch_cancel_cb (imquic_endpoint *endpoint, void(*incoming_fetch_cancel)(imquic_connection *conn, uint64_t request_id)) |
Configure the callback function to be notified when there's an incoming FETCH_CANCEL request. | |
| void | imquic_set_fetch_accepted_cb (imquic_endpoint *endpoint, void(*fetch_accepted)(imquic_connection *conn, uint64_t request_id, imquic_moq_location *largest, imquic_moq_request_parameters *parameters, GList *track_extensions)) |
Configure the callback function to be notified when an FETCH we previously sent was accepted. | |
| void | imquic_set_fetch_error_cb (imquic_endpoint *endpoint, void(*fetch_error)(imquic_connection *conn, uint64_t request_id, imquic_moq_request_error_code error_code, const char *reason, uint64_t retry_interval)) |
Configure the callback function to be notified when an FETCH we previously sent was rejected with an error. | |
| void | imquic_set_incoming_track_status_cb (imquic_endpoint *endpoint, void(*incoming_track_status)(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, imquic_moq_name *tn, imquic_moq_request_parameters *parameters)) |
Configure the callback function to be notified when there's an incoming TRACK_STATUS request. | |
| void | imquic_set_track_status_accepted_cb (imquic_endpoint *endpoint, void(*track_status_accepted)(imquic_connection *conn, uint64_t request_id, uint64_t track_alias, imquic_moq_request_parameters *parameters)) |
Configure the callback function to be notified when a TRACK_STATUS we previously sent was accepted. | |
| void | imquic_set_track_status_error_cb (imquic_endpoint *endpoint, void(*track_status_error)(imquic_connection *conn, uint64_t request_id, imquic_moq_request_error_code error_code, const char *reason, uint64_t retry_interval)) |
Configure the callback function to be notified when a TRACK_STATUS we previously sent was rejected with an error. | |
| void | imquic_set_incoming_object_cb (imquic_endpoint *endpoint, void(*incoming_object)(imquic_connection *conn, imquic_moq_object *object)) |
| Configure the callback function to be notified when there's an incoming MoQ object, independently of how it was multiplexed on the wire. | |
| void | imquic_set_incoming_goaway_cb (imquic_endpoint *endpoint, void(*incoming_goaway)(imquic_connection *conn, const char *uri)) |
Configure the callback function to be notified when there's an incoming GOAWAY request. | |
| void | imquic_set_moq_connection_gone_cb (imquic_endpoint *endpoint, void(*moq_connection_gone)(imquic_connection *conn)) |
| Configure the callback function to be notified when an existing MoQ connection handled by this endpoint has been closed/shut down. | |
Using the MoQ API | |
| int | imquic_moq_publish_namespace (imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, imquic_moq_request_parameters *parameters) |
Function to send a PUBLISH_NAMESPACE request. | |
| int | imquic_moq_accept_publish_namespace (imquic_connection *conn, uint64_t request_id, imquic_moq_request_parameters *parameters) |
Function to accept an incoming PUBLISH_NAMESPACE request. | |
| int | imquic_moq_reject_publish_namespace (imquic_connection *conn, uint64_t request_id, imquic_moq_request_error_code error_code, const char *reason, uint64_t retry_interval) |
Function to reject an incoming PUBLISH_NAMESPACE request. | |
| int | imquic_moq_publish_namespace_done (imquic_connection *conn, imquic_moq_namespace *tns) |
Function to send a PUBLISH_NAMESPACE_DONE request. | |
| int | imquic_moq_publish (imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, imquic_moq_name *tn, uint64_t track_alias, imquic_moq_request_parameters *parameters, GList *track_extensions) |
Function to send a PUBLISH request. | |
| int | imquic_moq_accept_publish (imquic_connection *conn, uint64_t request_id, imquic_moq_request_parameters *parameters) |
Function to accept an incoming PUBLISH request. | |
| int | imquic_moq_reject_publish (imquic_connection *conn, uint64_t request_id, imquic_moq_request_error_code error_code, const char *reason, uint64_t retry_interval) |
Function to reject an incoming PUBLISH request. | |
| int | imquic_moq_subscribe (imquic_connection *conn, uint64_t request_id, uint64_t track_alias, imquic_moq_namespace *tns, imquic_moq_name *tn, imquic_moq_request_parameters *parameters) |
Function to send a SUBSCRIBE request. | |
| int | imquic_moq_accept_subscribe (imquic_connection *conn, uint64_t request_id, uint64_t track_alias, imquic_moq_request_parameters *parameters, GList *track_extensions) |
Function to accept an incoming SUBSCRIBE request. | |
| int | imquic_moq_reject_subscribe (imquic_connection *conn, uint64_t request_id, imquic_moq_request_error_code error_code, const char *reason, uint64_t track_alias, uint64_t retry_interval) |
Function to reject an incoming SUBSCRIBE request. | |
| int | imquic_moq_update_request (imquic_connection *conn, uint64_t request_id, uint64_t sub_request_id, imquic_moq_request_parameters *parameters) |
Function to send a REQUEST_UPDATE request. | |
| int | imquic_moq_accept_request_update (imquic_connection *conn, uint64_t request_id, imquic_moq_request_parameters *parameters) |
Function to accept an incoming REQUEST_UPDATE request. | |
| int | imquic_moq_reject_request_update (imquic_connection *conn, uint64_t request_id, imquic_moq_request_error_code error_code, const char *reason, uint64_t retry_interval) |
Function to reject an incoming REQUEST_UPDATE request. | |
| int | imquic_moq_publish_done (imquic_connection *conn, uint64_t request_id, imquic_moq_pub_done_code status_code, const char *reason) |
Function to send a PUBLISH_DONE request. | |
| int | imquic_moq_unsubscribe (imquic_connection *conn, uint64_t request_id) |
Function to send a UNSUBSCRIBE request. | |
| int | imquic_moq_subscribe_namespace (imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, imquic_moq_subscribe_namespace_options subscribe_options, imquic_moq_request_parameters *parameters) |
Function to send a SUBSCRIBE_NAMESPACE request. | |
| int | imquic_moq_accept_subscribe_namespace (imquic_connection *conn, uint64_t request_id, imquic_moq_request_parameters *parameters) |
Function to accept an incoming SUBSCRIBE_NAMESPACE request. | |
| int | imquic_moq_reject_subscribe_namespace (imquic_connection *conn, uint64_t request_id, imquic_moq_request_error_code error_code, const char *reason, uint64_t retry_interval) |
Function to reject an incoming SUBSCRIBE_NAMESPACE request. | |
| int | imquic_moq_unsubscribe_namespace (imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns) |
Function to send a UNSUBSCRIBE_NAMESPACE request. | |
| int | imquic_moq_notify_namespace (imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns) |
Function to send a NAMESPACE request. | |
| int | imquic_moq_notify_namespace_done (imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns) |
Function to send a NAMESPACE_DONE request. | |
| int | imquic_moq_standalone_fetch (imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, imquic_moq_name *tn, imquic_moq_location_range *range, imquic_moq_request_parameters *parameters) |
Function to send a standalone FETCH request. | |
| int | imquic_moq_joining_fetch (imquic_connection *conn, uint64_t request_id, uint64_t joining_request_id, gboolean absolute, uint64_t joining_start, imquic_moq_request_parameters *parameters) |
Function to send a joining FETCH request. | |
| int | imquic_moq_accept_fetch (imquic_connection *conn, uint64_t request_id, imquic_moq_location *largest, imquic_moq_request_parameters *parameters, GList *track_extensions) |
Function to accept an incoming FETCH request. | |
| int | imquic_moq_reject_fetch (imquic_connection *conn, uint64_t request_id, imquic_moq_request_error_code error_code, const char *reason, uint64_t retry_interval) |
Function to reject an incoming FETCH request. | |
| int | imquic_moq_cancel_fetch (imquic_connection *conn, uint64_t request_id) |
Function to send a FETCH_CANCEL request. | |
| int | imquic_moq_track_status (imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, imquic_moq_name *tn, imquic_moq_request_parameters *parameters) |
Function to send a TRACK_STATUS request. | |
| int | imquic_moq_accept_track_status (imquic_connection *conn, uint64_t request_id, uint64_t track_alias, imquic_moq_request_parameters *parameters) |
Function to accept an incoming TRACK_STATUS request. | |
| int | imquic_moq_reject_track_status (imquic_connection *conn, uint64_t request_id, imquic_moq_request_error_code error_code, const char *reason, uint64_t retry_interval) |
Function to reject an incoming TRACK_STATUS request. | |
| int | imquic_moq_send_object (imquic_connection *conn, imquic_moq_object *object) |
| Function to send a MoQ object. | |
| int | imquic_moq_requests_blocked (imquic_connection *conn) |
Function to send a REQUESTS_BLOCKED request. | |
| int | imquic_moq_goaway (imquic_connection *conn, const char *uri) |
Function to send a GOAWAY request. | |
MoQ resources | |
| enum | imquic_moq_group_order { IMQUIC_MOQ_ORDERING_ORIGINAL = 0x0 , IMQUIC_MOQ_ORDERING_ASCENDING = 0x1 , IMQUIC_MOQ_ORDERING_DESCENDING = 0x2 } |
| Group ordering for tracks. More... | |
| enum | imquic_moq_filter_type { IMQUIC_MOQ_FILTER_NEXT_GROUP_START = 0x1 , IMQUIC_MOQ_FILTER_LARGEST_OBJECT = 0x2 , IMQUIC_MOQ_FILTER_ABSOLUTE_START = 0x3 , IMQUIC_MOQ_FILTER_ABSOLUTE_RANGE = 0x4 } |
| MoQ filter type, for subscriptions. More... | |
| enum | imquic_moq_subscribe_namespace_options { IMQUIC_MOQ_WANT_PUBLISH = 0x0 , IMQUIC_MOQ_WANT_NAMESPACE = 0x1 , IMQUIC_MOQ_WANT_PUBLISH_AND_NAMESPACE = 0x2 } |
| Subscribe options for namespaces. More... | |
| enum | imquic_moq_delivery { IMQUIC_MOQ_USE_DATAGRAM , IMQUIC_MOQ_USE_SUBGROUP , IMQUIC_MOQ_USE_FETCH } |
| Ways of sending objects. More... | |
| enum | imquic_moq_object_status { IMQUIC_MOQ_NORMAL_OBJECT = 0x0 , IMQUIC_MOQ_OBJECT_DOESNT_EXIST = 0x1 , IMQUIC_MOQ_END_OF_GROUP = 0x3 , IMQUIC_MOQ_END_OF_TRACK = 0x4 } |
| MoQ Object status. More... | |
| enum | imquic_moq_extension_type { IMQUIC_MOQ_EXT_DELIVERY_TIMEOUT = 0x02 , IMQUIC_MOQ_EXT_MAX_CACHE_DURATION = 0x04 , IMQUIC_MOQ_EXT_DEFAULT_PUBLISHER_PRIORITY = 0x0E , IMQUIC_MOQ_EXT_DEFAULT_GROUP_ORDER = 0x22 , IMQUIC_MOQ_EXT_DYNAMIC_GROUPS = 0x30 , IMQUIC_MOQ_EXT_PRIOR_GROUP_ID_GAP = 0x3C , IMQUIC_MOQ_EXT_PRIOR_OBJECT_ID_GAP = 0x3E , IMQUIC_MOQ_EXT_IMMUTABLE_EXTENSIONS = 0xB } |
| Known MoQ Object Extension header types. More... | |
| typedef struct imquic_moq_namespace | imquic_moq_namespace |
| MoQ Track Namespace. | |
| typedef struct imquic_moq_name | imquic_moq_name |
| MoQ Track Name. | |
| typedef enum imquic_moq_group_order | imquic_moq_group_order |
| Group ordering for tracks. | |
| typedef enum imquic_moq_filter_type | imquic_moq_filter_type |
| MoQ filter type, for subscriptions. | |
| typedef struct imquic_moq_location | imquic_moq_location |
| MoQ Group/Object couple (for ranges) | |
| typedef struct imquic_moq_location_range | imquic_moq_location_range |
| MoQ location range (from where to where, e.g., for FETCH) | |
| typedef struct imquic_moq_subscription_filter | imquic_moq_subscription_filter |
| MoQ subscription filter. | |
| typedef enum imquic_moq_subscribe_namespace_options | imquic_moq_subscribe_namespace_options |
| Subscribe options for namespaces. | |
| typedef struct imquic_moq_request_parameters | imquic_moq_request_parameters |
| MoQ request parameters. | |
| typedef enum imquic_moq_delivery | imquic_moq_delivery |
| Ways of sending objects. | |
| typedef enum imquic_moq_object_status | imquic_moq_object_status |
| MoQ Object status. | |
| typedef struct imquic_moq_object_extension | imquic_moq_object_extension |
| MoQ Object Extension. | |
| typedef enum imquic_moq_extension_type | imquic_moq_extension_type |
| Known MoQ Object Extension header types. | |
| typedef struct imquic_moq_object | imquic_moq_object |
| MoQ Object. | |
| const char * | imquic_moq_namespace_str (imquic_moq_namespace *tns, char *buffer, size_t blen, gboolean tuple) |
| Helper to stringify a namespace (optionally the whole tuple) | |
| gboolean | imquic_moq_namespace_equals (imquic_moq_namespace *first, imquic_moq_namespace *second) |
| Helper to check whether two namespaces are the sames. | |
| gboolean | imquic_moq_namespace_contains (imquic_moq_namespace *parent, imquic_moq_namespace *child) |
| Helper to check whether a namespace is contained in another. | |
| imquic_moq_namespace * | imquic_moq_namespace_duplicate (imquic_moq_namespace *tns) |
| Helper to duplicate a namespace. | |
| void | imquic_moq_namespace_free (imquic_moq_namespace *tns) |
| Helper to free a imquic_moq_namespace instance. | |
| const char * | imquic_moq_track_str (imquic_moq_name *tn, char *buffer, size_t blen) |
| gboolean | imquic_moq_name_equals (imquic_moq_name *first, imquic_moq_name *second) |
| Helper to check whether two track names are the sames. | |
| const char * | imquic_moq_group_order_str (imquic_moq_group_order type) |
| Helper function to serialize to string the name of a imquic_moq_group_order value. | |
| const char * | imquic_moq_filter_type_str (imquic_moq_filter_type type) |
| Helper function to serialize to string the name of a imquic_moq_filter_type value. | |
| const char * | imquic_moq_subscribe_namespace_options_str (imquic_moq_subscribe_namespace_options type) |
| Helper function to serialize to string the name of a imquic_moq_subscribe_namespace_options value. | |
| void | imquic_moq_request_parameters_init_defaults (imquic_moq_request_parameters *parameters) |
| Helper method to initialize some defaults values (where applicable) for the supported parameters. | |
| const char * | imquic_moq_delivery_str (imquic_moq_delivery type) |
| Helper function to serialize to string the name of a imquic_moq_delivery property. | |
| const char * | imquic_moq_object_status_str (imquic_moq_object_status status) |
| Helper function to serialize to string the name of a imquic_moq_object_status property. | |
| const char * | imquic_moq_extension_type_str (imquic_moq_extension_type type) |
| Helper function to serialize to string the name of a imquic_moq_extension_type value. | |
imquic MoQ public interface (headers)
Public interface to the Media Over QUIC (MoQ) native support in the imquic library. This is where public functions are callbacks to interact with the MoQ features of the library are defined.
| typedef struct imquic_moq_auth_token imquic_moq_auth_token |
MoQ Authorization Token.
MoQ Authorization Token Alias Type.
| typedef enum imquic_moq_delivery imquic_moq_delivery |
Ways of sending objects.
| typedef enum imquic_moq_error_code imquic_moq_error_code |
Generic error codes.
| typedef enum imquic_moq_extension_type imquic_moq_extension_type |
Known MoQ Object Extension header types.
| typedef enum imquic_moq_filter_type imquic_moq_filter_type |
MoQ filter type, for subscriptions.
| typedef enum imquic_moq_group_order imquic_moq_group_order |
Group ordering for tracks.
| typedef struct imquic_moq_location imquic_moq_location |
MoQ Group/Object couple (for ranges)
| typedef struct imquic_moq_location_range imquic_moq_location_range |
MoQ location range (from where to where, e.g., for FETCH)
| typedef struct imquic_moq_name imquic_moq_name |
MoQ Track Name.
| typedef struct imquic_moq_namespace imquic_moq_namespace |
MoQ Track Namespace.
| typedef struct imquic_moq_object imquic_moq_object |
MoQ Object.
| typedef struct imquic_moq_object_extension imquic_moq_object_extension |
MoQ Object Extension.
| typedef enum imquic_moq_object_status imquic_moq_object_status |
MoQ Object status.
| typedef enum imquic_moq_pub_done_code imquic_moq_pub_done_code |
Publish done codes.
Request error codes.
| typedef struct imquic_moq_request_parameters imquic_moq_request_parameters |
MoQ request parameters.
| typedef enum imquic_moq_reset_stream_code imquic_moq_reset_stream_code |
RESET_STREAM error codes.
Subscribe options for namespaces.
| typedef struct imquic_moq_subscription_filter imquic_moq_subscription_filter |
MoQ subscription filter.
| typedef enum imquic_moq_version imquic_moq_version |
Versions that can be negotiated.
| enum imquic_moq_delivery |
Generic error codes.
Known MoQ Object Extension header types.
Publish done codes.
Request error codes.
| enum imquic_moq_version |
| imquic_client * imquic_create_moq_client | ( | const char * | name, |
| ... ) |
Method to create a new MoQ client, using variable arguments to dictate what the client should do (e.g., address to connect to, ALPN, etc.). Variable arguments are in the form of a sequence of name-value started with a IMQUIC_CONFIG_INIT and ended by a IMQUIC_CONFIG_DONE , e.g.:
imquic_server *client = imquic_create_moq_client("moq-sub",
IMQUIC_CONFIG_INIT,
IMQUIC_CONFIG_TLS_CERT, cert_pem,
IMQUIC_CONFIG_TLS_KEY, cert_key,
IMQUIC_CONFIG_TLS_PASSWORD, cert_pwd,
IMQUIC_CONFIG_REMOTE_HOST, "127.0.0.1",
IMQUIC_CONFIG_REMOTE_PORT, 9000,
IMQUIC_CONFIG_WEBTRANSPORT, TRUE,
IMQUIC_CONFIG_MOQ_VERSION, IMQUIC_MOQ_VERSION_16,
IMQUIC_CONFIG_HTTP3_PATH, "/moq",
IMQUIC_CONFIG_DONE, NULL);
to create a QUIC client that will automatically negotiate MoQ over WebTransport. Notice that this only specifies the QUIC role (client), not what role the application will have with respect to MoQ. Again, notice that, axacrlt as with imquic_create_client, this will only create the resource, but not actually start the connection: before doing that, you'll need to configure the callbacks for the events you're interested in (in this case, MoQ specific), and then use imquic_start_endpoint to start the QUIC client (which will attempt a connection).
| [in] | name | The endpoint name (if NULL, a default value will be set) |
| imquic_server * imquic_create_moq_server | ( | const char * | name, |
| ... ) |
Method to create a new MoQ server, using variable arguments to dictate what the server should do (e.g., port to bind to, ALPN, etc.). Variable arguments are in the form of a sequence of name-value started with a IMQUIC_CONFIG_INIT and ended by a IMQUIC_CONFIG_DONE , e.g.:
imquic_server *server = imquic_create_moq_server("moq-relay",
IMQUIC_CONFIG_INIT,
IMQUIC_CONFIG_TLS_CERT, cert_pem,
IMQUIC_CONFIG_TLS_KEY, cert_key,
IMQUIC_CONFIG_TLS_PASSWORD, cert_pwd,
IMQUIC_CONFIG_LOCAL_PORT, 9000,
IMQUIC_CONFIG_WEBTRANSPORT, TRUE,
IMQUIC_CONFIG_MOQ_VERSION, IMQUIC_MOQ_VERSION_16,
IMQUIC_CONFIG_DONE, NULL);
to create a QUIC server that will automatically negotiate MoQ over WebTransport. Notice that this only specifies the QUIC role (server), not what role the application will have with respect to MoQ. Againn notice that, exactly as with imquic_create_server, this will only create the resource, but not actually start the server: before doing that, you'll need to configure the callbacks for the events you're interested in (in this case, MoQ specific), and then use imquic_start_endpoint to start the QUIC server (which will wait for incoming connections).
| [in] | name | The endpoint name (if NULL, a default value will be set) |
| int imquic_moq_accept_fetch | ( | imquic_connection * | conn, |
| uint64_t | request_id, | ||
| imquic_moq_location * | largest, | ||
| imquic_moq_request_parameters * | parameters, | ||
| GList * | track_extensions ) |
Function to accept an incoming FETCH request.
| conn | The imquic_connection to send the request on |
| request_id | The unique request_id value associated to the subscription to accept |
| largest | The largest group/object IDs |
| parameters | The parameters to add to the request |
| track_extensions | List of track extensions to add, if any (added in v16) |
| int imquic_moq_accept_publish | ( | imquic_connection * | conn, |
| uint64_t | request_id, | ||
| imquic_moq_request_parameters * | parameters ) |
Function to accept an incoming PUBLISH request.
| conn | The imquic_connection to send the request on |
| request_id | The unique request_id value associated to the subscription to accept |
| parameters | The parameters to add to the request |
| int imquic_moq_accept_publish_namespace | ( | imquic_connection * | conn, |
| uint64_t | request_id, | ||
| imquic_moq_request_parameters * | parameters ) |
Function to accept an incoming PUBLISH_NAMESPACE request.
| conn | The imquic_connection to send the request on |
| request_id | The request ID of the original PUBLISH_NAMESPACE request |
| parameters | The parameters to add to the request (ignored before v15) |
| int imquic_moq_accept_request_update | ( | imquic_connection * | conn, |
| uint64_t | request_id, | ||
| imquic_moq_request_parameters * | parameters ) |
Function to accept an incoming REQUEST_UPDATE request.
| conn | The imquic_connection to send the request on |
| request_id | The request ID of the original REQUEST_UPDATE request |
| parameters | The parameters to add to the request |
| int imquic_moq_accept_subscribe | ( | imquic_connection * | conn, |
| uint64_t | request_id, | ||
| uint64_t | track_alias, | ||
| imquic_moq_request_parameters * | parameters, | ||
| GList * | track_extensions ) |
Function to accept an incoming SUBSCRIBE request.
| conn | The imquic_connection to send the request on |
| request_id | The unique request_id value associated to the subscription to accept |
| track_alias | The unique track_alias value associated to the subscription to accept (ignored before v12) |
| parameters | The parameters to add to the request |
| track_extensions | List of track extensions to add, if any (added in v16) |
| int imquic_moq_accept_subscribe_namespace | ( | imquic_connection * | conn, |
| uint64_t | request_id, | ||
| imquic_moq_request_parameters * | parameters ) |
Function to accept an incoming SUBSCRIBE_NAMESPACE request.
| conn | The imquic_connection to send the request on |
| request_id | The request ID of the original SUBSCRIBE_NAMESPACE request |
| parameters | The parameters to add to the request (ignored before v15) |
| int imquic_moq_accept_track_status | ( | imquic_connection * | conn, |
| uint64_t | request_id, | ||
| uint64_t | track_alias, | ||
| imquic_moq_request_parameters * | parameters ) |
Function to accept an incoming TRACK_STATUS request.
TRACK_STATUS , support for this request is disabled in versions earlier than v13. | conn | The imquic_connection to send the request on |
| request_id | The unique request_id value associated to the subscription to query |
| track_alias | The unique track_alias value associated to the subscription to query (ignored after v15) |
| parameters | The parameters to add to the request |
| const char * imquic_moq_auth_token_alias_type_str | ( | imquic_moq_auth_token_alias_type | type | ) |
Helper function to serialize to string the name of a imquic_moq_auth_token_alias_type property.
| type | The imquic_moq_auth_token_alias_type property |
| size_t imquic_moq_build_auth_token | ( | imquic_moq_auth_token * | token, |
| uint8_t * | bytes, | ||
| size_t | blen ) |
Helper mode to craft an auth token buffer out of a imquic_moq_auth_token instance.
| [in] | token | The imquic_moq_auth_token instance to serialize |
| [out] | bytes | The buffer to write the auth token to |
| [in] | blen | The size of the buffer to write to |
| int imquic_moq_cancel_fetch | ( | imquic_connection * | conn, |
| uint64_t | request_id ) |
Function to send a FETCH_CANCEL request.
| conn | The imquic_connection to send the request on |
| request_id | The unique request_id value associated to the subscription to cancel_fetch from |
| const char * imquic_moq_delivery_str | ( | imquic_moq_delivery | type | ) |
Helper function to serialize to string the name of a imquic_moq_delivery property.
| type | The imquic_moq_delivery property |
| const char * imquic_moq_error_code_str | ( | imquic_moq_error_code | code | ) |
Helper function to serialize to string the name of a imquic_moq_error_code value.
| code | The imquic_moq_error_code value |
| const char * imquic_moq_extension_type_str | ( | imquic_moq_extension_type | type | ) |
Helper function to serialize to string the name of a imquic_moq_extension_type value.
| type | The imquic_moq_extension_type value |
| const char * imquic_moq_filter_type_str | ( | imquic_moq_filter_type | type | ) |
Helper function to serialize to string the name of a imquic_moq_filter_type value.
| type | The imquic_moq_filter_type value |
| uint64_t imquic_moq_get_next_request_id | ( | imquic_connection * | conn | ) |
Helper function to get the next Request ID we can use.
| conn | The imquic_connection to query |
| const char * imquic_moq_get_remote_implementation | ( | imquic_connection * | conn | ) |
Helper function to return the MoQ implementation name as a string, if provided by the peer of this connection.
| conn | The imquic_connection to query |
| imquic_moq_version imquic_moq_get_version | ( | imquic_connection * | conn | ) |
Helper function to get the MoQ version associated with a connection.
| conn | The imquic_connection to query |
| int imquic_moq_goaway | ( | imquic_connection * | conn, |
| const char * | uri ) |
Function to send a GOAWAY request.
| conn | The imquic_connection to send the request on |
| uri | Where the client can connect to continue the session |
| const char * imquic_moq_group_order_str | ( | imquic_moq_group_order | type | ) |
Helper function to serialize to string the name of a imquic_moq_group_order value.
| type | The imquic_moq_group_order value |
| int imquic_moq_joining_fetch | ( | imquic_connection * | conn, |
| uint64_t | request_id, | ||
| uint64_t | joining_request_id, | ||
| gboolean | absolute, | ||
| uint64_t | joining_start, | ||
| imquic_moq_request_parameters * | parameters ) |
Function to send a joining FETCH request.
| conn | The imquic_connection to send the request on |
| request_id | A unique numeric identifier to associate to this subscription |
| joining_request_id | Existing subscription to join |
| absolute | Whether this is an absolute or relative joining FETCH |
| joining_start | How many groups to retrieve before the current one, for relative joins, or starting group ID for absolute joins |
| parameters | The parameters to add to the request |
| gboolean imquic_moq_name_equals | ( | imquic_moq_name * | first, |
| imquic_moq_name * | second ) |
Helper to check whether two track names are the sames.
| first | The first track name to check |
| second | The second track name to check |
| gboolean imquic_moq_namespace_contains | ( | imquic_moq_namespace * | parent, |
| imquic_moq_namespace * | child ) |
Helper to check whether a namespace is contained in another.
| parent | The namespace parent to check |
| child | The namespace child to check |
| imquic_moq_namespace * imquic_moq_namespace_duplicate | ( | imquic_moq_namespace * | tns | ) |
Helper to duplicate a namespace.
| tns | The namespace to duplicate |
| gboolean imquic_moq_namespace_equals | ( | imquic_moq_namespace * | first, |
| imquic_moq_namespace * | second ) |
Helper to check whether two namespaces are the sames.
| first | The first namespace to check |
| second | The second namespace to check |
| void imquic_moq_namespace_free | ( | imquic_moq_namespace * | tns | ) |
Helper to free a imquic_moq_namespace instance.
| tns | The namespace to free |
| const char * imquic_moq_namespace_str | ( | imquic_moq_namespace * | tns, |
| char * | buffer, | ||
| size_t | blen, | ||
| gboolean | tuple ) |
Helper to stringify a namespace (optionally the whole tuple)
tuple is FALSE, the next property of the namespace is ignored, otherwise a single string is built for the whole tuple, using a slash character as a separator. | [in] | tns | The namespace (or the start of a namespace tuple) to stringify |
| [out] | buffer | The buffer to write the string to |
| [in] | blen | The size of the output buffer |
| [in] | tuple | Whether the whole tuple should be stringified, or only the specific namespace |
| int imquic_moq_notify_namespace | ( | imquic_connection * | conn, |
| uint64_t | request_id, | ||
| imquic_moq_namespace * | tns ) |
Function to send a NAMESPACE request.
| conn | The imquic_connection to send the request on |
| request_id | The request ID of the original SUBSCRIBE_NAMESPACE request |
| tns | The imquic_moq_namespace namespace this request refers to |
| int imquic_moq_notify_namespace_done | ( | imquic_connection * | conn, |
| uint64_t | request_id, | ||
| imquic_moq_namespace * | tns ) |
Function to send a NAMESPACE_DONE request.
| conn | The imquic_connection to send the request on |
| request_id | The request ID of the original SUBSCRIBE_NAMESPACE request |
| tns | The imquic_moq_namespace namespace this request refers to |
| const char * imquic_moq_object_status_str | ( | imquic_moq_object_status | status | ) |
Helper function to serialize to string the name of a imquic_moq_object_status property.
| status | The imquic_moq_object_status property |
| int imquic_moq_parse_auth_token | ( | uint8_t * | bytes, |
| size_t | blen, | ||
| imquic_moq_auth_token * | token ) |
Helper mode to parse an auth token buffer to a imquic_moq_auth_token instance.
value property will point to data in the original bytes buffer, which means that no allocation will be performed by this method. If you need to store the token value somewhere, it's up to you to copy it before bytes is invalidated by the application | [in] | bytes | The buffer containing the auth token data |
| [in] | blen | The size of the buffer containing the auth token data data |
| [out] | token | The imquic_moq_auth_token to put the parsed token info to |
| const char * imquic_moq_pub_done_code_str | ( | imquic_moq_pub_done_code | code | ) |
Helper function to serialize to string the name of a imquic_moq_pub_done_code value.
| code | The imquic_moq_pub_done_code value |
| int imquic_moq_publish | ( | imquic_connection * | conn, |
| uint64_t | request_id, | ||
| imquic_moq_namespace * | tns, | ||
| imquic_moq_name * | tn, | ||
| uint64_t | track_alias, | ||
| imquic_moq_request_parameters * | parameters, | ||
| GList * | track_extensions ) |
Function to send a PUBLISH request.
| conn | The imquic_connection to send the request on |
| request_id | A unique request ID to associate to this subscription |
| tns | The imquic_moq_namespace namespace the track to publish to belongs to |
| tn | The imquic_moq_name track name to publish to |
| track_alias | A unique numeric identifier to associate to the track in this subscription |
| parameters | The parameters to add to the request |
| track_extensions | List of track extensions to add, if any (added in v16) |
| int imquic_moq_publish_done | ( | imquic_connection * | conn, |
| uint64_t | request_id, | ||
| imquic_moq_pub_done_code | status_code, | ||
| const char * | reason ) |
Function to send a PUBLISH_DONE request.
| conn | The imquic_connection to send the request on |
| request_id | The unique request_id value associated to the subscription that's now done |
| status_code | The status code |
| reason | A reason phrase, if needed |
| int imquic_moq_publish_namespace | ( | imquic_connection * | conn, |
| uint64_t | request_id, | ||
| imquic_moq_namespace * | tns, | ||
| imquic_moq_request_parameters * | parameters ) |
Function to send a PUBLISH_NAMESPACE request.
| conn | The imquic_connection to send the request on |
| request_id | A unique request ID |
| tns | The imquic_moq_namespace namespace to publish_namespace |
| parameters | The parameters to add to the request |
| int imquic_moq_publish_namespace_done | ( | imquic_connection * | conn, |
| imquic_moq_namespace * | tns ) |
Function to send a PUBLISH_NAMESPACE_DONE request.
| conn | The imquic_connection to send the request on |
| tns | The imquic_moq_namespace namespace to publish_namespace_done |
| int imquic_moq_reject_fetch | ( | imquic_connection * | conn, |
| uint64_t | request_id, | ||
| imquic_moq_request_error_code | error_code, | ||
| const char * | reason, | ||
| uint64_t | retry_interval ) |
Function to reject an incoming FETCH request.
| conn | The imquic_connection to send the request on |
| request_id | The unique request_id value associated to the subscription to reject |
| error_code | The error code to send back |
| reason | A string representation of the error, if needed |
| retry_interval | Retry interval in ms (added in v16, ignored otherwise) |
| int imquic_moq_reject_publish | ( | imquic_connection * | conn, |
| uint64_t | request_id, | ||
| imquic_moq_request_error_code | error_code, | ||
| const char * | reason, | ||
| uint64_t | retry_interval ) |
Function to reject an incoming PUBLISH request.
| conn | The imquic_connection to send the request on |
| request_id | The unique request_id value associated to the subscription to reject |
| error_code | The error code to send back |
| reason | A string representation of the error, if needed |
| retry_interval | Retry interval in ms (added in v16, ignored otherwise) |
| int imquic_moq_reject_publish_namespace | ( | imquic_connection * | conn, |
| uint64_t | request_id, | ||
| imquic_moq_request_error_code | error_code, | ||
| const char * | reason, | ||
| uint64_t | retry_interval ) |
Function to reject an incoming PUBLISH_NAMESPACE request.
| conn | The imquic_connection to send the request on |
| request_id | The request ID of the original PUBLISH_NAMESPACE request |
| error_code | The error code to send back |
| reason | A string representation of the error, if needed |
| retry_interval | Retry interval in ms (added in v16, ignored otherwise) |
| int imquic_moq_reject_request_update | ( | imquic_connection * | conn, |
| uint64_t | request_id, | ||
| imquic_moq_request_error_code | error_code, | ||
| const char * | reason, | ||
| uint64_t | retry_interval ) |
Function to reject an incoming REQUEST_UPDATE request.
| conn | The imquic_connection to send the request on |
| request_id | The unique request_id value associated to the subscription to reject |
| error_code | The error code to send back |
| reason | A string representation of the error, if needed |
| retry_interval | Retry interval in ms (added in v16, ignored otherwise) |
| int imquic_moq_reject_subscribe | ( | imquic_connection * | conn, |
| uint64_t | request_id, | ||
| imquic_moq_request_error_code | error_code, | ||
| const char * | reason, | ||
| uint64_t | track_alias, | ||
| uint64_t | retry_interval ) |
Function to reject an incoming SUBSCRIBE request.
| conn | The imquic_connection to send the request on |
| request_id | The unique request_id value associated to the subscription to reject |
| error_code | The error code to send back |
| reason | A string representation of the error, if needed |
| track_alias | The unique track_alias value associated to the subscription to reject (ignored starting from v12) |
| retry_interval | Retry interval in ms (added in v16, ignored otherwise) |
| int imquic_moq_reject_subscribe_namespace | ( | imquic_connection * | conn, |
| uint64_t | request_id, | ||
| imquic_moq_request_error_code | error_code, | ||
| const char * | reason, | ||
| uint64_t | retry_interval ) |
Function to reject an incoming SUBSCRIBE_NAMESPACE request.
| conn | The imquic_connection to send the request on |
| request_id | The request ID of the original SUBSCRIBE_NAMESPACE request |
| error_code | The error code to send back |
| reason | A string representation of the error, if needed |
| retry_interval | Retry interval in ms (added in v16, ignored otherwise) |
| int imquic_moq_reject_track_status | ( | imquic_connection * | conn, |
| uint64_t | request_id, | ||
| imquic_moq_request_error_code | error_code, | ||
| const char * | reason, | ||
| uint64_t | retry_interval ) |
Function to reject an incoming TRACK_STATUS request.
TRACK_STATUS , support for this request is disabled in versions earlier than v13 | conn | The imquic_connection to send the request on |
| request_id | The unique request_id value associated to the subscription to reject |
| error_code | The error code to send back |
| reason | A string representation of the error, if needed |
| retry_interval | Retry interval in ms (added in v16, ignored otherwise) |
| const char * imquic_moq_request_error_code_str | ( | imquic_moq_request_error_code | code | ) |
Helper function to serialize to string the name of a imquic_moq_request_error_code value.
| code | The imquic_moq_request_error_code value |
| void imquic_moq_request_parameters_init_defaults | ( | imquic_moq_request_parameters * | parameters | ) |
Helper method to initialize some defaults values (where applicable) for the supported parameters.
| parameters | The imquic_moq_request_parameters to initialize |
| int imquic_moq_requests_blocked | ( | imquic_connection * | conn | ) |
Function to send a REQUESTS_BLOCKED request.
| conn | The imquic_connection to send the request on |
| const char * imquic_moq_reset_stream_code_str | ( | imquic_moq_reset_stream_code | code | ) |
Helper function to serialize to string the name of a imquic_moq_reset_stream_code value.
| code | The imquic_moq_reset_stream_code value |
| int imquic_moq_send_object | ( | imquic_connection * | conn, |
| imquic_moq_object * | object ) |
Function to send a MoQ object.
end_of_stream property to TRUE in the object. There's no need to do that when using OBJECT_STREAM or OBJECT_DATAGRAM . You can also close the stream when you don't have any object to send: just set the relevant properties (e.g., request_id, group_id and subgroup_id) without any payload, and the stack will find the right stream to close it. | conn | The imquic_connection to send the object on |
| object | The imquic_moq_object object to send, including all relevant identifiers and the payload |
| int imquic_moq_set_connection_auth | ( | imquic_connection * | conn, |
| uint8_t * | auth, | ||
| size_t | authlen ) |
Method to provide credentials, as a client, on a new connection. If credentials need to provided, this must be done as soon as the connection is established, and before sending any MoQ message. A good place to do that is the callback fired when a new connection is available.
| conn | The imquic_connection to set the version on |
| auth | The authentication info, if any |
| authlen | The size of the authentication info, if any |
| int imquic_moq_set_max_request_id | ( | imquic_connection * | conn, |
| uint64_t | max_request_id ) |
Helper function to set the Maximum Request ID a subscriber can send.
MAX_REQUEST_ID request. Notice that whatever is passed to the request will be decremented by 1, as per the specification, meaning you cannot pass 0 as a value here | conn | The imquic_connection to update |
| max_request_id | The Maximum Request ID to enforce |
| int imquic_moq_standalone_fetch | ( | imquic_connection * | conn, |
| uint64_t | request_id, | ||
| imquic_moq_namespace * | tns, | ||
| imquic_moq_name * | tn, | ||
| imquic_moq_location_range * | range, | ||
| imquic_moq_request_parameters * | parameters ) |
Function to send a standalone FETCH request.
| conn | The imquic_connection to send the request on |
| request_id | A unique numeric identifier to associate to this subscription |
| tns | The imquic_moq_namespace namespace the track to fetch to belongs to |
| tn | The imquic_moq_name track name to fetch to |
| range | The range of groups/objects to fetch |
| parameters | The parameters to add to the request |
| int imquic_moq_subscribe | ( | imquic_connection * | conn, |
| uint64_t | request_id, | ||
| uint64_t | track_alias, | ||
| imquic_moq_namespace * | tns, | ||
| imquic_moq_name * | tn, | ||
| imquic_moq_request_parameters * | parameters ) |
Function to send a SUBSCRIBE request.
| conn | The imquic_connection to send the request on |
| request_id | A unique request ID to associate to this subscription |
| track_alias | A unique numeric identifier to associate to the track in this subscription (ignored starting from v12) |
| tns | The imquic_moq_namespace namespace the track to subscribe to belongs to |
| tn | The imquic_moq_name track name to subscribe to |
| parameters | The parameters to add to the request |
| int imquic_moq_subscribe_namespace | ( | imquic_connection * | conn, |
| uint64_t | request_id, | ||
| imquic_moq_namespace * | tns, | ||
| imquic_moq_subscribe_namespace_options | subscribe_options, | ||
| imquic_moq_request_parameters * | parameters ) |
Function to send a SUBSCRIBE_NAMESPACE request.
| conn | The imquic_connection to send the request on |
| request_id | A unique request ID |
| tns | The imquic_moq_namespace namespace the track to subscribe to belongs to |
| subscribe_options | The subscribe options to add to the request (added in v16, ignored otherwise) |
| parameters | The parameters to add to the request |
| const char * imquic_moq_subscribe_namespace_options_str | ( | imquic_moq_subscribe_namespace_options | type | ) |
Helper function to serialize to string the name of a imquic_moq_subscribe_namespace_options value.
| type | The imquic_moq_subscribe_namespace_options value |
| int imquic_moq_track_status | ( | imquic_connection * | conn, |
| uint64_t | request_id, | ||
| imquic_moq_namespace * | tns, | ||
| imquic_moq_name * | tn, | ||
| imquic_moq_request_parameters * | parameters ) |
Function to send a TRACK_STATUS request.
TRACK_STATUS , support for this request is disabled in versions earlier than v13. | conn | The imquic_connection to send the request on |
| request_id | A unique request ID to associate to this request |
| tns | The imquic_moq_namespace namespace the track to track_status to belongs to |
| tn | The imquic_moq_name track name to track_status to |
| parameters | The parameters to add to the request |
| const char * imquic_moq_track_str | ( | imquic_moq_name * | tn, |
| char * | buffer, | ||
| size_t | blen ) |
| int imquic_moq_unsubscribe | ( | imquic_connection * | conn, |
| uint64_t | request_id ) |
Function to send a UNSUBSCRIBE request.
| conn | The imquic_connection to send the request on |
| request_id | The unique request_id value associated to the subscription to unsubscribe from |
| int imquic_moq_unsubscribe_namespace | ( | imquic_connection * | conn, |
| uint64_t | request_id, | ||
| imquic_moq_namespace * | tns ) |
Function to send a UNSUBSCRIBE_NAMESPACE request.
| conn | The imquic_connection to send the request on |
| request_id | The request ID of the original SUBSCRIBE_NAMESPACE request (added in v15, ignored otherwise) |
| tns | The imquic_moq_namespace namespace to unsubscribe notifications from (deprecated in v15) |
| int imquic_moq_update_request | ( | imquic_connection * | conn, |
| uint64_t | request_id, | ||
| uint64_t | sub_request_id, | ||
| imquic_moq_request_parameters * | parameters ) |
Function to send a REQUEST_UPDATE request.
request_id will change depending on which version the connection is using. | conn | The imquic_connection to send the request on |
| request_id | Unique request_id value (before v14, this is associated to the subscription to update) |
| sub_request_id | Unique request_id value associated to the subscription to update (ignored before v14) |
| parameters | The parameters to add to the request |
| const char * imquic_moq_version_str | ( | imquic_moq_version | version | ) |
Helper function to serialize to string the name of a imquic_moq_version property.
| version | The imquic_moq_version property |
| void imquic_set_fetch_accepted_cb | ( | imquic_endpoint * | endpoint, |
| void(* | fetch_accepted )(imquic_connection *conn, uint64_t request_id, imquic_moq_location *largest, imquic_moq_request_parameters *parameters, GList *track_extensions) ) |
Configure the callback function to be notified when an FETCH we previously sent was accepted.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| fetch_accepted | Pointer to the function that will fire when an FETCH is accepted |
| void imquic_set_fetch_error_cb | ( | imquic_endpoint * | endpoint, |
| void(* | fetch_error )(imquic_connection *conn, uint64_t request_id, imquic_moq_request_error_code error_code, const char *reason, uint64_t retry_interval) ) |
Configure the callback function to be notified when an FETCH we previously sent was rejected with an error.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| fetch_error | Pointer to the function that will fire when an FETCH is rejected |
| void imquic_set_incoming_fetch_cancel_cb | ( | imquic_endpoint * | endpoint, |
| void(* | incoming_fetch_cancel )(imquic_connection *conn, uint64_t request_id) ) |
Configure the callback function to be notified when there's an incoming FETCH_CANCEL request.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| incoming_fetch_cancel | Pointer to the function that will handle the incoming FETCH_CANCEL |
| void imquic_set_incoming_goaway_cb | ( | imquic_endpoint * | endpoint, |
| void(* | incoming_goaway )(imquic_connection *conn, const char *uri) ) |
Configure the callback function to be notified when there's an incoming GOAWAY request.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| incoming_goaway | Pointer to the function that will handle the incoming GOAWAY |
| void imquic_set_incoming_joining_fetch_cb | ( | imquic_endpoint * | endpoint, |
| void(* | incoming_joining_fetch )(imquic_connection *conn, uint64_t request_id, uint64_t joining_request_id, gboolean absolute, uint64_t joining_start, imquic_moq_request_parameters *parameters) ) |
Configure the callback function to be notified when there's an incoming joining FETCH request.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| incoming_joining_fetch | Pointer to the function that will handle the incoming FETCH |
| void imquic_set_incoming_moq_connection_cb | ( | imquic_endpoint * | endpoint, |
| uint64_t(* | incoming_moq_connection )(imquic_connection *conn, uint8_t *auth, size_t authlen) ) |
Configure the callback function to be notified, as a server, when a CLIENT_SETUP is received. This is a chance, for instance, to evaluate the credentials that were provided. It's the application responsibility to accept or reject the connection at this point: returning 0 will accept the connection, while returning an error code will reject and close it. Connections are automatically accepted if this callback is not configured.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| incoming_moq_connection | Pointer to the function that will be invoked when MoQ is ready to be used |
| void imquic_set_incoming_namespace_cb | ( | imquic_endpoint * | endpoint, |
| void(* | incoming_namespace )(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns) ) |
Configure the callback function to be notified when there's an incoming NAMESPACE request.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| incoming_namespace | Pointer to the function that will handle the incoming NAMESPACE |
| void imquic_set_incoming_namespace_done_cb | ( | imquic_endpoint * | endpoint, |
| void(* | incoming_namespace_done )(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns) ) |
Configure the callback function to be notified when there's an incoming NAMESPACE_DONE request.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| incoming_namespace_done | Pointer to the function that will handle the incoming NAMESPACE_DONE |
| void imquic_set_incoming_object_cb | ( | imquic_endpoint * | endpoint, |
| void(* | incoming_object )(imquic_connection *conn, imquic_moq_object *object) ) |
Configure the callback function to be notified when there's an incoming MoQ object, independently of how it was multiplexed on the wire.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| incoming_object | Pointer to the function that will handle the incoming MoQ object |
| void imquic_set_incoming_publish_cb | ( | imquic_endpoint * | endpoint, |
| void(* | incoming_publish )(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, imquic_moq_name *tn, uint64_t track_alias, imquic_moq_request_parameters *parameters, GList *track_extensions) ) |
Configure the callback function to be notified when there's an incoming PUBLISH request.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| incoming_publish | Pointer to the function that will handle the incoming PUBLISH |
| void imquic_set_incoming_publish_namespace_cancel_cb | ( | imquic_endpoint * | endpoint, |
| void(* | incoming_publish_namespace_cancel )(imquic_connection *conn, imquic_moq_namespace *tns, imquic_moq_request_error_code error_code, const char *reason) ) |
Configure the callback function to be notified when there's an incoming PUBLISH_NAMESPACE_CANCEL request.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| incoming_publish_namespace_cancel | Pointer to the function that will handle the incoming PUBLISH_NAMESPACE_CANCEL |
| void imquic_set_incoming_publish_namespace_cb | ( | imquic_endpoint * | endpoint, |
| void(* | incoming_publish_namespace )(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, imquic_moq_request_parameters *parameters) ) |
Configure the callback function to be notified when there's an incoming PUBLISH_NAMESPACE request.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| incoming_publish_namespace | Pointer to the function that will handle the incoming PUBLISH_NAMESPACE |
| void imquic_set_incoming_standalone_fetch_cb | ( | imquic_endpoint * | endpoint, |
| void(* | incoming_standalone_fetch )(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, imquic_moq_name *tn, imquic_moq_location_range *range, imquic_moq_request_parameters *parameters) ) |
Configure the callback function to be notified when there's an incoming standalone FETCH request.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| incoming_standalone_fetch | Pointer to the function that will handle the incoming FETCH |
| void imquic_set_incoming_subscribe_cb | ( | imquic_endpoint * | endpoint, |
| void(* | incoming_subscribe )(imquic_connection *conn, uint64_t request_id, uint64_t track_alias, imquic_moq_namespace *tns, imquic_moq_name *tn, imquic_moq_request_parameters *parameters) ) |
Configure the callback function to be notified when there's an incoming SUBSCRIBE request.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| incoming_subscribe | Pointer to the function that will handle the incoming SUBSCRIBE |
| void imquic_set_incoming_subscribe_namespace_cb | ( | imquic_endpoint * | endpoint, |
| void(* | incoming_subscribe_namespace )(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, imquic_moq_subscribe_namespace_options subscribe_options, imquic_moq_request_parameters *parameters) ) |
Configure the callback function to be notified when there's an incoming SUBSCRIBE_NAMESPACE request.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| incoming_subscribe_namespace | Pointer to the function that will handle the incoming SUBSCRIBE_NAMESPACE |
| void imquic_set_incoming_track_status_cb | ( | imquic_endpoint * | endpoint, |
| void(* | incoming_track_status )(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns, imquic_moq_name *tn, imquic_moq_request_parameters *parameters) ) |
Configure the callback function to be notified when there's an incoming TRACK_STATUS request.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| incoming_track_status | Pointer to the function that will handle the incoming TRACK_STATUS |
| void imquic_set_incoming_unsubscribe_cb | ( | imquic_endpoint * | endpoint, |
| void(* | incoming_unsubscribe )(imquic_connection *conn, uint64_t request_id) ) |
Configure the callback function to be notified when there's an incoming UNSUBSCRIBE request.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| incoming_unsubscribe | Pointer to the function that will handle the incoming UNSUBSCRIBE |
| void imquic_set_incoming_unsubscribe_namespace_cb | ( | imquic_endpoint * | endpoint, |
| void(* | incoming_unsubscribe_namespace )(imquic_connection *conn, uint64_t request_id, imquic_moq_namespace *tns) ) |
Configure the callback function to be notified when there's an incoming UNSUBSCRIBE_NAMESPACE request.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| incoming_unsubscribe_namespace | Pointer to the function that will handle the incoming UNSUBSCRIBE_NAMESPACE |
| void imquic_set_moq_connection_gone_cb | ( | imquic_endpoint * | endpoint, |
| void(* | moq_connection_gone )(imquic_connection *conn) ) |
Configure the callback function to be notified when an existing MoQ connection handled by this endpoint has been closed/shut down.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| moq_connection_gone | Pointer to the function that will be invoked when a MoQ connection is gone |
| void imquic_set_moq_ready_cb | ( | imquic_endpoint * | endpoint, |
| void(* | moq_ready )(imquic_connection *conn) ) |
Configure the callback function to be notified when a MoQ connection has been successfully established. After this, the MoQ APIs can be used to start exchanging MoQ messages.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| moq_ready | Pointer to the function that will be invoked when MoQ is ready to be used |
| void imquic_set_new_moq_connection_cb | ( | imquic_endpoint * | endpoint, |
| void(* | new_moq_connection )(imquic_connection *conn, void *user_data) ) |
Configure the callback function to be notified about new QUIC connections on the configured endpoint. For a server, it will be triggered any time a client successfully connects to the server; for a client, it will be triggered when the client successfully connects to the server. Notice that this precedes the MoQ setup/handshakes, which means you'll need to wait until the callback set in imquic_set_moq_ready_cb is fired, before being able to use the MoQ API for publishing/subscribing.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| new_moq_connection | Pointer to the function that will be invoked on the new MoQ connection |
| void imquic_set_publish_accepted_cb | ( | imquic_endpoint * | endpoint, |
| void(* | publish_accepted )(imquic_connection *conn, uint64_t request_id, imquic_moq_request_parameters *parameters) ) |
Configure the callback function to be notified when a PUBLISH we previously sent was accepted.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| publish_accepted | Pointer to the function that will fire when a PUBLISH is accepted |
| void imquic_set_publish_done_cb | ( | imquic_endpoint * | endpoint, |
| void(* | publish_done )(imquic_connection *conn, uint64_t request_id, imquic_moq_pub_done_code status_code, uint64_t streams_count, const char *reason) ) |
Configure the callback function to be notified when a PUBLISH we received or a SUBSCRIBE we sent is now done.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| publish_done | Pointer to the function that will fire when a PUBLSH or SUBSCRIBE is done |
| void imquic_set_publish_error_cb | ( | imquic_endpoint * | endpoint, |
| void(* | publish_error )(imquic_connection *conn, uint64_t request_id, imquic_moq_request_error_code error_code, const char *reason, uint64_t retry_interval) ) |
Configure the callback function to be notified when a PUBLISH we previously sent was rejected with an error.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| publish_error | Pointer to the function that will fire when a PUBLISH is rejected |
| void imquic_set_publish_namespace_accepted_cb | ( | imquic_endpoint * | endpoint, |
| void(* | publish_namespace_accepted )(imquic_connection *conn, uint64_t request_id, imquic_moq_request_parameters *parameters) ) |
Configure the callback function to be notified when an PUBLISH_NAMESPACE we previously sent was accepted.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| publish_namespace_accepted | Pointer to the function that will fire when a PUBLISH_NAMESPACE is accepted |
| void imquic_set_publish_namespace_done_cb | ( | imquic_endpoint * | endpoint, |
| void(* | publish_namespace_done )(imquic_connection *conn, imquic_moq_namespace *tns) ) |
Configure the callback function to be notified when there's an incoming PUBLISH_NAMESPACE_DONE request.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| publish_namespace_done | Pointer to the function that will handle the incoming PUBLISH_NAMESPACE_DONE |
| void imquic_set_publish_namespace_error_cb | ( | imquic_endpoint * | endpoint, |
| void(* | publish_namespace_error )(imquic_connection *conn, uint64_t request_id, imquic_moq_request_error_code error_code, const char *reason, uint64_t retry_interval) ) |
Configure the callback function to be notified when an PUBLISH_NAMESPACE we previously sent was rejected with an error.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| publish_namespace_error | Pointer to the function that will fire when a PUBLISH_NAMESPACE is rejected |
| void imquic_set_request_update_accepted_cb | ( | imquic_endpoint * | endpoint, |
| void(* | request_update_accepted )(imquic_connection *conn, uint64_t request_id, imquic_moq_request_parameters *parameters) ) |
Configure the callback function to be notified when an OK is received for a REQUEST_UPDATE we previously sent.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| request_update_accepted | Pointer to the function that will fire when a REQUEST_UPDATE is acknowledged |
| void imquic_set_request_update_error_cb | ( | imquic_endpoint * | endpoint, |
| void(* | request_update_error )(imquic_connection *conn, uint64_t request_id, imquic_moq_request_error_code error_code, const char *reason, uint64_t retry_interval) ) |
Configure the callback function to be notified when a REQUEST_UPDATE we previously sent was rejected with an error.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| request_update_error | Pointer to the function that will fire when a SUBSCRIBE is rejected |
| void imquic_set_request_updated_cb | ( | imquic_endpoint * | endpoint, |
| void(* | request_updated )(imquic_connection *conn, uint64_t request_id, uint64_t sub_request_id, imquic_moq_request_parameters *parameters) ) |
Configure the callback function to be notified when an update is received for a request (e.g., a SUBSCRIBE ) we previously sent.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| request_updated | Pointer to the function that will fire when a SUBSCRIBE is done |
| void imquic_set_requests_blocked_cb | ( | imquic_endpoint * | endpoint, |
| void(* | requests_blocked )(imquic_connection *conn, uint64_t max_request_id) ) |
Configure the callback function to be notified when there's an incoming REQUESTS_BLOCKED request.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| requests_blocked | Pointer to the function that will handle the incoming REQUESTS_BLOCKED |
| void imquic_set_subscribe_accepted_cb | ( | imquic_endpoint * | endpoint, |
| void(* | subscribe_accepted )(imquic_connection *conn, uint64_t request_id, uint64_t track_alias, imquic_moq_request_parameters *parameters, GList *track_extensions) ) |
Configure the callback function to be notified when a SUBSCRIBE we previously sent was accepted.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| subscribe_accepted | Pointer to the function that will fire when a SUBSCRIBE is accepted |
| void imquic_set_subscribe_error_cb | ( | imquic_endpoint * | endpoint, |
| void(* | subscribe_error )(imquic_connection *conn, uint64_t request_id, imquic_moq_request_error_code error_code, const char *reason, uint64_t track_alias, uint64_t retry_interval) ) |
Configure the callback function to be notified when a SUBSCRIBE we previously sent was rejected with an error.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| subscribe_error | Pointer to the function that will fire when a SUBSCRIBE is rejected |
| void imquic_set_subscribe_namespace_accepted_cb | ( | imquic_endpoint * | endpoint, |
| void(* | subscribe_namespace_accepted )(imquic_connection *conn, uint64_t request_id, imquic_moq_request_parameters *parameters) ) |
Configure the callback function to be notified when an SUBSCRIBE_NAMESPACE we previously sent was accepted.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| subscribe_namespace_accepted | Pointer to the function that will fire when an SUBSCRIBE_NAMESPACE is accepted |
| void imquic_set_subscribe_namespace_error_cb | ( | imquic_endpoint * | endpoint, |
| void(* | subscribe_namespace_error )(imquic_connection *conn, uint64_t request_id, imquic_moq_request_error_code error_code, const char *reason, uint64_t retry_interval) ) |
Configure the callback function to be notified when an SUBSCRIBE_NAMESPACE we previously sent was rejected with an error.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| subscribe_namespace_error | Pointer to the function that will fire when an SUBSCRIBE_NAMESPACE is rejected |
| void imquic_set_track_status_accepted_cb | ( | imquic_endpoint * | endpoint, |
| void(* | track_status_accepted )(imquic_connection *conn, uint64_t request_id, uint64_t track_alias, imquic_moq_request_parameters *parameters) ) |
Configure the callback function to be notified when a TRACK_STATUS we previously sent was accepted.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| track_status_accepted | Pointer to the function that will fire when a TRACK_STATUS is accepted |
| void imquic_set_track_status_error_cb | ( | imquic_endpoint * | endpoint, |
| void(* | track_status_error )(imquic_connection *conn, uint64_t request_id, imquic_moq_request_error_code error_code, const char *reason, uint64_t retry_interval) ) |
Configure the callback function to be notified when a TRACK_STATUS we previously sent was rejected with an error.
| endpoint | The imquic_endpoint (imquic_server or imquic_client) to configure |
| track_status_error | Pointer to the function that will fire when a TRACK_STATUS is rejected |