adapter: fix Start of adapter

Commit cbbf37c3b8 changed the logic of the
Start command. Before this commit, when there was no converter, the
follower would always get the Start command. After the commit, the
follower would only get Start when previously Paused.

This however breaks when we set a format or buffers on the follower
without a converter because those actions might change the state of the
follower to Paused implicitly.

We should simply remove the started check here and always call Start on
the converter and follower, the implementations themselves will keep track
if anything needs to be done.

Fixes #4911
This commit is contained in:
Wim Taymans 2025-09-24 12:36:13 +02:00
parent 2e2f7c9f79
commit f1e1f720bf
2 changed files with 0 additions and 4 deletions

View file

@ -1071,8 +1071,6 @@ static int impl_node_send_command(void *object, const struct spa_command *comman
switch (SPA_NODE_COMMAND_ID(command)) {
case SPA_NODE_COMMAND_Start:
spa_log_debug(this->log, "%p: starting %d", this, this->started);
if (this->started)
return 0;
if ((res = negotiate_format(this)) < 0)
return res;
this->ready = true;

View file

@ -1094,8 +1094,6 @@ static int impl_node_send_command(void *object, const struct spa_command *comman
switch (SPA_NODE_COMMAND_ID(command)) {
case SPA_NODE_COMMAND_Start:
spa_log_debug(this->log, "%p: starting %d", this, this->started);
if (this->started)
return 0;
if ((res = negotiate_format(this)) < 0)
return res;
this->ready = true;