/* 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; }
/* 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; }