mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-11-01 22:58:50 -04:00
avoid following NULL pointers
This commit is contained in:
parent
a898f21c87
commit
a19bab4b16
5 changed files with 25 additions and 20 deletions
|
|
@ -679,7 +679,7 @@ static int update_time(struct seq_state *state, uint64_t nsec, bool follower)
|
|||
{
|
||||
snd_seq_queue_status_t *status;
|
||||
const snd_seq_real_time_t* queue_time;
|
||||
uint64_t queue_real;
|
||||
uint64_t queue_real, position;
|
||||
double err, corr;
|
||||
uint64_t clock_elapsed, queue_elapsed;
|
||||
|
||||
|
|
@ -688,6 +688,9 @@ static int update_time(struct seq_state *state, uint64_t nsec, bool follower)
|
|||
state->rate = clock->rate;
|
||||
state->duration = clock->duration;
|
||||
state->threshold = state->duration;
|
||||
position = clock->position;
|
||||
} else {
|
||||
position = 0;
|
||||
}
|
||||
|
||||
/* take queue time */
|
||||
|
|
@ -698,12 +701,12 @@ static int update_time(struct seq_state *state, uint64_t nsec, bool follower)
|
|||
|
||||
if (state->queue_base == 0) {
|
||||
state->queue_base = nsec - queue_real;
|
||||
state->clock_base = state->position->clock.position;
|
||||
state->clock_base = position;
|
||||
}
|
||||
|
||||
corr = 1.0 - (state->z2 + state->z3);
|
||||
|
||||
clock_elapsed = state->position->clock.position - state->clock_base;
|
||||
clock_elapsed = position - state->clock_base;
|
||||
state->queue_time = nsec - state->queue_base;
|
||||
queue_elapsed = NSEC_TO_CLOCK(state->clock, state->queue_time) / corr;
|
||||
|
||||
|
|
@ -754,7 +757,7 @@ int spa_alsa_seq_process(struct seq_state *state)
|
|||
|
||||
res = process_recycle(state);
|
||||
|
||||
if (state->following) {
|
||||
if (state->following && state->position) {
|
||||
update_time(state, state->position->clock.nsec, true);
|
||||
res |= process_read(state);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue