# Utility functions

while you can use the regular g_object_getv () function to query the value of an object property, GStreamer provides some easy wrappers for this common operation.

Instead of writing the following Gtk+ code to query the GTK_STRING value of an object:

      GtkArg arg;
      guchar *value;

      arg.name = argname;
      g_object_getv (G_OBJECT (object), 1, &arg);
      value = GTK_VALUE_STRING (arg);

You can also use:

      value = gst_util_get_string_arg (object, argname);

These convenience functions exist for the following types:

- gint: with gst_util_get_int_arg ();

- gboolean: with gst_util_get_bool_arg ();

- glong: with gst_util_get_long_arg ();

- gfloat: with gst_util_get_float_arg ();

- gdouble: with gst_util_get_double_arg ();

- guchar*: with gst_util_get_string_arg ();

- gpointer: with gst_util_get_pointer_arg ();

One usually sets object properties using g_object_set (). The problem with this method is that you need to know the type of the property. A convenience function, gst_utils_set_object_arg () is therefore provided so that you can always set the property with a string value. for example:

      gst_util_set_object_arg (someobject, "int_property", "1000");

Will do The Right Thing(tm), converting the string to the type of the property when needed.

There is also another utility function that can be used to dump a block of memory on the console. This function is very usefull for plugin developers. The function will dump size bytes of the memory pointed to by mem.

      void gst_util_dump_mem (guchar *mem, guint size);