static void kms_recorder_endpoint_init (KmsRecorderEndpoint * self) { GError *err = NULL; self->priv = KMS_RECORDER_ENDPOINT_GET_PRIVATE (self); g_mutex_init (&self->priv->base_time_lock); self->priv->srcs = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref); self->priv->profile = KMS_RECORDING_PROFILE_NONE; self->priv->paused_time = G_GUINT64_CONSTANT (0); self->priv->paused_start = GST_CLOCK_TIME_NONE; self->priv->sink_pad_data = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify) sink_pad_data_destroy); self->priv->stats.avg_e2e = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify) kms_ref_struct_unref); self->priv->stats.id = g_strdup ("recorder-id"); g_cond_init (&self->priv->state_manager.cond); self->priv->pool = gst_task_pool_new (); gst_task_pool_prepare (self->priv->pool, &err); if (G_UNLIKELY (err != NULL)) { g_warning ("%s", err->message); g_error_free (err); } }
static void init_klass_pool (GstTaskClass * klass) { g_static_mutex_lock (&pool_lock); if (klass->pool) { gst_task_pool_cleanup (klass->pool); gst_object_unref (klass->pool); } klass->pool = gst_task_pool_new (); gst_task_pool_prepare (klass->pool, NULL); g_static_mutex_unlock (&pool_lock); }
GstTaskPool * gst_task_pool_get_default (void) { static GstTaskPool *pool = NULL; if (g_once_init_enter (&pool)) { GstTaskPool *_pool = gst_task_pool_new (); gst_task_pool_prepare (_pool, NULL); g_once_init_leave (&pool, _pool); } return gst_object_ref (pool); }