Esempio n. 1
0
static gboolean
gst_shagadelictv_set_caps (GstBaseTransform * btrans, GstCaps * incaps,
    GstCaps * outcaps)
{
  GstShagadelicTV *filter = GST_SHAGADELICTV (btrans);
  GstStructure *structure;
  gboolean ret = FALSE;

  structure = gst_caps_get_structure (incaps, 0);

  GST_OBJECT_LOCK (filter);
  if (gst_structure_get_int (structure, "width", &filter->width) &&
      gst_structure_get_int (structure, "height", &filter->height)) {
    gint area = filter->width * filter->height;

    g_free (filter->ripple);
    g_free (filter->spiral);

    filter->ripple = (guint8 *) g_malloc (area * 4);
    filter->spiral = (guint8 *) g_malloc (area);

    gst_shagadelic_initialize (filter);
    ret = TRUE;
  }
  GST_OBJECT_UNLOCK (filter);

  return ret;
}
Esempio n. 2
0
static gboolean
gst_shagadelictv_set_info (GstVideoFilter * vfilter, GstCaps * incaps,
                           GstVideoInfo * in_info, GstCaps * outcaps, GstVideoInfo * out_info)
{
    GstShagadelicTV *filter = GST_SHAGADELICTV (vfilter);
    gint width, height, area;

    width = GST_VIDEO_INFO_WIDTH (in_info);
    height = GST_VIDEO_INFO_HEIGHT (in_info);

    area = width * height;

    g_free (filter->ripple);
    g_free (filter->spiral);
    filter->ripple = (guint8 *) g_malloc (area * 4);
    filter->spiral = (guint8 *) g_malloc (area);

    gst_shagadelic_initialize (filter, in_info);

    return TRUE;
}