Browse Source

fixed long-lived incorrect advance of transport frame before first rolling process cycle

git-svn-id: svn+ssh://jackaudio.org/trunk/jack@814 0c269be4-1314-0410-8aa9-9f06e86f4224
tags/0.109.0
pbd 21 years ago
parent
commit
ca4495caa1
2 changed files with 6 additions and 2 deletions
  1. +1
    -1
      configure.ac
  2. +5
    -1
      jackd/transengine.c

+ 1
- 1
configure.ac View File

@@ -15,7 +15,7 @@ dnl changes are made
dnl ---
JACK_MAJOR_VERSION=0
JACK_MINOR_VERSION=99
JACK_MICRO_VERSION=17
JACK_MICRO_VERSION=18

dnl ---
dnl HOWTO: updating the jack protocol version


+ 5
- 1
jackd/transengine.c View File

@@ -395,6 +395,7 @@ jack_transport_cycle_end (jack_engine_t *engine)
{
jack_control_t *ectl = engine->control;
transport_command_t cmd; /* latest transport command */
jack_transport_state_t old_state;

/* Promote pending_time to current_time. Maintain the usecs,
* frame_rate and frame values, clients may not set them. */
@@ -404,6 +405,8 @@ jack_transport_cycle_end (jack_engine_t *engine)
ectl->current_time = ectl->pending_time;
ectl->new_pos = ectl->pending_pos;

old_state = ectl->transport_state;

/* check sync results from previous cycle */
if (ectl->transport_state == JackTransportStarting) {
if ((ectl->sync_remain == 0) ||
@@ -425,6 +428,7 @@ jack_transport_cycle_end (jack_engine_t *engine)
cmd = TransportCommandNone;

/* state transition switch */

switch (ectl->transport_state) {

case JackTransportStopped:
@@ -476,7 +480,7 @@ jack_transport_cycle_end (jack_engine_t *engine)
}

/* update timebase, if needed */
if (ectl->transport_state == JackTransportRolling) {
if (old_state == JackTransportRolling) {
ectl->pending_time.frame =
ectl->current_time.frame + ectl->buffer_size;
}


Loading…
Cancel
Save