splitter: always fill up all dst pointers

This commit is contained in:
Wim Taymans 2019-08-06 17:03:53 +02:00
parent b3f450e859
commit 003076ffc7

View file

@ -879,6 +879,7 @@ static int impl_node_process(void *object)
if ((dbuf = dequeue_buffer(this, outport)) == NULL) { if ((dbuf = dequeue_buffer(this, outport)) == NULL) {
outio->status = -EPIPE; outio->status = -EPIPE;
empty: empty:
spa_log_trace_fp(this->log, NAME" %p: %d skip output", this, i);
dst_datas[n_dst_datas++] = SPA_PTR_ALIGN(this->empty, 16, void); dst_datas[n_dst_datas++] = SPA_PTR_ALIGN(this->empty, 16, void);
continue; continue;
} }
@ -896,10 +897,15 @@ static int impl_node_process(void *object)
dd[j].chunk->offset = 0; dd[j].chunk->offset = 0;
dd[j].chunk->size = n_samples * outport->stride; dd[j].chunk->size = n_samples * outport->stride;
} }
outio->status = SPA_STATUS_HAVE_BUFFER; outio->status = SPA_STATUS_HAVE_BUFFER;
outio->buffer_id = dbuf->id; outio->buffer_id = dbuf->id;
res |= SPA_STATUS_HAVE_BUFFER; res |= SPA_STATUS_HAVE_BUFFER;
} }
while (n_dst_datas < this->port_count) {
spa_log_trace_fp(this->log, NAME" %p: %d fill output", this, n_dst_datas);
dst_datas[n_dst_datas++] = SPA_PTR_ALIGN(this->empty, 16, void);
}
spa_log_trace_fp(this->log, NAME " %p: n_src:%d n_dst:%d n_samples:%d max:%d stride:%d p:%d", this, spa_log_trace_fp(this->log, NAME " %p: n_src:%d n_dst:%d n_samples:%d max:%d stride:%d p:%d", this,
n_src_datas, n_dst_datas, n_samples, maxsize, inport->stride, n_src_datas, n_dst_datas, n_samples, maxsize, inport->stride,