table of contents
LC_CHANNEL_CODING_SET(3) | Librecast Programmer's Manual | LC_CHANNEL_CODING_SET(3) |
NAME¶
lc_ctx_coding_set, lc_channel_coding_set - set Librecast channel encoding options
LIBRARY¶
Librecast library (liblibrecast, -llibrecast)
SYNOPSIS¶
#include <librecast/net.h>
int lc_ctx_coding_set(lc_ctx_t *ctx, int coding); int lc_channel_coding_set(lc_channel_t *chan, int coding);
Compile and link with -llibrecast.
DESCRIPTION¶
lc_ctx_coding_set() sets the default encoding options for sockets and channels subsequently created using context ctx.
lc_channel_coding_set() sets encoding options for a Librecast channel, chan, overriding any defaults inherited from the parent Librecast context.
chan is a pointer to a Librecast channel.
The coding argument can include the bitwise OR of any of the following coding options:
- LC_CODE_SYMM
- Enable symmetric key encryption. Requires that a symmetric key has been assigned to the Channel with lc_channel_set_sym_key(3)
- LC_CODE_FEC_RQ
- Enables RaptorQ Forwards Error Correction (FEC). Calling lc_channel_send(3) as normal encodes the data to be sent. Subsequent calls to lc_channel_send() with buf == NULL will send the next symbol/packet. To receive, call lc_channel_coding_set (chan, LC_CODE_FEC_RQ) on the receiver and then lc_channel_recv(). Encodings are per channel, not per socket, so it is necessary to use lc_channel_recv(), not lc_socket_recv(3).
- LC_CODE_FEC_RAND
- Requires LC_CODE_FEC_RQ. Use random symbols instead of sequential ESIs.
RETURN VALUE¶
Returns the current value of the channel coding options.
ERRORS¶
None.
SEE ALSO¶
lc_channel_new(3), lc_channel_close(3), lc_channel_send(3), lc_channel_set_sym_key(3), lc_ctx_new(3), lc_socket_setopt(3), lc_socket_recv(3)
2023-07-31 | LIBRECAST |