Browse Source

[netjack] improved xrun reporting

git-svn-id: svn+ssh://jackaudio.org/trunk/jack@3713 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/0.117.0
torben 16 years ago
parent
commit
6c650ca090
2 changed files with 18 additions and 10 deletions
  1. +5
    -2
      drivers/netjack/net_driver.c
  2. +13
    -8
      drivers/netjack/netjack.c

+ 5
- 2
drivers/netjack/net_driver.c View File

@@ -58,9 +58,12 @@ static jack_nframes_t
net_driver_wait (net_driver_t *driver, int extra_fd, int *status, float *delayed_usecs) net_driver_wait (net_driver_t *driver, int extra_fd, int *status, float *delayed_usecs)
{ {
netjack_driver_state_t *netj = &( driver->netj ); netjack_driver_state_t *netj = &( driver->netj );
int delay;


if( netjack_wait( netj ) ) {
driver->engine->delay( driver->engine, 0 );
delay = netjack_wait( netj );
if( delay ) {
driver->engine->delay( driver->engine, (float)delay );
jack_error( "netxruns amount: %dms", delay/1000 );
} }




+ 13
- 8
drivers/netjack/netjack.c View File

@@ -274,8 +274,9 @@ int netjack_wait( netjack_driver_state_t *netj )
netj->running_free = 0; netj->running_free = 0;
jack_info( "resync after freerun... %d\n", netj->expected_framecnt ); jack_info( "resync after freerun... %d\n", netj->expected_framecnt );
} else { } else {
// give up. lets run freely.
// XXX: hmm...
if( netj->num_lost_packets == 101 ) {
jack_info( "master seems gone... entering freerun mode\n", netj->expected_framecnt );
}


netj->running_free = 1; netj->running_free = 1;


@@ -292,16 +293,20 @@ int netjack_wait( netjack_driver_state_t *netj )
} }
} }


if( !netj->packet_data_valid )
int retval = 0;

if( !netj->packet_data_valid ) {
netj->num_lost_packets += 1; netj->num_lost_packets += 1;
else {
if( netj->num_lost_packets == 1 )
retval = netj->period_usecs;
} else {
if( (netj->num_lost_packets>1) && !netj->running_free )
retval = (netj->num_lost_packets-1) * netj->period_usecs;

netj->num_lost_packets = 0; netj->num_lost_packets = 0;
} }


if( !netj->packet_data_valid && !netj->running_free )
return 1;

return 0;
return retval;
} }


void netjack_send_silence( netjack_driver_state_t *netj, int syncstate ) void netjack_send_silence( netjack_driver_state_t *netj, int syncstate )


Loading…
Cancel
Save