Example #1
0
static GstCaps *
generate_sink_template(void)
{
	GstCaps *caps;
	GstStructure *struc;

	caps = gst_caps_new_empty();

	struc = gst_structure_new("video/x-raw-yuv",
			"width", GST_TYPE_INT_RANGE, 16, 4096,
			"height", GST_TYPE_INT_RANGE, 16, 4096,
			"framerate", GST_TYPE_FRACTION_RANGE, 0, 1, 30, 1,
			NULL);

	{
		GValue list;
		GValue val;

		list.g_type = val.g_type = 0;

		g_value_init(&list, GST_TYPE_LIST);
		g_value_init(&val, GST_TYPE_FOURCC);

#if 0
		gst_value_set_fourcc(&val, GST_MAKE_FOURCC('I', '4', '2', '0'));
		gst_value_list_append_value(&list, &val);

		gst_value_set_fourcc(&val, GST_MAKE_FOURCC('Y', 'U', 'Y', '2'));
		gst_value_list_append_value(&list, &val);

		gst_value_set_fourcc(&val, GST_MAKE_FOURCC('U', 'Y', 'V', 'Y'));
		gst_value_list_append_value(&list, &val);
#else
		gst_value_set_fourcc(&val, GST_MAKE_FOURCC('U', 'Y', 'V', 'Y'));
		gst_value_list_append_value(&list, &val);
#endif

		gst_structure_set_value(struc, "format", &list);

		g_value_unset(&val);
		g_value_unset(&list);
	}

	gst_caps_append_structure(caps, struc);

	return caps;
}
Example #2
0
static GstCaps *
gst_smpte_alpha_transform_caps (GstBaseTransform * trans,
    GstPadDirection direction, GstCaps * from)
{
  GstCaps *to = gst_caps_copy (from);
  GstStructure *s;

  gst_caps_truncate (to);
  s = gst_caps_get_structure (to, 0);

  if (gst_structure_has_name (s, "video/x-raw-yuv")) {
    GValue list = { 0, };
    GValue val = { 0, };

    gst_structure_remove_field (s, "format");

    g_value_init (&list, GST_TYPE_LIST);
    g_value_init (&val, GST_TYPE_FOURCC);
    gst_value_set_fourcc (&val, GST_STR_FOURCC ("AYUV"));
    gst_value_list_append_value (&list, &val);
    g_value_reset (&val);
    gst_value_set_fourcc (&val, GST_STR_FOURCC ("I420"));
    gst_value_list_append_value (&list, &val);
    g_value_reset (&val);
    gst_value_set_fourcc (&val, GST_STR_FOURCC ("YV12"));
    gst_value_list_append_value (&list, &val);
    g_value_unset (&val);
    gst_structure_set_value (s, "format", &list);
    g_value_unset (&list);
  } else if (!gst_structure_has_name (s, "video/x-raw-rgb")) {
    gst_caps_unref (to);
    to = gst_caps_new_empty ();
  }

  return to;
}
static void
transform_value (GValue * dest)
{
  GValue fourcc = { 0 };

  g_value_init (dest, GST_TYPE_LIST);
  g_value_init (&fourcc, GST_TYPE_FOURCC);

  gst_value_set_fourcc (&fourcc, GST_MAKE_FOURCC ('I', '4', '2', '0'));
  gst_value_list_append_value (dest, &fourcc);

  gst_value_set_fourcc (&fourcc, GST_MAKE_FOURCC ('Y', 'V', '1', '2'));
  gst_value_list_append_value (dest, &fourcc);

  gst_value_set_fourcc (&fourcc, GST_MAKE_FOURCC ('Y', 'U', 'Y', '2'));
  gst_value_list_append_value (dest, &fourcc);

  gst_value_set_fourcc (&fourcc, GST_MAKE_FOURCC ('U', 'Y', 'V', 'Y'));
  gst_value_list_append_value (dest, &fourcc);

  gst_value_set_fourcc (&fourcc, GST_MAKE_FOURCC ('A', 'Y', 'U', 'V'));
  gst_value_list_append_value (dest, &fourcc);

  gst_value_set_fourcc (&fourcc, GST_MAKE_FOURCC ('Y', '4', '2', 'B'));
  gst_value_list_append_value (dest, &fourcc);

  gst_value_set_fourcc (&fourcc, GST_MAKE_FOURCC ('Y', '4', '4', '4'));
  gst_value_list_append_value (dest, &fourcc);

  gst_value_set_fourcc (&fourcc, GST_MAKE_FOURCC ('v', '2', '1', '0'));
  gst_value_list_append_value (dest, &fourcc);

  gst_value_set_fourcc (&fourcc, GST_MAKE_FOURCC ('v', '2', '1', '6'));
  gst_value_list_append_value (dest, &fourcc);

  g_value_unset (&fourcc);
}
Example #4
0
static VALUE
fourcc_replace_bang(VALUE self, VALUE fourcc)
{
    gst_value_set_fourcc(DATA_PTR(self), value_to_fourcc(fourcc));
    return Qnil;
}
Example #5
0
static VALUE
fourcc_initialize(VALUE self, VALUE fourcc)
{
    gst_value_set_fourcc(DATA_PTR(self), value_to_fourcc(fourcc));
    return Qnil;
}
Example #6
0
static void
fourcc_rvalue2gvalue(VALUE value, GValue *result)
{
    gst_value_set_fourcc(result,
                         gst_value_get_fourcc(RVAL2GOBJ(value)));
}