GST_END_TEST GST_START_TEST (list_add) { KmsList *list; gchar *val; list = kms_list_new_full (g_str_equal, g_free, g_free); fail_if (list == NULL); fail_if (kms_list_length (list) != 0); kms_list_append (list, g_strdup ("key1"), g_strdup ("val1")); fail_if (kms_list_length (list) != 1); kms_list_append (list, g_strdup ("key2"), g_strdup ("val2")); fail_if (kms_list_length (list) != 2); kms_list_append (list, g_strdup ("key3"), g_strdup ("val3")); fail_if (kms_list_length (list) != 3); fail_if (!kms_list_contains (list, "key1")); fail_if (!kms_list_contains (list, "key2")); fail_if (!kms_list_contains (list, "key3")); fail_if (kms_list_contains (list, "key5")); val = kms_list_lookup (list, "key1"); fail_if (val == NULL); fail_if (!g_str_equal ("val1", val)); val = kms_list_lookup (list, "key2"); fail_if (val == NULL); fail_if (!g_str_equal ("val2", val)); val = kms_list_lookup (list, "key2"); fail_if (val == NULL); fail_if (!g_str_equal ("val2", val)); val = kms_list_lookup (list, "key5"); fail_if (val != NULL); kms_list_unref (list); }
static void add_mark_data_cb (GstPad * pad, KmsMediaType type, GstClockTimeDiff t, KmsList * meta_data, gpointer user_data) { MarkBufferProbeData *data = (MarkBufferProbeData *) user_data; StreamE2EAvgStat *stat; stat = kms_list_lookup (meta_data, data->id); if (stat != NULL) { GST_WARNING_OBJECT (pad, "Can not mark buffer for e2e latency. " "Already used ID: %s", data->id); } else { /* add mark data to this meta */ kms_list_prepend (meta_data, g_strdup (data->id), stream_e2e_avg_stat_ref (data->stat)); } }