osmo_ortp: introduce POLL mode for rtp sockets
This bypasses the osmo_fd integration and will allow a RTP socket to be
in pure polling mode, triggered by the consumer of the payload data.
diff --git a/include/osmocom/trau/osmo_ortp.h b/include/osmocom/trau/osmo_ortp.h
index 278423b..fc7bca2 100644
--- a/include/osmocom/trau/osmo_ortp.h
+++ b/include/osmocom/trau/osmo_ortp.h
@@ -15,6 +15,8 @@
#define RTP_PT_GSM_EFR 97
#define RTP_PT_AMR 98
+#define OSMO_RTP_F_POLL 0x0001
+
struct osmo_rtp_socket {
/*! \biref list header for global list of sockets */
struct llist_head list;
@@ -36,17 +38,20 @@
/* Tx related */
uint32_t tx_timestamp;
+ unsigned int flags;
+
void *priv;
};
void osmo_rtp_init(void *ctx);
-struct osmo_rtp_socket *osmo_rtp_socket_create(void *talloc_ctx);
+struct osmo_rtp_socket *osmo_rtp_socket_create(void *talloc_ctx, unsigned int flags);
int osmo_rtp_socket_bind(struct osmo_rtp_socket *rs, const char *ip, int port);
int osmo_rtp_socket_connect(struct osmo_rtp_socket *rs, const char *ip, uint16_t port);
int osmo_rtp_socket_set_pt(struct osmo_rtp_socket *rs, int payload_type);
int osmo_rtp_socket_free(struct osmo_rtp_socket *rs);
int osmo_rtp_send_frame(struct osmo_rtp_socket *rs, const uint8_t *payload,
unsigned int payload_len, unsigned int duration);
+int osmo_rtp_socket_poll(struct osmo_rtp_socket *rs);
int osmo_rtp_get_bound_ip_port(struct osmo_rtp_socket *rs,
uint32_t *ip, int *port);