static GObject *
gst_validate_monitor_constructor (GType type, guint n_construct_params,
    GObjectConstructParam * construct_params)
{
  GstObject *target;
  GstValidateMonitor *monitor =
      GST_VALIDATE_MONITOR_CAST (G_OBJECT_CLASS (parent_class)->constructor
      (type,
          n_construct_params,
          construct_params));

  if (monitor->parent) {
    GstPipeline *parent_pipeline =
        gst_validate_monitor_get_pipeline (monitor->parent);

    gst_validate_monitor_set_media_descriptor (monitor,
        monitor->parent->media_descriptor);

    if (parent_pipeline) {
      g_weak_ref_init (&monitor->pipeline, parent_pipeline);

      gst_object_unref (parent_pipeline);
    }
  }

  gst_validate_override_registry_attach_overrides (monitor);
  gst_validate_monitor_setup (monitor);

  target = gst_validate_monitor_get_target (monitor);
  g_object_set_data ((GObject *) target, "validate-monitor", monitor);
  gst_object_unref (target);

  return (GObject *) monitor;
}
static GObject *
gst_validate_monitor_constructor (GType type, guint n_construct_params,
    GObjectConstructParam * construct_params)
{
  GstValidateMonitor *monitor =
      GST_VALIDATE_MONITOR_CAST (G_OBJECT_CLASS (parent_class)->constructor
      (type,
          n_construct_params,
          construct_params));

  if (monitor->parent) {
    gst_validate_monitor_set_media_descriptor (monitor,
        monitor->parent->media_descriptor);
  }


  gst_validate_monitor_setup (monitor);
  return (GObject *) monitor;
}