From 05fe1ac394d1d4442e5dd1ccf6898ac46cf841ca Mon Sep 17 00:00:00 2001 From: torben Date: Fri, 6 Nov 2009 13:45:36 +0000 Subject: [PATCH] improve startup behaviour. retrieves the highest framecount. git-svn-id: svn+ssh://jackaudio.org/trunk/jack@3711 0c269be4-1314-0410-8aa9-9f06e86f4224 --- drivers/netjack/netjack.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/drivers/netjack/netjack.c b/drivers/netjack/netjack.c index 65c3e88..0b2b88d 100644 --- a/drivers/netjack/netjack.c +++ b/drivers/netjack/netjack.c @@ -101,7 +101,21 @@ int netjack_wait( netjack_driver_state_t *netj ) // Increment expected frame here. - netj->expected_framecnt += 1; + if( netj->expected_framecnt_valid ) { + netj->expected_framecnt += 1; + } else { + // starting up.... lets look into the packetcache, and fetch the highest packet. + packet_cache_drain_socket( global_packcache, netj->sockfd ); + if( packet_cache_get_highest_available_framecnt( global_packcache, &next_frame_avail ) ) { + netj->expected_framecnt = next_frame_avail; + netj->expected_framecnt_valid = 1; + } else { + // no packets there... start normally. + netj->expected_framecnt = 0; + netj->expected_framecnt_valid = 1; + } + + } //jack_log( "expect %d", netj->expected_framecnt ); // Now check if required packet is already in the cache.