Browse Source

[0.99.41] delayed_usecs statistics

git-svn-id: svn+ssh://jackaudio.org/trunk/jack@856 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/0.109.0
joq 21 years ago
parent
commit
14ee88b9f7
5 changed files with 43 additions and 0 deletions
  1. +1
    -0
      jack/internal.h
  2. +15
    -0
      jack/jack.h
  3. +8
    -0
      jackd/engine.c
  4. +7
    -0
      libjack/ChangeLog
  5. +12
    -0
      libjack/client.c

+ 1
- 0
jack/internal.h View File

@@ -139,6 +139,7 @@ typedef struct {
int32_t has_capabilities;
float cpu_load;
float xrun_delayed_usecs;
float max_delayed_usecs;
uint32_t port_max;
int32_t engine_ok;
jack_port_type_id_t n_port_types;


+ 15
- 0
jack/jack.h View File

@@ -755,6 +755,21 @@ jack_nframes_t jack_last_frame_time (const jack_client_t *client);
*/
float jack_cpu_load (jack_client_t *client);

/**
* @return the maximum delay reported by the backend since
* startup or reset. When compared to the period size in usecs, this
* can be used to estimate the ideal period size for a given setup.
*/
float jack_get_max_delayed_usecs (jack_client_t *client);

/**
* Reset the maximum delay counter. This would be useful
* to estimate the effect that a change to the configuration of a running
* system (e.g. toggling kernel preemption) has on the delay
* experienced by JACK, without having to restart the JACK engine.
*/
void jack_reset_max_delayed_usecs (jack_client_t *client);
/**
* @return the pthread ID of the thread running the JACK client side
* code.


+ 8
- 0
jackd/engine.c View File

@@ -1685,6 +1685,7 @@ jack_engine_new (int realtime, int rtpriority, int do_mlock, int do_unlock,
engine->control->do_munlock = do_unlock;
engine->control->cpu_load = 0;
engine->control->xrun_delayed_usecs = 0;
engine->control->max_delayed_usecs = 0;

engine->control->frame_timer.frames = 0;
engine->control->frame_timer.reset_pending = 0;
@@ -1772,6 +1773,9 @@ jack_engine_delay (jack_engine_t *engine, float delayed_usecs)

engine->control->xrun_delayed_usecs = delayed_usecs;

if (delayed_usecs > engine->control->max_delayed_usecs)
engine->control->max_delayed_usecs = delayed_usecs;

event.type = XRun;

jack_lock_graph (engine);
@@ -2004,6 +2008,8 @@ jack_run_one_cycle (jack_engine_t *engine, jack_nframes_t nframes,
}

jack_engine_post_process (engine);
if (delayed_usecs > engine->control->max_delayed_usecs)
engine->control->max_delayed_usecs = delayed_usecs;
ret = 0;

unlock:
@@ -2150,6 +2156,8 @@ jack_engine_delete (jack_engine_t *engine)

VERBOSE (engine, "last xrun delay: %.3f usecs\n",
engine->control->xrun_delayed_usecs);
VERBOSE (engine, "max delay reported by backend: %.3f usecs\n",
engine->control->max_delayed_usecs);

/* free engine control shm segment */
engine->control = NULL;


+ 7
- 0
libjack/ChangeLog View File

@@ -1,3 +1,10 @@
2004-12-27 Jack O'Quin <joq@io.com>

* new API functions jack_get_max_delayed_usecs() and
jack_reset_max_delayed_usecs()

* add US-X2Y USB device support to ALSA backend

2004-11-28 Jack O'Quin <joq@io.com>

* removed deprecated function jack_set_server_dir().


+ 12
- 0
libjack/client.c View File

@@ -1994,6 +1994,18 @@ jack_get_xrun_delayed_usecs (jack_client_t *client)
return client->engine->xrun_delayed_usecs;
}

float
jack_get_max_delayed_usecs (jack_client_t *client)
{
return client->engine->max_delayed_usecs;
}

void
jack_reset_max_delayed_usecs (jack_client_t *client)
{
client->engine->max_delayed_usecs = 0.0f;
}

pthread_t
jack_client_thread_id (jack_client_t *client)
{


Loading…
Cancel
Save