pipewiresrc: use more accurate timeout

This commit is contained in:
Wim Taymans 2020-07-14 17:25:13 +02:00
parent a6d221f18a
commit 6dcb19bbdf

View file

@ -917,7 +917,10 @@ gst_pipewire_src_create (GstPushSrc * psrc, GstBuffer ** buffer)
} }
timeout = FALSE; timeout = FALSE;
if (pwsrc->keepalive_time > 0) { if (pwsrc->keepalive_time > 0) {
if (pw_thread_loop_timed_wait (pwsrc->core->loop, (pwsrc->keepalive_time + 999) / 1000) == ETIMEDOUT) struct timespec abstime;
pw_thread_loop_get_time(pwsrc->core->loop, &abstime,
pwsrc->keepalive_time * SPA_NSEC_PER_MSEC);
if (pw_thread_loop_timed_wait_full (pwsrc->core->loop, &abstime) == -ETIMEDOUT)
timeout = TRUE; timeout = TRUE;
} else { } else {
pw_thread_loop_wait (pwsrc->core->loop); pw_thread_loop_wait (pwsrc->core->loop);