handle NULL latency param

Fixes #3504
This commit is contained in:
Wim Taymans 2023-09-13 11:13:48 +02:00
parent 56786aedc4
commit b094057b0b
12 changed files with 20 additions and 13 deletions

View file

@ -697,7 +697,7 @@ static void stream_param_changed(void *d, uint32_t id, const struct spa_pod *par
update_delay(s->impl);
break;
case SPA_PARAM_Latency:
if (!param) {
if (param == NULL) {
s->have_latency = false;
} else if (spa_latency_parse(param, &latency) == 0 &&
latency.direction == get_combine_direction(s->impl)) {

View file

@ -604,7 +604,7 @@ static void input_param_latency_changed(struct impl *impl, const struct spa_pod
struct spa_pod_builder b;
const struct spa_pod *params[1];
if (spa_latency_parse(param, &latency) < 0)
if (param == NULL || spa_latency_parse(param, &latency) < 0)
return;
spa_pod_builder_init(&b, buffer, sizeof(buffer));
@ -767,7 +767,7 @@ static void output_param_latency_changed(struct impl *impl, const struct spa_pod
struct spa_pod_builder b;
const struct spa_pod *params[1];
if (spa_latency_parse(param, &latency) < 0)
if (param == NULL || spa_latency_parse(param, &latency) < 0)
return;
spa_pod_builder_init(&b, buffer, sizeof(buffer));

View file

@ -227,7 +227,7 @@ static void param_latency_changed(struct impl *impl, const struct spa_pod *param
struct spa_pod_builder b;
const struct spa_pod *params[1];
if (spa_latency_parse(param, &latency) < 0)
if (param == NULL || spa_latency_parse(param, &latency) < 0)
return;
*info = latency;

View file

@ -417,7 +417,7 @@ static void param_latency_changed(struct stream *s, const struct spa_pod *param,
bool update = false;
enum spa_direction direction = port->direction;
if (spa_latency_parse(param, &latency) < 0)
if (param == NULL || spa_latency_parse(param, &latency) < 0)
return;
if (spa_latency_info_compare(&port->latency[direction], &latency)) {

View file

@ -410,7 +410,7 @@ static void param_latency_changed(struct stream *s, const struct spa_pod *param,
bool update = false;
enum spa_direction direction = port->direction;
if (spa_latency_parse(param, &latency) < 0)
if (param == NULL || spa_latency_parse(param, &latency) < 0)
return;
if (spa_latency_info_compare(&port->latency[direction], &latency)) {

View file

@ -371,7 +371,7 @@ static void param_latency_changed(struct stream *s, const struct spa_pod *param,
bool update = false;
enum spa_direction direction = port->direction;
if (spa_latency_parse(param, &latency) < 0)
if (param == NULL || spa_latency_parse(param, &latency) < 0)
return;
if (spa_latency_info_compare(&port->latency[direction], &latency)) {

View file

@ -493,7 +493,7 @@ static void param_latency_changed(struct stream *s, const struct spa_pod *param,
bool update = false;
enum spa_direction direction = port->direction;
if (spa_latency_parse(param, &latency) < 0)
if (param == NULL || spa_latency_parse(param, &latency) < 0)
return;
if (spa_latency_info_compare(&port->latency[direction], &latency)) {