struct userdata *u = PA_SINK(o)->userdata;
-#ifdef ENABLE_PREPROCESSOR
switch (code) {
case PA_SINK_MESSAGE_GET_LATENCY: {
int64_t r = 0;
return 0;
}
+#ifdef ENABLE_PREPROCESSOR
case PA_SINK_MESSAGE_PREPROCESSOR_REBUILD_RTPOLL: {
struct arguments {
pa_msgobject *o;
break;
}
- }
#endif
+ }
return pa_sink_process_msg(o, code, data, offset, chunk);
}
#define DEFAULT_FRAGMENT_MSEC 10
#define DEFAULT_FRAGMENTS 4
+#define DEFAULT_HAL_READ_TIMEOUT 150
struct userdata {
pa_core *core;
struct userdata *u = PA_SOURCE(o)->userdata;
-#ifdef ENABLE_PREPROCESSOR
switch (code) {
case PA_SOURCE_MESSAGE_GET_LATENCY: {
uint64_t r = 0;
return 0;
}
+#ifdef ENABLE_PREPROCESSOR
case PA_SOURCE_MESSAGE_ADD_OUTPUT: {
pa_source_output *output = PA_SOURCE_OUTPUT(data);
pa_assert(output);
break;
default:
break;
- }
#endif
+ }
return pa_source_process_msg(o, code, data, offset, chunk);
}
uint32_t avail = 0;
pa_memchunk chunk;
- pa_usec_t elapsed;
+ pa_usec_t elapsed, now;
pa_assert(u);
p = pa_memblock_acquire(chunk.memblock);
- elapsed = pa_rtclock_now();
+ now = pa_rtclock_now();
if (pa_hal_interface_pcm_read(u->hal_interface, u->pcm_handle, p, (uint32_t)frames_to_read)) {
pa_log_error("failed to read pcm. p(%p), size(%zu)", p, frames_to_read);
return -1;
}
- if (pa_rtclock_now() - elapsed > 100 * PA_USEC_PER_MSEC)
- pa_log_error("HAL read function takes a long time : %" PRId64 "", elapsed);
+ elapsed = pa_rtclock_now() - now;
+
+ if (elapsed > DEFAULT_HAL_READ_TIMEOUT * PA_USEC_PER_MSEC)
+ pa_log_info("HAL read function takes more than %d msec : %" PRId64 "", DEFAULT_HAL_READ_TIMEOUT, elapsed);
pa_memblock_release(chunk.memblock);