summaryrefslogtreecommitdiff
path: root/drivers/netjack/netjack_packet.h
diff options
context:
space:
mode:
authorpaul <paul@0c269be4-1314-0410-8aa9-9f06e86f4224>2008-11-28 07:31:16 +0000
committerpaul <paul@0c269be4-1314-0410-8aa9-9f06e86f4224>2008-11-28 07:31:16 +0000
commitde8dba1ff67c02e0de4bc5bb4f612c95a425ccf0 (patch)
tree28cc7294f66212a046863fd45d6201afe4fa4af5 /drivers/netjack/netjack_packet.h
parent0135995afdd4495ba1927287b4e0fedec0594439 (diff)
downloadjack1-de8dba1ff67c02e0de4bc5bb4f612c95a425ccf0.tar.gz
netjack changes from torben (packet loss handling leads to "dummy" backend-like behaviour; jitter buffer), along with smaller mods to alsa_{in,out}
git-svn-id: svn+ssh://jackaudio.org/trunk/jack@3127 0c269be4-1314-0410-8aa9-9f06e86f4224
Diffstat (limited to 'drivers/netjack/netjack_packet.h')
-rw-r--r--drivers/netjack/netjack_packet.h24
1 files changed, 20 insertions, 4 deletions
diff --git a/drivers/netjack/netjack_packet.h b/drivers/netjack/netjack_packet.h
index c9ef00b..e854b1a 100644
--- a/drivers/netjack/netjack_packet.h
+++ b/drivers/netjack/netjack_packet.h
@@ -90,11 +90,13 @@ struct _packet_cache
{
int size;
cache_packet *packets;
+ int mtu;
};
extern packet_cache *global_packcache;
// fragment cache function prototypes
+// XXX: Some of these are private.
packet_cache *packet_cache_new(int num_packets, int pkt_size, int mtu);
void packet_cache_free(packet_cache *pkt_cache);
@@ -105,13 +107,18 @@ cache_packet *packet_cache_get_free_packet(packet_cache *pkt_cache);
void cache_packet_reset(cache_packet *pack);
void cache_packet_set_framecnt(cache_packet *pack, jack_nframes_t framecnt);
void cache_packet_add_fragment(cache_packet *pack, char *packet_buf, int rcv_len);
-int cache_packet_is_complete(cache_packet *pack);
+int cache_packet_is_complete(cache_packet *pack);
+void packet_cache_drain_socket( packet_cache *pcache, int sockfd );
+int packet_cache_retreive_packet( packet_cache *pcache, jack_nframes_t framecnt, char *packet_buf, int pkt_size );
+int packet_cache_get_next_available_framecnt( packet_cache *pcache, jack_nframes_t expected_framecnt, jack_nframes_t *framecnt );
+int packet_cache_find_latency( packet_cache *pcache, jack_nframes_t expected_framecnt, jack_nframes_t *framecnt );
// Function Prototypes
-int netjack_poll(int sockfd, int timeout);
+
+int netjack_poll_deadline (int sockfd, jack_time_t deadline);
+
void netjack_sendto(int sockfd, char *packet_buf, int pkt_size, int flags, struct sockaddr *addr, int addr_size, int mtu);
-int netjack_recvfrom(int sockfd, char *packet_buf, int pkt_size, int flags, struct sockaddr *addr, socklen_t *addr_size, int mtu);
-int netjack_recv(int sockfd, char *packet_buf, int pkt_size, int flags, int mtu);
+
int get_sample_size(int bitdepth);
void packet_header_hton(jacknet_packet_header *pkthdr);
@@ -122,5 +129,14 @@ void render_payload_to_jack_ports(int bitdepth, void *packet_payload, jack_nfram
void render_jack_ports_to_payload(int bitdepth, JSList *playback_ports, JSList *playback_srcs, jack_nframes_t nframes, void *packet_payload, jack_nframes_t net_period_up);
+
+// XXX: This is sort of deprecated:
+// This one waits forever. an is not using ppoll
+int netjack_poll(int sockfd, int timeout);
+
+// TODO: these are deprecated.
+int netjack_recvfrom(int sockfd, char *packet_buf, int pkt_size, int flags, struct sockaddr *addr, socklen_t *addr_size, int mtu);
+int netjack_recv(int sockfd, char *packet_buf, int pkt_size, int flags, int mtu);
+
#endif