The only reason the wait time in timer threads is capped at 100 ms is to
catch the daemon's shutdown. Since these threads already use a
condition variable to be woken up, we can use the same condition to wake
up the threads during a shutdown, allowing for a much longer (possibly
unlimited) sleep time in timer threads.
Change-Id: I3b5f280a4d502176a731e8b52b1b731022c8db4f
When a new timer object is scheduled to run in the future, we only need
to wake up one thread to notify about the new object as only one thread
is needed to handle it. The other threads can remain in the previous
sleep state.
Change-Id: I92ccec61a6c5a4a3cea5c5428c85f83707cf4d64
GLib 2.68 deprecates g_memdup() in favour of g_memdup2() as the former
was using a guint second argument which could lead to integer overflows
(gsize should be used instead).
Change-Id: Iaa3e3b1ecaab00d1ac887c915397b15b7204dd11
This makes sure all objects are cleaned up during shutdown even if the
respective timer hasn't run yet.
Change-Id: I197b930f1b6e407819cc5a8c4ebd92fcef21b2cd
Some codec handlers hold references to objects held within the
statistics hash table, therefore we must free the statistics after all
codec handlers have been released.
Change-Id: I3832dbeeaaf21d4a82be2dc2c842718415fd46f7
Recent ffmpeg versions have removed AVPacket from the public ABI,
therefore deprecating av_init_packet on statically allocated objects.
The replacement is av_packet_alloc()/av_packet_free().
Change-Id: I5f93fbd19e43413c3328e143cc9147fbdf12d910
The glib macro for g_atomic_pointer_get() uses typeof() with an
intermediate variable, resulting in a stray compiler warning if the
argument uses `const` as the intermediate variable also ends up being
const. Use an extra non-const intermediate variable to work around this.
closes#1270
Change-Id: I3bf1404240d3b8571aaf40c38b524f578e0fdbd9
When building using with_transcoding=no we should not expect spandsp to
be available as it's not even being used.
closes#1267
Change-Id: I2c8e0407b4dd46cfdd5322cd377b664955ad7c74
Code generated by gperf does not have complete initialisers for all
struct elements, producing a warning from gcc. Suppress this warning for
code from gperf.
Change-Id: Ie61eb42b293041e43c62df702123f725f6116a9c
Expanding the initialiser of the contained array eliminates a stray
warning from gcc (-Wmissing-field-initializers).
Change-Id: Icef260477d0ff7acc050375ce48cc6604ee325ff