link: use DISABLED flag on port of inactive links

Don't unlink the ports of an inactive link because then it might be
possible that the scheduler can't recycle a buffer, instead use
a port flag to mark the ports disabled and change to scheduler to
skip those ports.
This commit is contained in:
Wim Taymans 2018-01-18 15:39:03 +01:00
parent a8fa4383a1
commit 0eb44b340a
6 changed files with 16 additions and 9 deletions

View file

@ -413,7 +413,6 @@ pull_frames(struct state *state,
if (total_frames == 0 && do_pull) {
total_frames = SPA_MIN(frames, state->threshold);
spa_log_warn(state->log, "write %zd frames of silence", total_frames);
snd_pcm_areas_silence(my_areas, offset, state->channels, total_frames, state->format);
state->underrun += total_frames;
underrun = true;

View file

@ -305,7 +305,7 @@ static inline void try_pull(struct impl *this, uint32_t frames, bool do_pull)
struct spa_io_buffers *io = this->io;
if (spa_list_is_empty(&this->ready) && do_pull) {
spa_log_trace(this->log, "alsa-util %p: %d", this, io->status);
spa_log_trace(this->log, "a2dp-sink %p: %d", this, io->status);
io->status = SPA_STATUS_NEED_BUFFER;
if (this->range) {
this->range->offset = this->sample_count * this->frame_size;