Browse Source

report xruns on slave

tags/v1.9.4
Torben Hohn 16 years ago
parent
commit
e21b452a46
3 changed files with 11 additions and 5 deletions
  1. +2
    -1
      common/JackNetOneDriver.cpp
  2. +8
    -3
      common/netjack.c
  3. +1
    -1
      common/netjack.h

+ 2
- 1
common/JackNetOneDriver.cpp View File

@@ -288,7 +288,8 @@ namespace Jack
//driver processes--------------------------------------------------------------------
int JackNetOneDriver::Read()
{
netjack_wait( &netj );
if( netjack_wait( &netj ) )
NotifyXRun(fBeginDateUst, fDelayedUsecs);

if( (netj.num_lost_packets * netj.period_size / netj.sample_rate) > 10 )
throw JackNetException();


+ 8
- 3
common/netjack.c View File

@@ -83,7 +83,7 @@ net_driver_sync_cb(jack_transport_state_t state, jack_position_t *pos, void *dat
return retval;
}

void netjack_wait( netjack_driver_state_t *netj )
int netjack_wait( netjack_driver_state_t *netj )
{
int we_have_the_expected_frame = 0;
jack_nframes_t next_frame_avail;
@@ -132,8 +132,8 @@ void netjack_wait( netjack_driver_state_t *netj )
// it works... so...
netj->running_free = 0;

if( !we_have_the_expected_frame )
jack_error( "netxrun... %d", netj->expected_framecnt );
//if( !we_have_the_expected_frame )
// jack_error( "netxrun... %d", netj->expected_framecnt );

if( we_have_the_expected_frame ) {
netj->time_to_deadline = netj->next_deadline - jack_get_time() - netj->period_usecs;
@@ -279,6 +279,11 @@ void netjack_wait( netjack_driver_state_t *netj )
else {
netj->num_lost_packets = 0;
}

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

return 0;
}

void netjack_send_silence( netjack_driver_state_t *netj, int syncstate )


+ 1
- 1
common/netjack.h View File

@@ -108,7 +108,7 @@ struct _netjack_driver_state {
unsigned int resample_factor_up;
};

void netjack_wait( netjack_driver_state_t *netj );
int netjack_wait( netjack_driver_state_t *netj );
void netjack_send_silence( netjack_driver_state_t *netj, int syncstate );
void netjack_read( netjack_driver_state_t *netj, jack_nframes_t nframes ) ;
void netjack_write( netjack_driver_state_t *netj, jack_nframes_t nframes, int syncstate );


Loading…
Cancel
Save