コード例 #1
0
ファイル: lists.c プロジェクト: Kurento/kms-core
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);
}
コード例 #2
0
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));
  }
}