FreeCalypso > hg > themwi-rtp-lib
view include/endp.h @ 20:695fdb670d30
implement twrtp_endp_register_fds()
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 07 Jul 2024 04:06:16 +0000 |
parents | b8cb5146e5b4 |
children | 2032201bd034 |
line wrap: on
line source
/* * twrtp_endp is the big abstraction provided by libtwrtp: a complete * RTP endpoint with RTP & RTCP sockets, sending and receiving both types * of packets, and incorporating twjit. */ #pragma once #include <stdint.h> #include <stdbool.h> #include <osmocom/core/osmo_io.h> #include <osmocom/core/socket.h> #include <themwi/rtp/twjit.h> struct twrtp_endp_tx { uint32_t ssrc; uint32_t ts; uint16_t seq; bool started; bool restart; }; struct twrtp_endp_stats { uint32_t rx_rtp_pkt; uint32_t rx_rtp_badsrc; uint32_t rx_rtcp_pkt; uint32_t rx_rtcp_badsrc; uint32_t tx_rtp_pkt; uint32_t tx_rtp_bytes; uint32_t tx_rtcp_pkt; }; struct twrtp_endp { /* the root of the matter: the two sockets */ int rtp_fd; int rtcp_fd; struct osmo_io_fd *iofd_rtp; struct osmo_io_fd *iofd_rtcp; struct osmo_sockaddr rtp_remote; struct osmo_sockaddr rtcp_remote; /* Rx and Tx state */ struct twrtp_jibuf_inst *twjit; /* RTCP Rx structure to be inserted here */ struct twrtp_endp_tx tx; /* always have to have stats */ struct twrtp_endp_stats stats; /* bool flags at the end for structure packing optimization */ bool register_done; bool remote_set; bool rx_enable; }; /* public API functions */ struct twrtp_endp *twrtp_endp_create(void *ctx, struct twrtp_jibuf_config *config); void twrtp_endp_destroy(struct twrtp_endp *endp); int twrtp_endp_register_fds(struct twrtp_endp *endp);