bq->in_prebuf = FALSE;
}
+void pa_memblockq_prebuf_disable_and_adjust(pa_memblockq *bq) {
+ size_t len;
+
+ pa_assert(bq);
+
+ bq->in_prebuf = FALSE;
+
+ if (bq->prebuf > 0 && (len = pa_memblockq_get_length(bq)) > 0) {
+ pa_log("adjusting prebuf length to %u", len);
+ bq->prebuf = len;
+ }
+}
+
void pa_memblockq_prebuf_force(pa_memblockq *bq) {
pa_assert(bq);
/* Ignore prebuf for now */
void pa_memblockq_prebuf_disable(pa_memblockq *bq);
+/* Ignore prebuf for now and adjust prebuf size to actual size */
+void pa_memblockq_prebuf_disable_and_adjust(pa_memblockq *bq);
+
/* Force prebuf */
void pa_memblockq_prebuf_force(pa_memblockq *bq);
break;
case SINK_INPUT_MESSAGE_DRAIN:
+ if (i->thread_info.state == PA_SINK_INPUT_CORKED)
+ func = pa_memblockq_prebuf_disable_and_adjust;
+ else
+ func = pa_memblockq_prebuf_disable;
+ break;
+
case SINK_INPUT_MESSAGE_TRIGGER:
- func = pa_memblockq_prebuf_disable;
+ func = pa_memblockq_prebuf_disable;
break;
default: