您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ GST_GL_FILTER函数代码示例

51自学网 2021-06-01 20:56:31
  C++
这篇教程C++ GST_GL_FILTER函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中GST_GL_FILTER函数的典型用法代码示例。如果您正苦于以下问题:C++ GST_GL_FILTER函数的具体用法?C++ GST_GL_FILTER怎么用?C++ GST_GL_FILTER使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了GST_GL_FILTER函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: gst_gl_effects_twirl_callback

static voidgst_gl_effects_twirl_callback (gint width, gint height, guint texture,    gpointer data){  GstGLShader *shader;  GstGLEffects *effects = GST_GL_EFFECTS (data);  GstGLFilter *filter = GST_GL_FILTER (effects);  GstGLContext *context = GST_GL_BASE_FILTER (filter)->context;  GstGLFuncs *gl = context->gl_vtable;  shader = gst_gl_effects_get_fragment_shader (effects, "twirl",      twirl_fragment_source_gles2);  if (!shader)    return;#if GST_GL_HAVE_OPENGL  if (USING_OPENGL (context)) {    gl->MatrixMode (GL_PROJECTION);    gl->LoadIdentity ();  }#endif  gst_gl_shader_use (shader);  gl->ActiveTexture (GL_TEXTURE0);  gl->BindTexture (GL_TEXTURE_2D, texture);  gst_gl_shader_set_uniform_1i (shader, "tex", 0);  gst_gl_filter_draw_texture (filter, texture, width, height);}
开发者ID:Haifen,项目名称:gst-plugins-bad,代码行数:32,


示例2: gst_gl_differencematte_interp

static voidgst_gl_differencematte_interp (gint width, gint height, guint texture,    gpointer stuff){  GstGLDifferenceMatte *differencematte = GST_GL_DIFFERENCEMATTE (stuff);  GstGLFilter *filter = GST_GL_FILTER (stuff);  GstGLFuncs *gl = GST_GL_BASE_FILTER (filter)->context->gl_vtable;  gst_gl_shader_use (differencematte->shader[3]);  gl->ActiveTexture (GL_TEXTURE0);  gl->BindTexture (GL_TEXTURE_2D, texture);  gst_gl_shader_set_uniform_1i (differencematte->shader[3], "blend", 0);  gl->ActiveTexture (GL_TEXTURE1);  gl->BindTexture (GL_TEXTURE_2D, differencematte->newbgtexture);  gst_gl_shader_set_uniform_1i (differencematte->shader[3], "base", 1);  gl->ActiveTexture (GL_TEXTURE2);  gl->BindTexture (GL_TEXTURE_2D, differencematte->midtexture[2]);  gst_gl_shader_set_uniform_1i (differencematte->shader[3], "alpha", 2);  gst_gl_filter_draw_texture (filter, texture, width, height);}
开发者ID:Haifen,项目名称:gst-plugins-bad,代码行数:27,


示例3: gst_gl_effects_sobel_callback_vconv

static voidgst_gl_effects_sobel_callback_vconv (gint width, gint height, guint texture,    gpointer data){  GstGLShader *shader = NULL;  GstGLEffects *effects = GST_GL_EFFECTS (data);  GstGLFilter *filter = GST_GL_FILTER (effects);  if (NULL != (shader = gst_gl_effects_get_fragment_shader (effects, "vconv0",              sep_sobel_vconv3_fragment_source_gles2,              sep_sobel_vconv3_fragment_source_opengl))) {    GstGLFuncs *gl = GST_GL_BASE_FILTER (filter)->context->gl_vtable;#if GST_GL_HAVE_OPENGL    if (USING_OPENGL (GST_GL_BASE_FILTER (filter)->context)) {      gl->MatrixMode (GL_PROJECTION);      gl->LoadIdentity ();    }#endif    gst_gl_shader_use (shader);    gl->ActiveTexture (GL_TEXTURE0);    gl->BindTexture (GL_TEXTURE_2D, texture);    gst_gl_shader_set_uniform_1i (shader, "tex", 0);    gst_gl_shader_set_uniform_1f (shader, "height", height);    gst_gl_filter_draw_texture (filter, texture, width, height);  }}
开发者ID:Distrotech,项目名称:gst-plugins-bad,代码行数:31,


示例4: init_pixbuf_texture

static voidinit_pixbuf_texture (GstGLContext * context, gpointer data){  GstGLDifferenceMatte *differencematte = GST_GL_DIFFERENCEMATTE (data);  GstGLFilter *filter = GST_GL_FILTER (data);  const GstGLFuncs *gl = context->gl_vtable;  guint internal_format =      gst_gl_sized_gl_format_from_gl_format_type (context, GL_RGBA,      GL_UNSIGNED_BYTE);  gl->DeleteTextures (1, &differencematte->newbgtexture);  gl->GenTextures (1, &differencematte->newbgtexture);  gl->BindTexture (GL_TEXTURE_2D, differencematte->newbgtexture);  gl->TexImage2D (GL_TEXTURE_2D, 0, internal_format,      (gint) differencematte->pbuf_width, (gint) differencematte->pbuf_height,      0, GL_RGBA, GL_UNSIGNED_BYTE, differencematte->pixbuf);  gl->TexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);  gl->TexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);  gl->TexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);  gl->TexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);  if (differencematte->savedbgtexture == 0) {    gl->GenTextures (1, &differencematte->savedbgtexture);    gl->BindTexture (GL_TEXTURE_2D, differencematte->savedbgtexture);    gl->TexImage2D (GL_TEXTURE_2D, 0, internal_format,        GST_VIDEO_INFO_WIDTH (&filter->out_info),        GST_VIDEO_INFO_HEIGHT (&filter->out_info),        0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);    gl->TexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);    gl->TexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);    gl->TexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);    gl->TexParameteri (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);  }}
开发者ID:Haifen,项目名称:gst-plugins-bad,代码行数:34,


示例5: gst_gl_filter_set_context

static voidgst_gl_filter_set_context (GstElement * element, GstContext * context){  GstGLFilter *filter = GST_GL_FILTER (element);  gst_gl_handle_set_context (element, context, &filter->display);}
开发者ID:mapmapteam,项目名称:gst-plugins-gl,代码行数:7,


示例6: gst_gl_filter_cube_filter_texture

static gbooleangst_gl_filter_cube_filter_texture (GstGLFilter * filter, guint in_tex,    guint out_tex){  GstGLFilterCube *cube_filter = GST_GL_FILTER_CUBE (filter);  GLCB cb = NULL;  GstGLAPI api;  api = gst_gl_context_get_gl_api (GST_GL_FILTER (cube_filter)->context);#if GST_GL_HAVE_OPENGL  if (api & GST_GL_API_OPENGL)    cb = _callback_opengl;#endif#if GST_GL_HAVE_GLES2  if (api & GST_GL_API_GLES2)    cb = _callback_gles2;#endif  /* blocking call, use a FBO */  gst_gl_context_use_fbo (filter->context,      GST_VIDEO_INFO_WIDTH (&filter->out_info),      GST_VIDEO_INFO_HEIGHT (&filter->out_info),      filter->fbo, filter->depthbuffer, out_tex,      cb,      GST_VIDEO_INFO_WIDTH (&filter->in_info),      GST_VIDEO_INFO_HEIGHT (&filter->in_info),      in_tex, cube_filter->fovy, cube_filter->aspect,      cube_filter->znear, cube_filter->zfar,      GST_GL_DISPLAY_PROJECTION_PERSPECTIVE, (gpointer) cube_filter);  return TRUE;}
开发者ID:Lachann,项目名称:gst-plugins-bad,代码行数:33,


示例7: gst_gl_filter_query

static gbooleangst_gl_filter_query (GstBaseTransform * trans, GstPadDirection direction,    GstQuery * query){  GstGLFilter *filter;  gboolean res;  filter = GST_GL_FILTER (trans);  switch (GST_QUERY_TYPE (query)) {    case GST_QUERY_CONTEXT:    {      res = gst_gl_handle_context_query ((GstElement *) filter, query,          &filter->display);      break;    }    default:      res =          GST_BASE_TRANSFORM_CLASS (parent_class)->query (trans, direction,          query);      break;  }  return res;}
开发者ID:mapmapteam,项目名称:gst-plugins-gl,代码行数:25,


示例8: gst_gl_overlay_callback

static voidgst_gl_overlay_callback (gint width, gint height, guint texture, gpointer stuff){  GstGLOverlay *overlay = GST_GL_OVERLAY (stuff);  GstGLFilter *filter = GST_GL_FILTER (overlay);  const GstGLFuncs *gl = filter->context->gl_vtable;  gl->MatrixMode (GL_PROJECTION);  gl->LoadIdentity ();  gluPerspective (70.0f,      (GLfloat) overlay->width_window / (GLfloat) overlay->height_window, 1.0f,      1000.0f);  gl->Enable (GL_DEPTH_TEST);  gluLookAt (0.0, 0.0, 0.01, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);  if (!overlay->video_top) {    if (overlay->pbuftexture != 0)      gst_gl_overlay_load_texture (overlay, overlay->pbuftexture, 0);    // if (overlay->stretch) {    //   width = (gfloat) overlay->width;    //   height = (gfloat) overlay->height;    // }    gl->LoadIdentity ();    gst_gl_overlay_load_texture (overlay, texture, 1);  } else {    gst_gl_overlay_load_texture (overlay, texture, 1);    if (overlay->pbuftexture == 0)      return;    // if (overlay->stretch) {    //   width = (gfloat) overlay->width;    //   height = (gfloat) overlay->height;    // }    gl->LoadIdentity ();    gst_gl_overlay_load_texture (overlay, overlay->pbuftexture, 0);  }}
开发者ID:asdlei00,项目名称:gst-plugins-bad,代码行数:35,


示例9: gst_gl_effects_xray

voidgst_gl_effects_xray (GstGLEffects * effects){  GstGLFilter *filter = GST_GL_FILTER (effects);  /* map luma to xray curve */  gst_gl_filter_render_to_target (filter, effects->intexture,      effects->midtexture[0], gst_gl_effects_xray_step_one, effects);  /* horizontal blur */  gst_gl_filter_render_to_target (filter, effects->midtexture[0],      effects->midtexture[1], gst_gl_effects_xray_step_two, effects);  /* vertical blur */  gst_gl_filter_render_to_target (filter, effects->midtexture[1],      effects->midtexture[2], gst_gl_effects_xray_step_three, effects);  /* detect edges with Sobel */  /* the old version used edges from the blurred texture, this uses   * the ones from original texture, still not sure what I like   * more. This one gives better edges obviously but behaves badly   * with noise */  /* desaturate */  gst_gl_filter_render_to_target (filter, effects->intexture,      effects->midtexture[3], gst_gl_effects_xray_desaturate, effects);  /* horizonal convolution */  gst_gl_filter_render_to_target (filter, effects->midtexture[3],      effects->midtexture[4], gst_gl_effects_xray_sobel_hconv, effects);  /* vertical convolution */  gst_gl_filter_render_to_target (filter, effects->midtexture[4],      effects->midtexture[3], gst_gl_effects_xray_sobel_vconv, effects);  /* gradient length */  gst_gl_filter_render_to_target (filter, effects->midtexture[3],      effects->midtexture[4], gst_gl_effects_xray_sobel_length, effects);  /* multiply edges with the blurred image */  gst_gl_filter_render_to_target (filter, effects->midtexture[4],      effects->outtexture, gst_gl_effects_xray_step_five, effects);}
开发者ID:ChinnaSuhas,项目名称:ossbuild,代码行数:35,


示例10: init_pixbuf_texture

static voidinit_pixbuf_texture (GstGLContext * context, gpointer data){  GstGLOverlay *overlay = GST_GL_OVERLAY (data);  GstGLFilter *filter = GST_GL_FILTER (overlay);  const GstGLFuncs *gl = filter->context->gl_vtable;  if (overlay->pixbuf) {    gl->DeleteTextures (1, &overlay->pbuftexture);    gl->GenTextures (1, &overlay->pbuftexture);    if (overlay->type_file == 1) {      gl->BindTexture (GL_TEXTURE_2D, overlay->pbuftexture);      gl->TexImage2D (GL_TEXTURE_2D, 0, GL_RGBA,          (gint) overlay->width, (gint) overlay->height, 0,          GL_RGBA, GL_UNSIGNED_BYTE, overlay->pixbuf);    } else if (overlay->type_file == 2) {      gl->BindTexture (GL_TEXTURE_2D, overlay->pbuftexture);      gl->TexImage2D (GL_TEXTURE_2D, 0, overlay->internalFormat,          overlay->width, overlay->height, 0, overlay->format,          GL_UNSIGNED_BYTE, overlay->pixbuf);      gl->TexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);      gl->TexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);    }  }}
开发者ID:asdlei00,项目名称:gst-plugins-bad,代码行数:25,


示例11: gst_gl_differencematte_diff

static voidgst_gl_differencematte_diff (gint width, gint height, guint texture,    gpointer stuff){  GstGLDifferenceMatte *differencematte = GST_GL_DIFFERENCEMATTE (stuff);  GstGLFilter *filter = GST_GL_FILTER (stuff);  GstGLFuncs *gl = GST_GL_BASE_FILTER (filter)->context->gl_vtable;  gl->MatrixMode (GL_PROJECTION);  gl->LoadIdentity ();  gst_gl_shader_use (differencematte->shader[0]);  gl->ActiveTexture (GL_TEXTURE0);  gl->BindTexture (GL_TEXTURE_2D, texture);  gst_gl_shader_set_uniform_1i (differencematte->shader[0], "current", 0);  gl->ActiveTexture (GL_TEXTURE1);  gl->BindTexture (GL_TEXTURE_2D, differencematte->savedbgtexture);  gst_gl_shader_set_uniform_1i (differencematte->shader[0], "saved", 1);  gst_gl_filter_draw_texture (filter, texture, width, height);}
开发者ID:ndufresne,项目名称:gst-plugins-bad,代码行数:25,


示例12: init_pixbuf_texture

static voidinit_pixbuf_texture (GstGLDisplay * display, gpointer data){    GstGLDifferenceMatte *differencematte = GST_GL_DIFFERENCEMATTE (data);    GstGLFilter *filter = GST_GL_FILTER (data);    glDeleteTextures (1, &differencematte->newbgtexture);    glGenTextures (1, &differencematte->newbgtexture);    glBindTexture (GL_TEXTURE_RECTANGLE_ARB, differencematte->newbgtexture);    glTexImage2D (GL_TEXTURE_RECTANGLE_ARB, 0, GL_RGBA,                  filter->width, filter->height, 0,                  GL_RGBA, GL_UNSIGNED_BYTE, differencematte->pixbuf);    if (differencematte->savedbgtexture == 0) {        glGenTextures (1, &differencematte->savedbgtexture);        glBindTexture (GL_TEXTURE_RECTANGLE_ARB, differencematte->savedbgtexture);        glTexImage2D (GL_TEXTURE_RECTANGLE_ARB, 0, GL_RGBA8,                      filter->width, filter->height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);        glTexParameteri (GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MAG_FILTER,                         GL_LINEAR);        glTexParameteri (GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_MIN_FILTER,                         GL_LINEAR);        glTexParameteri (GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_WRAP_S,                         GL_CLAMP_TO_EDGE);        glTexParameteri (GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_WRAP_T,                         GL_CLAMP_TO_EDGE);    }}
开发者ID:zsx,项目名称:ossbuild,代码行数:28,


示例13: gst_gl_effects_sobel

voidgst_gl_effects_sobel (GstGLEffects * effects){  GstGLFilter *filter = GST_GL_FILTER (effects);  GstGLShader *shader;  shader = gst_gl_effects_get_fragment_shader (effects, "desat0",      desaturate_fragment_source_gles2);  gst_gl_filter_render_to_target_with_shader (filter, effects->intexture,      effects->midtexture[0], shader);  shader = gst_gl_effects_get_fragment_shader (effects, "hconv0",      sep_sobel_hconv3_fragment_source_gles2);  gst_gl_shader_use (shader);  gst_gl_shader_set_uniform_1f (shader, "height",      GST_VIDEO_INFO_HEIGHT (&filter->out_info));  gst_gl_filter_render_to_target_with_shader (filter, effects->midtexture[0],      effects->midtexture[1], shader);  shader = gst_gl_effects_get_fragment_shader (effects, "vconv0",      sep_sobel_vconv3_fragment_source_gles2);  gst_gl_shader_use (shader);  gst_gl_shader_set_uniform_1f (shader, "width",      GST_VIDEO_INFO_WIDTH (&filter->out_info));  gst_gl_filter_render_to_target_with_shader (filter, effects->midtexture[1],      effects->midtexture[0], shader);  shader = gst_gl_effects_get_fragment_shader (effects, "len0",      sep_sobel_length_fragment_source_gles2);  gst_gl_shader_use (shader);  gst_gl_shader_set_uniform_1i (shader, "invert", effects->invert);  gst_gl_filter_render_to_target_with_shader (filter, effects->midtexture[0],      effects->outtexture, shader);}
开发者ID:CogentEmbedded,项目名称:gst-plugins-bad,代码行数:34,


示例14: gst_gl_filter_start_gl

static voidgst_gl_filter_start_gl (GstGLContext * context, gpointer data){  GstGLFilter *filter = GST_GL_FILTER (data);  GstGLFilterClass *filter_class = GST_GL_FILTER_GET_CLASS (filter);  filter_class->display_init_cb (filter);}
开发者ID:mapmapteam,项目名称:gst-plugins-gl,代码行数:8,


示例15: gst_gl_effects_squeeze

voidgst_gl_effects_squeeze (GstGLEffects * effects){  GstGLFilter *filter = GST_GL_FILTER (effects);  gst_gl_filter_render_to_target (filter, TRUE, effects->intexture,      effects->outtexture, gst_gl_effects_squeeze_callback, effects);}
开发者ID:Lachann,项目名称:gst-plugins-bad,代码行数:8,


示例16: gst_gl_filter_stop_gl

static voidgst_gl_filter_stop_gl (GstGLDisplay * display, gpointer data){  GstGLFilter *filter = GST_GL_FILTER (data);  GstGLFilterClass *filter_class = GST_GL_FILTER_GET_CLASS (filter);  filter_class->display_reset_cb (filter);}
开发者ID:zsx,项目名称:ossbuild,代码行数:8,


示例17: gst_gl_effects_squeeze_callback

static voidgst_gl_effects_squeeze_callback (gint width, gint height, guint texture,    gpointer data){  GstGLShader *shader;  GstGLFilter *filter = GST_GL_FILTER (data);  GstGLEffects *effects = GST_GL_EFFECTS (data);  GstGLContext *context = filter->context;  GstGLFuncs *gl = context->gl_vtable;  shader = g_hash_table_lookup (effects->shaderstable, "squeeze0");  if (!shader) {    shader = gst_gl_shader_new (context);    g_hash_table_insert (effects->shaderstable, (gchar *) "squeeze0", shader);    if (USING_GLES2 (context) || USING_OPENGL3 (context)) {      if (!gst_gl_shader_compile_with_default_v_and_check (shader,              squeeze_fragment_source_gles2, &filter->draw_attr_position_loc,              &filter->draw_attr_texture_loc)) {        /* gst gl context error is already set */        GST_ELEMENT_ERROR (effects, RESOURCE, NOT_FOUND,            ("Failed to initialize squeeze shader, %s",                gst_gl_context_get_error ()), (NULL));        return;      }    }#if GST_GL_HAVE_OPENGL    if (USING_OPENGL (context)) {      if (!gst_gl_shader_compile_and_check (shader,              squeeze_fragment_source_opengl, GST_GL_SHADER_FRAGMENT_SOURCE)) {        gst_gl_context_set_error (context,            "Failed to initialize squeeze shader");        GST_ELEMENT_ERROR (effects, RESOURCE, NOT_FOUND,            ("%s", gst_gl_context_get_error ()), (NULL));        return;      }    }#endif  }#if GST_GL_HAVE_OPENGL  if (USING_OPENGL (context)) {    gl->MatrixMode (GL_PROJECTION);    gl->LoadIdentity ();  }#endif  gst_gl_shader_use (shader);  gl->ActiveTexture (GL_TEXTURE0);  if (USING_OPENGL (context))    gl->Enable (GL_TEXTURE_2D);  gl->BindTexture (GL_TEXTURE_2D, texture);  gst_gl_shader_set_uniform_1i (shader, "tex", 0);  gst_gl_filter_draw_texture (filter, texture, width, height);}
开发者ID:ego5710,项目名称:gst-plugins-bad,代码行数:58,


示例18: gst_gl_effects_xray_step_five

voidgst_gl_effects_xray_step_five (gint width, gint height, guint texture,    gpointer stuff){  GstGLEffects *effects = GST_GL_EFFECTS (stuff);  GstGLShader *shader;  shader = g_hash_table_lookup (effects->shaderstable, "xray4");  if (!shader) {    shader = gst_gl_shader_new ();    g_hash_table_insert (effects->shaderstable, "xray4", shader);  }  if (!gst_gl_shader_compile_and_check (shader,          multiply_fragment_source, GST_GL_SHADER_FRAGMENT_SOURCE)) {    gst_gl_display_set_error (GST_GL_FILTER (effects)->display,        "Failed to initialize multiply shader");    GST_ELEMENT_ERROR (effects, RESOURCE, NOT_FOUND,        GST_GL_DISPLAY_ERR_MSG (GST_GL_FILTER (effects)->display), (NULL));    return;  }  glMatrixMode (GL_PROJECTION);  glLoadIdentity ();  gst_gl_shader_use (shader);  glActiveTexture (GL_TEXTURE2);  glEnable (GL_TEXTURE_RECTANGLE_ARB);  glBindTexture (GL_TEXTURE_RECTANGLE_ARB, effects->midtexture[2]);  glDisable (GL_TEXTURE_RECTANGLE_ARB);  gst_gl_shader_set_uniform_1i (shader, "base", 2);  glActiveTexture (GL_TEXTURE1);  glEnable (GL_TEXTURE_RECTANGLE_ARB);  glBindTexture (GL_TEXTURE_RECTANGLE_ARB, texture);  glDisable (GL_TEXTURE_RECTANGLE_ARB);  gst_gl_shader_set_uniform_1f (shader, "alpha", (gfloat) 0.5f);  gst_gl_shader_set_uniform_1i (shader, "blend", 1);  gst_gl_effects_draw_texture (effects, texture);}
开发者ID:PeterXu,项目名称:gst-mobile,代码行数:45,


示例19: gst_gl_effects_xray_step_two

static voidgst_gl_effects_xray_step_two (gint width, gint height, guint texture,    gpointer data){  GstGLEffects *effects = GST_GL_EFFECTS (data);  GstGLShader *shader;  shader = g_hash_table_lookup (effects->shaderstable, "xray1");  if (!shader) {    shader = gst_gl_shader_new ();    g_hash_table_insert (effects->shaderstable, "xray1", shader);  }  if (!kernel_ready) {    fill_gaussian_kernel (gauss_kernel, 7, 1.5);    kernel_ready = TRUE;  }  if (!gst_gl_shader_compile_and_check (shader,          hconv7_fragment_source, GST_GL_SHADER_FRAGMENT_SOURCE)) {    gst_gl_display_set_error (GST_GL_FILTER (effects)->display,        "Failed to initialize hconv7 shader");    GST_ELEMENT_ERROR (effects, RESOURCE, NOT_FOUND,        GST_GL_DISPLAY_ERR_MSG (GST_GL_FILTER (effects)->display), (NULL));    return;  }  glMatrixMode (GL_PROJECTION);  glLoadIdentity ();  gst_gl_shader_use (shader);  glActiveTexture (GL_TEXTURE1);  glEnable (GL_TEXTURE_RECTANGLE_ARB);  glBindTexture (GL_TEXTURE_RECTANGLE_ARB, texture);  glDisable (GL_TEXTURE_RECTANGLE_ARB);  gst_gl_shader_set_uniform_1i (shader, "tex", 1);  gst_gl_shader_set_uniform_1fv (shader, "kernel", 9, gauss_kernel);  gst_gl_effects_draw_texture (effects, texture);}
开发者ID:PeterXu,项目名称:gst-mobile,代码行数:43,


示例20: gst_gl_filter_glass_callback

//opengl scene, params: input texture (not the output filter->texture)static voidgst_gl_filter_glass_callback (gpointer stuff){  static gint64 start_time = 0;  gfloat rotation;  GstGLFilter *filter = GST_GL_FILTER (stuff);  GstGLFilterGlass *glass_filter = GST_GL_FILTER_GLASS (stuff);  GstGLFuncs *gl = GST_GL_BASE_FILTER (filter)->context->gl_vtable;  gint width = GST_VIDEO_INFO_WIDTH (&filter->out_info);  gint height = GST_VIDEO_INFO_HEIGHT (&filter->out_info);  guint texture = glass_filter->in_tex;  if (start_time == 0)    start_time = get_time ();  else {    gint64 time_left =        (glass_filter->timestamp / 1000) - (get_time () - start_time);    time_left -= 1000000 / 25;    if (time_left > 2000) {      GST_LOG ("escape");      return;    }  }  gst_gl_shader_use (glass_filter->passthrough_shader);  gst_gl_filter_glass_draw_background_gradient (glass_filter);  //Rotation  if (start_time != 0) {    gint64 time_passed = get_time () - start_time;    rotation = sin (time_passed / 1200000.0) * 45.0f;  } else {    rotation = 0.0f;  }  gl->Enable (GL_BLEND);  gl->BlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);  gst_gl_shader_use (glass_filter->shader);  //Reflection  gst_gl_filter_glass_draw_video_plane (filter, width, height, texture,      0.0f, 2.0f, 0.3f, 0.0f, TRUE, rotation);  //Main video  gst_gl_filter_glass_draw_video_plane (filter, width, height, texture,      0.0f, 0.0f, 1.0f, 1.0f, FALSE, rotation);  gst_gl_context_clear_shader (GST_GL_BASE_FILTER (filter)->context);  gl->Disable (GL_BLEND);}
开发者ID:Distrotech,项目名称:gst-plugins-bad,代码行数:56,


示例21: gst_gl_overlay_draw_texture

voidgst_gl_overlay_draw_texture (GstGLOverlay * overlay, GLuint tex){  GstGLFilter *filter = GST_GL_FILTER (overlay);  gfloat width = (gfloat) filter->width;  gfloat height = (gfloat) filter->height;  glActiveTexture (GL_TEXTURE0);  glEnable (GL_TEXTURE_RECTANGLE_ARB);  glBindTexture (GL_TEXTURE_RECTANGLE_ARB, tex);  glBegin (GL_QUADS);  glTexCoord2f (0.0, 0.0);  glVertex2f (-1.0, -1.0);  glTexCoord2f (width, 0.0);  glVertex2f (1.0, -1.0);  glTexCoord2f (width, height);  glVertex2f (1.0, 1.0);  glTexCoord2f (0.0, height);  glVertex2f (-1.0, 1.0);  glEnd ();  if (overlay->pbuftexture == 0)    return;//  if (overlay->stretch) {  width = (gfloat) overlay->width;  height = (gfloat) overlay->height;//  }  glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);  glEnable (GL_BLEND);  glEnable (GL_TEXTURE_RECTANGLE_ARB);  glBindTexture (GL_TEXTURE_RECTANGLE_ARB, overlay->pbuftexture);  glBegin (GL_QUADS);  glTexCoord2f (0.0, 0.0);  glVertex2f (-1.0, -1.0);  glTexCoord2f (width, 0.0);  glVertex2f (1.0, -1.0);  glTexCoord2f (width, height);  glVertex2f (1.0, 1.0);  glTexCoord2f (0.0, height);  glVertex2f (-1.0, 1.0);  glEnd ();  glFlush ();}
开发者ID:zsx,项目名称:ossbuild,代码行数:55,


示例22: gst_gl_filter_start

static gbooleangst_gl_filter_start (GstBaseTransform * bt){  GstGLFilter *filter = GST_GL_FILTER (bt);  GstGLFilterClass *filter_class = GST_GL_FILTER_GET_CLASS (filter);  if (filter_class->onStart)    filter_class->onStart (filter);  return TRUE;}
开发者ID:zsx,项目名称:ossbuild,代码行数:11,


示例23: gst_gl_effects_sin

voidgst_gl_effects_sin (GstGLEffects * effects){  GstGLFilter *filter = GST_GL_FILTER (effects);  GstGLShader *shader;  shader = gst_gl_effects_get_fragment_shader (effects, "sin",      sin_fragment_source_gles2);  gst_gl_filter_render_to_target_with_shader (filter, effects->intexture,      effects->outtexture, shader);}
开发者ID:CogentEmbedded,项目名称:gst-plugins-bad,代码行数:11,


示例24: gst_gl_deinterlace_callback

//opengl scene, params: input texture (not the output filter->texture)static voidgst_gl_deinterlace_callback (gint width, gint height, guint texture,    gpointer stuff){  GstGLDeinterlace *deinterlace_filter = GST_GL_DEINTERLACE (stuff);  GstGLFilter *filter = GST_GL_FILTER (stuff);  GstGLBuffer *gl_buffer_prev = deinterlace_filter->gl_buffer_prev;  glMatrixMode (GL_PROJECTION);  glLoadIdentity ();  gst_gl_shader_use (deinterlace_filter->shader);  glEnable (GL_TEXTURE_RECTANGLE_ARB);  if (gl_buffer_prev) {    glActiveTexture (GL_TEXTURE1_ARB);    gst_gl_shader_set_uniform_1i (deinterlace_filter->shader, "tex_prev", 1);    glBindTexture (GL_TEXTURE_RECTANGLE_ARB, gl_buffer_prev->texture);  }  glActiveTexture (GL_TEXTURE0_ARB);  gst_gl_shader_set_uniform_1i (deinterlace_filter->shader, "tex", 0);  glBindTexture (GL_TEXTURE_RECTANGLE_ARB, texture);  gst_gl_shader_set_uniform_1f (deinterlace_filter->shader, "max_comb",      5.0f / 255.0f);  gst_gl_shader_set_uniform_1f (deinterlace_filter->shader, "motion_threshold",      25.0f / 255.0f);  gst_gl_shader_set_uniform_1f (deinterlace_filter->shader, "motion_sense",      30.0f / 255.0f);  gst_gl_shader_set_uniform_1i (deinterlace_filter->shader, "width",      filter->width);  gst_gl_shader_set_uniform_1i (deinterlace_filter->shader, "height",      filter->height);  glBegin (GL_QUADS);  glMultiTexCoord2iARB (GL_TEXTURE0_ARB, 0, 0);  glMultiTexCoord2iARB (GL_TEXTURE1_ARB, 0, 0);  glVertex2i (-1, -1);  glMultiTexCoord2iARB (GL_TEXTURE0_ARB, width, 0);  glMultiTexCoord2iARB (GL_TEXTURE1_ARB, width, 0);  glVertex2i (1, -1);  glMultiTexCoord2iARB (GL_TEXTURE0_ARB, width, height);  glMultiTexCoord2iARB (GL_TEXTURE1_ARB, width, height);  glVertex2i (1, 1);  glMultiTexCoord2iARB (GL_TEXTURE0_ARB, 0, height);  glMultiTexCoord2iARB (GL_TEXTURE1_ARB, 0, height);  glVertex2i (-1, 1);  glEnd ();  glDisable (GL_TEXTURE_RECTANGLE_ARB);}
开发者ID:PeterXu,项目名称:gst-mobile,代码行数:55,


示例25: gst_gl_effects_twirl_callback

static voidgst_gl_effects_twirl_callback (gint width, gint height, guint texture,    gpointer data){  GstGLShader *shader;  GstGLEffects *effects = GST_GL_EFFECTS (data);  GstGLFilter *filter = GST_GL_FILTER (effects);  GstGLContext *context = filter->context;  GstGLFuncs *gl = context->gl_vtable;  shader = g_hash_table_lookup (effects->shaderstable, "twirl0");  if (!shader) {    shader = gst_gl_shader_new (GST_GL_FILTER (effects)->context);    g_hash_table_insert (effects->shaderstable, (gchar *) "twirl0", shader);  }  if (!gst_gl_shader_compile_and_check (shader,          twirl_fragment_source, GST_GL_SHADER_FRAGMENT_SOURCE)) {    gst_gl_context_set_error (context, "Failed to initialize twirl shader");    GST_ELEMENT_ERROR (effects, RESOURCE, NOT_FOUND,        ("%s", gst_gl_context_get_error ()), (NULL));    return;  }  gl->MatrixMode (GL_PROJECTION);  gl->LoadIdentity ();  gst_gl_shader_use (shader);  gl->ActiveTexture (GL_TEXTURE0);  gl->Enable (GL_TEXTURE_2D);  gl->BindTexture (GL_TEXTURE_2D, texture);  gst_gl_shader_set_uniform_1i (shader, "tex", 0);  gst_gl_shader_set_uniform_1f (shader, "width", (gfloat) width / 2.0f);  gst_gl_shader_set_uniform_1f (shader, "height", (gfloat) height / 2.0f);  gst_gl_filter_draw_texture (filter, texture, width, height);}
开发者ID:Lachann,项目名称:gst-plugins-bad,代码行数:41,


示例26: gst_gl_differencematte_save_texture

static voidgst_gl_differencematte_save_texture (gint width, gint height, guint texture,    gpointer stuff){  GstGLFilter *filter = GST_GL_FILTER (stuff);  GstGLFuncs *gl = GST_GL_BASE_FILTER (filter)->context->gl_vtable;  gl->MatrixMode (GL_PROJECTION);  gl->LoadIdentity ();  gst_gl_filter_draw_texture (filter, texture, width, height);}
开发者ID:ndufresne,项目名称:gst-plugins-bad,代码行数:12,


示例27: gst_gl_effects_stretch_callback

static voidgst_gl_effects_stretch_callback (gint width, gint height, guint texture,    gpointer data){  GstGLEffects *effects = GST_GL_EFFECTS (data);  GstGLShader *shader;  shader = g_hash_table_lookup (effects->shaderstable, "stretch0");  if (!shader) {    shader = gst_gl_shader_new ();    g_hash_table_insert (effects->shaderstable, "stretch0", shader);  }  if (!gst_gl_shader_compile_and_check (shader,          stretch_fragment_source, GST_GL_SHADER_FRAGMENT_SOURCE)) {    gst_gl_display_set_error (GST_GL_FILTER (effects)->display,        "Failed to initialize stretch shader");    GST_ELEMENT_ERROR (effects, RESOURCE, NOT_FOUND,        GST_GL_DISPLAY_ERR_MSG (GST_GL_FILTER (effects)->display), (NULL));    return;  }  glMatrixMode (GL_PROJECTION);  glLoadIdentity ();  gst_gl_shader_use (shader);  glActiveTexture (GL_TEXTURE0);  glEnable (GL_TEXTURE_RECTANGLE_ARB);  glBindTexture (GL_TEXTURE_RECTANGLE_ARB, texture);  gst_gl_shader_set_uniform_1i (shader, "tex", 0);  gst_gl_shader_set_uniform_1f (shader, "width", (gfloat) width / 2.0f);  gst_gl_shader_set_uniform_1f (shader, "height", (gfloat) height / 2.0f);  gst_gl_effects_draw_texture (effects, texture);}
开发者ID:PeterXu,项目名称:gst-mobile,代码行数:40,


示例28: _compile_identity_shader

static void_compile_identity_shader (GstGLContext * context, GstGLColorscale * colorscale){  GstGLFilter *filter = GST_GL_FILTER (colorscale);  colorscale->shader = gst_gl_shader_new (context);  if (!gst_gl_shader_compile_with_default_vf_and_check (colorscale->shader,          &filter->draw_attr_position_loc, &filter->draw_attr_texture_loc)) {    gst_gl_context_clear_shader (context);    gst_object_unref (colorscale->shader);    colorscale->shader = NULL;  }}
开发者ID:Distrotech,项目名称:gst-plugins-bad,代码行数:14,


示例29: gst_gl_overlay_init_texture

static voidgst_gl_overlay_init_texture (GstGLOverlay * o, GLuint tex, int flag){  GstGLFilter *filter = GST_GL_FILTER (o);  const GstGLFuncs *gl = filter->context->gl_vtable;  if (flag == 0 && o->type_file == 2) {    gl->Enable (GL_TEXTURE_2D);    gl->BindTexture (GL_TEXTURE_2D, tex);  } else {    gl->Enable (GL_TEXTURE_2D);    gl->BindTexture (GL_TEXTURE_2D, tex);  }}
开发者ID:asdlei00,项目名称:gst-plugins-bad,代码行数:14,


示例30: gst_gl_filter_transform

static GstFlowReturngst_gl_filter_transform (GstBaseTransform * bt, GstBuffer * inbuf,    GstBuffer * outbuf){  GstGLFilter *filter;  GstGLBuffer *gl_inbuf = GST_GL_BUFFER (inbuf);  GstGLBuffer *gl_outbuf = GST_GL_BUFFER (outbuf);  filter = GST_GL_FILTER (bt);  gst_gl_filter_do_transform (filter, gl_inbuf, gl_outbuf);  return GST_FLOW_OK;}
开发者ID:zsx,项目名称:ossbuild,代码行数:14,



注:本文中的GST_GL_FILTER函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ GST_INFO函数代码示例
C++ GST_GHOST_PAD函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。