コード例 #1
0
ファイル: gstopengl.c プロジェクト: ego5710/gst-plugins-bad
/* Register filters that make up the gstgl plugin */
static gboolean
plugin_init (GstPlugin * plugin)
{
    GST_DEBUG_CATEGORY_INIT (gst_gl_gstgl_debug, "gstopengl", 0, "gstopengl");

#ifdef USE_EGL_RPI
    GST_DEBUG ("Initialize BCM host");
    bcm_host_init ();
#endif

#if GST_GL_HAVE_WINDOW_X11
    if (g_getenv ("GST_GL_XINITTHREADS"))
        XInitThreads ();
#endif

    if (!gst_element_register (plugin, "glimagesink",
                               GST_RANK_SECONDARY, GST_TYPE_GLIMAGE_SINK)) {
        return FALSE;
    }

    if (!gst_element_register (plugin, "glfiltercube",
                               GST_RANK_NONE, GST_TYPE_GL_FILTER_CUBE)) {
        return FALSE;
    }
#if HAVE_GRAPHENE
    if (!gst_element_register (plugin, "gltransformation",
                               GST_RANK_NONE, GST_TYPE_GL_TRANSFORMATION)) {
        return FALSE;
    }
#endif
    if (!gst_element_register (plugin, "gleffects",
                               GST_RANK_NONE, gst_gl_effects_get_type ())) {
        return FALSE;
    }

    if (!gst_element_register (plugin, "glcolorscale",
                               GST_RANK_NONE, GST_TYPE_GL_COLORSCALE)) {
        return FALSE;
    }

    if (!gst_element_register (plugin, "glvideomixer",
                               GST_RANK_NONE, GST_TYPE_GL_VIDEO_MIXER)) {
        return FALSE;
    }

    if (!gst_element_register (plugin, "glshader",
                               GST_RANK_NONE, gst_gl_filtershader_get_type ())) {
        return FALSE;
    }

    if (!gst_element_register (plugin, "glfilterapp",
                               GST_RANK_NONE, GST_TYPE_GL_FILTER_APP)) {
        return FALSE;
    }
#if HAVE_JPEG
#if HAVE_PNG
    if (!gst_element_register (plugin, "gloverlay",
                               GST_RANK_NONE, gst_gl_overlay_get_type ())) {
        return FALSE;
    }
#endif /* HAVE_PNG */
#endif /* HAVE_JPEG */
#if GST_GL_HAVE_OPENGL
    if (!gst_element_register (plugin, "gltestsrc",
                               GST_RANK_NONE, GST_TYPE_GL_TEST_SRC)) {
        return FALSE;
    }

    if (!gst_element_register (plugin, "glfilterblur",
                               GST_RANK_NONE, gst_gl_filterblur_get_type ())) {
        return FALSE;
    }

    if (!gst_element_register (plugin, "glfiltersobel",
                               GST_RANK_NONE, gst_gl_filtersobel_get_type ())) {
        return FALSE;
    }

    if (!gst_element_register (plugin, "glfilterlaplacian",
                               GST_RANK_NONE, GST_TYPE_GL_FILTER_LAPLACIAN)) {
        return FALSE;
    }

    if (!gst_element_register (plugin, "glfilterglass",
                               GST_RANK_NONE, GST_TYPE_GL_FILTER_GLASS)) {
        return FALSE;
    }
#if 0
    if (!gst_element_register (plugin, "glfilterreflectedscreen",
                               GST_RANK_NONE, GST_TYPE_GL_FILTER_REFLECTED_SCREEN)) {
        return FALSE;
    }
#endif
    if (!gst_element_register (plugin, "gldeinterlace",
                               GST_RANK_NONE, GST_TYPE_GL_DEINTERLACE)) {
        return FALSE;
    }

    if (!gst_element_register (plugin, "glmosaic",
                               GST_RANK_NONE, GST_TYPE_GL_MOSAIC)) {
        return FALSE;
    }
#if HAVE_PNG
    if (!gst_element_register (plugin, "gldifferencematte",
                               GST_RANK_NONE, gst_gl_differencematte_get_type ())) {
        return FALSE;
    }
#if 0
    if (!gst_element_register (plugin, "glbumper",
                               GST_RANK_NONE, gst_gl_bumper_get_type ())) {
        return FALSE;
    }
#endif
#endif /* HAVE_PNG */
#endif /* GST_GL_HAVE_OPENGL */

    return TRUE;
}
コード例 #2
0
/* Register filters that make up the gstgl plugin */
static gboolean
plugin_init (GstPlugin * plugin)
{
  GST_DEBUG_CATEGORY_INIT (gst_gl_gstgl_debug, "gstopengl", 0, "gstopengl");

#if GST_GL_HAVE_WINDOW_DISPMANX
  GST_DEBUG ("Initialize BCM host");
  bcm_host_init ();
#endif

#if GST_GL_HAVE_WINDOW_X11
  if (g_getenv ("GST_GL_XINITTHREADS"))
    XInitThreads ();
#endif

  if (!gst_element_register (plugin, "glimagesink",
          GST_RANK_SECONDARY, gst_gl_image_sink_bin_get_type ())) {
    return FALSE;
  }

  if (!gst_element_register (plugin, "glimagesinkelement",
          GST_RANK_NONE, gst_glimage_sink_get_type ())) {
    return FALSE;
  }

  if (!gst_element_register (plugin, "glupload",
          GST_RANK_NONE, GST_TYPE_GL_UPLOAD_ELEMENT)) {
    return FALSE;
  }

  if (!gst_element_register (plugin, "gldownload",
          GST_RANK_NONE, GST_TYPE_GL_DOWNLOAD_ELEMENT)) {
    return FALSE;
  }

  if (!gst_element_register (plugin, "glcolorconvert",
          GST_RANK_NONE, GST_TYPE_GL_COLOR_CONVERT_ELEMENT)) {
    return FALSE;
  }

  if (!gst_element_register (plugin, "glcolorbalance",
          GST_RANK_NONE, GST_TYPE_GL_COLOR_BALANCE)) {
    return FALSE;
  }

  if (!gst_element_register (plugin, "glfilterbin",
          GST_RANK_NONE, GST_TYPE_GL_FILTER_BIN)) {
    return FALSE;
  }

  if (!gst_element_register (plugin, "glsinkbin",
          GST_RANK_NONE, GST_TYPE_GL_SINK_BIN)) {
    return FALSE;
  }

  if (!gst_element_register (plugin, "glsrcbin",
          GST_RANK_NONE, GST_TYPE_GL_SRC_BIN)) {
    return FALSE;
  }

  if (!gst_element_register (plugin, "glmixerbin",
          GST_RANK_NONE, GST_TYPE_GL_MIXER_BIN)) {
    return FALSE;
  }

  if (!gst_element_register (plugin, "glfiltercube",
          GST_RANK_NONE, GST_TYPE_GL_FILTER_CUBE)) {
    return FALSE;
  }
#if HAVE_GRAPHENE
  if (!gst_element_register (plugin, "gltransformation",
          GST_RANK_NONE, GST_TYPE_GL_TRANSFORMATION)) {
    return FALSE;
  }

  if (!gst_element_register (plugin, "glvideoflip",
          GST_RANK_NONE, GST_TYPE_GL_VIDEO_FLIP)) {
    return FALSE;
  }
#endif

  if (!gst_gl_effects_register_filters (plugin, GST_RANK_NONE)) {
    return FALSE;
  };

  if (!gst_element_register (plugin, "glcolorscale",
          GST_RANK_NONE, GST_TYPE_GL_COLORSCALE)) {
    return FALSE;
  }

  if (!gst_element_register (plugin, "glvideomixer",
          GST_RANK_NONE, gst_gl_video_mixer_bin_get_type ())) {
    return FALSE;
  }

  if (!gst_element_register (plugin, "glvideomixerelement",
          GST_RANK_NONE, gst_gl_video_mixer_get_type ())) {
    return FALSE;
  }

  if (!gst_element_register (plugin, "glshader",
          GST_RANK_NONE, gst_gl_filtershader_get_type ())) {
    return FALSE;
  }

  if (!gst_element_register (plugin, "glfilterapp",
          GST_RANK_NONE, GST_TYPE_GL_FILTER_APP)) {
    return FALSE;
  }

  if (!gst_element_register (plugin, "glviewconvert",
          GST_RANK_NONE, GST_TYPE_GL_VIEW_CONVERT_ELEMENT)) {
    return FALSE;
  }

  if (!gst_element_register (plugin, "glstereosplit",
          GST_RANK_NONE, GST_TYPE_GL_STEREOSPLIT)) {
    return FALSE;
  }

  if (!gst_element_register (plugin, "glstereomix",
          GST_RANK_NONE, GST_TYPE_GL_STEREO_MIX)) {
    return FALSE;
  }

  if (!gst_element_register (plugin, "gltestsrc",
          GST_RANK_NONE, GST_TYPE_GL_TEST_SRC)) {
    return FALSE;
  }

  if (!gst_element_register (plugin, "gldeinterlace",
          GST_RANK_NONE, GST_TYPE_GL_DEINTERLACE)) {
    return FALSE;
  }
#if HAVE_JPEG
#if HAVE_PNG
  if (!gst_element_register (plugin, "gloverlay",
          GST_RANK_NONE, gst_gl_overlay_get_type ())) {
    return FALSE;
  }
#endif /* HAVE_PNG */
#endif /* HAVE_JPEG */
#if GST_GL_HAVE_OPENGL
  if (!gst_element_register (plugin, "glfilterglass",
          GST_RANK_NONE, GST_TYPE_GL_FILTER_GLASS)) {
    return FALSE;
  }
#if 0
  if (!gst_element_register (plugin, "glfilterreflectedscreen",
          GST_RANK_NONE, GST_TYPE_GL_FILTER_REFLECTED_SCREEN)) {
    return FALSE;
  }
#endif
  if (!gst_element_register (plugin, "glmosaic",
          GST_RANK_NONE, GST_TYPE_GL_MOSAIC)) {
    return FALSE;
  }
#if HAVE_PNG
  if (!gst_element_register (plugin, "gldifferencematte",
          GST_RANK_NONE, gst_gl_differencematte_get_type ())) {
    return FALSE;
  }
#if 0
  if (!gst_element_register (plugin, "glbumper",
          GST_RANK_NONE, gst_gl_bumper_get_type ())) {
    return FALSE;
  }
#endif
#endif /* HAVE_PNG */
#endif /* GST_GL_HAVE_OPENGL */
#if GST_GL_HAVE_WINDOW_COCOA
  if (!gst_element_register (plugin, "caopengllayersink",
          GST_RANK_NONE, gst_ca_opengl_layer_sink_bin_get_type ())) {
    return FALSE;
  }
#endif

  return TRUE;
}