static void my_recycle_buffer_finalize (GstMiniObject * mini_object) { MyRecycleBuffer *self = MY_RECYCLE_BUFFER_CAST (mini_object); if (self->pool != NULL) { my_buffer_pool_add (self->pool, GST_BUFFER_CAST (self)); g_usleep (G_USEC_PER_SEC / 100); } else { GST_MINI_OBJECT_CLASS (my_recycle_buffer_parent_class)->finalize (mini_object); } }
static void thread_buffer_consumer (MyBufferPool * pool) { THREAD_START (); do { GstBuffer *buf; buf = my_buffer_pool_drain_one (pool); if (buf != NULL) my_recycle_buffer_destroy (MY_RECYCLE_BUFFER_CAST (buf)); THREAD_SWITCH (); } while (!pool->is_closed); }