예제 #1
0
static void
gst_cmml_tag_head_set_property (GObject * object, guint property_id,
    const GValue * value, GParamSpec * pspec)
{
  GstCmmlTagHead *head = GST_CMML_TAG_HEAD (object);

  switch (property_id) {
    case GST_CMML_TAG_HEAD_TITLE:
      g_free (head->title);
      head->title = (guchar *) g_value_dup_string (value);
      break;
    case GST_CMML_TAG_HEAD_BASE:
      g_free (head->base);
      head->base = (guchar *) g_value_dup_string (value);
      break;
    case GST_CMML_TAG_HEAD_META:
    {
      GValueArray *va = g_value_get_boxed (value);

      if (head->meta)
        g_value_array_free (head->meta);
      head->meta = va != NULL ? g_value_array_copy (va) : NULL;
      break;
    }
    default:
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
  }
}
예제 #2
0
static void
gst_cmml_tag_head_finalize (GObject * object)
{
  GstCmmlTagHead *head = GST_CMML_TAG_HEAD (object);

  g_free (head->title);
  g_free (head->base);
  if (head->meta)
    g_value_array_free (head->meta);

  if (G_OBJECT_CLASS (gst_cmml_tag_head_parent_class)->finalize)
    G_OBJECT_CLASS (gst_cmml_tag_head_parent_class)->finalize (object);
}
예제 #3
0
guchar *
gst_cmml_parser_tag_object_to_string (GstCmmlParser * parser, GObject * tag)
{
  guchar *tag_string = NULL;
  GType tag_type = G_OBJECT_TYPE (tag);

  if (tag_type == GST_TYPE_CMML_TAG_STREAM)
    tag_string = gst_cmml_parser_tag_stream_to_string (parser,
        GST_CMML_TAG_STREAM (tag));
  else if (tag_type == GST_TYPE_CMML_TAG_HEAD)
    tag_string = gst_cmml_parser_tag_head_to_string (parser,
        GST_CMML_TAG_HEAD (tag));
  else if (tag_type == GST_TYPE_CMML_TAG_CLIP)
    tag_string = gst_cmml_parser_tag_clip_to_string (parser,
        GST_CMML_TAG_CLIP (tag));
  else
    g_warning ("could not convert object to cmml");

  return tag_string;
}
예제 #4
0
static void
gst_cmml_tag_head_get_property (GObject * object, guint property_id,
    GValue * value, GParamSpec * pspec)
{
  GstCmmlTagHead *head = GST_CMML_TAG_HEAD (object);

  switch (property_id) {
    case GST_CMML_TAG_HEAD_TITLE:
      g_value_set_string (value, (gchar *) head->title);
      break;
    case GST_CMML_TAG_HEAD_BASE:
      g_value_set_string (value, (gchar *) head->base);
      break;
    case GST_CMML_TAG_HEAD_META:
      g_value_set_boxed (value, head->meta);
      break;
    default:
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
  }
}