Some preprocessors handle a fixed size memblocks. So, if it doesn't have
enough size inside to apply audio-effects, it should wait for more blocks.
If preprocess returns PROCESSOR_ERR_BUFFERING, the I/O thread would do nothing.
And, preprocessor would wait for the next blocks.
[Version] 15.0-20
[Issue Type] Update
Change-Id: I799c083f23cc2add4e57f5ba0f422c6b1cf9b093
Signed-off-by: Jaechul Lee <jcsing.lee@samsung.com>
Name: pulseaudio
Summary: Improved Linux sound server
Version: 15.0
-Release: 19
+Release: 20
Group: Multimedia/Audio
License: LGPL-2.1
URL: http://pulseaudio.org
if (!o->thread_info.resampler) {
#ifdef TIZEN_AEC
- if (o->preprocess && !o->preprocess(o, &qchunk, &ochunk))
- o->push(o, &ochunk);
- else
+ if (o->preprocess) {
+ int ret = o->preprocess(o, &qchunk, &ochunk);
+
+ /* in case of -2(ERR_BUFFERING), pushing a memblock should be skipped.
+ * Because the preprocess needs more blocks to apply audio-effects */
+ if (ret == 0)
+ o->push(o, &ochunk);
+ else if (ret != -2)
+ o->push(o, &qchunk);
+
+ } else
o->push(o, &qchunk);
#else
o->push(o, &qchunk);
if (rchunk.length > 0) {
#ifdef TIZEN_AEC
- if (o->preprocess && !o->preprocess(o, &rchunk, &ochunk))
- o->push(o, &ochunk);
- else
+ if (o->preprocess) {
+ int ret = o->preprocess(o, &rchunk, &ochunk);
+
+ if (ret == 0)
+ o->push(o, &ochunk);
+ else if (ret != -2)
+ o->push(o, &rchunk);
+
+ } else
o->push(o, &rchunk);
#else
o->push(o, &rchunk);