[155/906] fix some errors and check all the pipelines listed in tests/pipelines

This commit is contained in:
Julien Isorce 2008-08-13 16:01:21 +02:00 committed by Matthew Waters
parent 4fc5dab530
commit 8e8a9b8fd5
4 changed files with 89 additions and 72 deletions

View File

@ -1,5 +1,22 @@
known issues: known issues:
- - gst-launch-0.10 videotestsrc ! glupload ! gldownload ! glimagesink
(or glcolorspace instead of glupload ! gldownload)
-> crash on linux when stopping (num_buffers=N or after clicking on the window cross)
(was working on win32)
(gst-launch-0.10 videotestsrc ! glupload ! gldownload ! glupload ! gldownload ! glupload ! gldownload ! ximagesink
crash when stopping)
(but not gst-launch-0.10 videotestsrc ! glupload ! gldownload ! glupload ! gldownload ! ximagesink)
log: ( Définition du pipeline à READY (prêt)...
Context 1 destroyed
Définition du pipeline à NULL...
Caught SIGSEGV accessing address 0x40 )
- gst-launch-0.10 videotestsrc ! tee name=t t. ! queue ! glimagesink t. ! queue ! glimagesink t. ! queue ! glimagesink
-> crash on linux when stopping (was working on win32 too)
It look likes it's related to the first issue.
- gst-launch-0.10 videotestsrc ! "video/x-raw-yuv, format=(fourcc)YV12" ! glimagesink
-> wrong color on linux (it look likes it uses text_shader_upload_I420 instead of YV12)
(I remember it was working on win32, so maybe we have made a regression)

View File

@ -1,4 +1,4 @@
/* /*
* GStreamer * GStreamer
* Copyright (C) 2008 Julien Isorce <julien.isorce@gmail.com> * Copyright (C) 2008 Julien Isorce <julien.isorce@gmail.com>
* *
@ -28,7 +28,7 @@
#define GST_CAT_DEFAULT gst_gl_colorscale_debug #define GST_CAT_DEFAULT gst_gl_colorscale_debug
GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT); GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
static const GstElementDetails element_details = static const GstElementDetails element_details =
GST_ELEMENT_DETAILS ("OpenGL color scale", GST_ELEMENT_DETAILS ("OpenGL color scale",
"Filter/Effect", "Filter/Effect",
"Colorspace converter and video scaler", "Colorspace converter and video scaler",
@ -134,7 +134,7 @@ gst_gl_colorscale_set_property (GObject* object, guint prop_id,
{ {
//GstGLColorscale* colorscale = GST_GL_COLORSCALE (object); //GstGLColorscale* colorscale = GST_GL_COLORSCALE (object);
switch (prop_id) switch (prop_id)
{ {
default: default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@ -148,7 +148,7 @@ gst_gl_colorscale_get_property (GObject* object, guint prop_id,
{ {
//GstGLColorscale *colorscale = GST_GL_COLORSCALE (object); //GstGLColorscale *colorscale = GST_GL_COLORSCALE (object);
switch (prop_id) switch (prop_id)
{ {
default: default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@ -158,8 +158,8 @@ gst_gl_colorscale_get_property (GObject* object, guint prop_id,
static void static void
gst_gl_colorscale_reset (GstGLColorscale* colorscale) gst_gl_colorscale_reset (GstGLColorscale* colorscale)
{ {
if (colorscale->display) if (colorscale->display)
{ {
g_object_unref (colorscale->display); g_object_unref (colorscale->display);
colorscale->display = NULL; colorscale->display = NULL;
@ -195,7 +195,7 @@ gst_gl_colorscale_transform_caps (GstBaseTransform* bt,
const GValue* framerate_value = NULL; const GValue* framerate_value = NULL;
const GValue* par_value = NULL; const GValue* par_value = NULL;
GST_ERROR ("transform caps %" GST_PTR_FORMAT, caps); GST_DEBUG ("transform caps %" GST_PTR_FORMAT, caps);
framerate_value = gst_structure_get_value (structure, "framerate"); framerate_value = gst_structure_get_value (structure, "framerate");
par_value = gst_structure_get_value (structure, "pixel-aspect-ratio"); par_value = gst_structure_get_value (structure, "pixel-aspect-ratio");
@ -208,7 +208,7 @@ gst_gl_colorscale_transform_caps (GstBaseTransform* bt,
gst_structure_set (structure, gst_structure_set (structure,
"width", GST_TYPE_INT_RANGE, 1, G_MAXINT, "width", GST_TYPE_INT_RANGE, 1, G_MAXINT,
"height", GST_TYPE_INT_RANGE, 1, G_MAXINT, NULL); "height", GST_TYPE_INT_RANGE, 1, G_MAXINT, NULL);
gst_structure_set_value (structure, "framerate", framerate_value); gst_structure_set_value (structure, "framerate", framerate_value);
if (par_value) if (par_value)
gst_structure_set_value (structure, "pixel-aspect-ratio", par_value); gst_structure_set_value (structure, "pixel-aspect-ratio", par_value);
@ -218,7 +218,7 @@ gst_gl_colorscale_transform_caps (GstBaseTransform* bt,
gst_caps_merge_structure (newcaps, gst_structure_copy (structure)); gst_caps_merge_structure (newcaps, gst_structure_copy (structure));
GST_ERROR ("new caps %" GST_PTR_FORMAT, newcaps); GST_DEBUG ("new caps %" GST_PTR_FORMAT, newcaps);
return newcaps; return newcaps;
} }
@ -244,7 +244,7 @@ gst_gl_colorscale_fixate_caps (GstBaseTransform* base, GstPadDirection direction
to_par = gst_structure_get_value (outs, "pixel-aspect-ratio"); to_par = gst_structure_get_value (outs, "pixel-aspect-ratio");
//we have both PAR but they might not be fixated //we have both PAR but they might not be fixated
if (from_par && to_par) if (from_par && to_par)
{ {
gint from_w, from_h, from_par_n, from_par_d, to_par_n, to_par_d; gint from_w, from_h, from_par_n, from_par_d, to_par_n, to_par_d;
@ -259,7 +259,7 @@ gst_gl_colorscale_fixate_caps (GstBaseTransform* base, GstPadDirection direction
from_par_d = gst_value_get_fraction_denominator (from_par); from_par_d = gst_value_get_fraction_denominator (from_par);
//fixate the out PAR //fixate the out PAR
if (!gst_value_is_fixed (to_par)) if (!gst_value_is_fixed (to_par))
{ {
GST_DEBUG_OBJECT (base, "fixating to_par to %dx%d", from_par_n, GST_DEBUG_OBJECT (base, "fixating to_par to %dx%d", from_par_n,
from_par_d); from_par_d);
@ -271,12 +271,12 @@ gst_gl_colorscale_fixate_caps (GstBaseTransform* base, GstPadDirection direction
to_par_d = gst_value_get_fraction_denominator (to_par); to_par_d = gst_value_get_fraction_denominator (to_par);
//f both width and height are already fixed, we can't do anything //f both width and height are already fixed, we can't do anything
//about it anymore //about it anymore
if (gst_structure_get_int (outs, "width", &w)) if (gst_structure_get_int (outs, "width", &w))
++count; ++count;
if (gst_structure_get_int (outs, "height", &h)) if (gst_structure_get_int (outs, "height", &h))
++count; ++count;
if (count == 2) if (count == 2)
{ {
GST_DEBUG_OBJECT (base, "dimensions already set to %dx%d, not fixating", GST_DEBUG_OBJECT (base, "dimensions already set to %dx%d, not fixating",
w, h); w, h);
@ -287,7 +287,7 @@ gst_gl_colorscale_fixate_caps (GstBaseTransform* base, GstPadDirection direction
gst_structure_get_int (ins, "height", &from_h); gst_structure_get_int (ins, "height", &from_h);
if (!gst_video_calculate_display_ratio (&num, &den, from_w, from_h, if (!gst_video_calculate_display_ratio (&num, &den, from_w, from_h,
from_par_n, from_par_d, to_par_n, to_par_d)) from_par_n, from_par_d, to_par_n, to_par_d))
{ {
GST_ELEMENT_ERROR (base, CORE, NEGOTIATION, (NULL), GST_ELEMENT_ERROR (base, CORE, NEGOTIATION, (NULL),
("Error calculating the output scaled size - integer overflow")); ("Error calculating the output scaled size - integer overflow"));
@ -304,35 +304,35 @@ gst_gl_colorscale_fixate_caps (GstBaseTransform* base, GstPadDirection direction
//prefer those that have one of w/h the same as the incoming video //prefer those that have one of w/h the same as the incoming video
//using wd / hd = num / den //using wd / hd = num / den
//if one of the output width or height is fixed, we work from there //if one of the output width or height is fixed, we work from there
if (h) if (h)
{ {
GST_DEBUG_OBJECT (base, "height is fixed,scaling width"); GST_DEBUG_OBJECT (base, "height is fixed,scaling width");
w = (guint) gst_util_uint64_scale_int (h, num, den); w = (guint) gst_util_uint64_scale_int (h, num, den);
} }
else if (w) else if (w)
{ {
GST_DEBUG_OBJECT (base, "width is fixed, scaling height"); GST_DEBUG_OBJECT (base, "width is fixed, scaling height");
h = (guint) gst_util_uint64_scale_int (w, den, num); h = (guint) gst_util_uint64_scale_int (w, den, num);
} }
else else
{ {
//none of width or height is fixed, figure out both of them based only on //none of width or height is fixed, figure out both of them based only on
//the input width and height //the input width and height
//check hd / den is an integer scale factor, and scale wd with the PAR //check hd / den is an integer scale factor, and scale wd with the PAR
if (from_h % den == 0) if (from_h % den == 0)
{ {
GST_DEBUG_OBJECT (base, "keeping video height"); GST_DEBUG_OBJECT (base, "keeping video height");
h = from_h; h = from_h;
w = (guint) gst_util_uint64_scale_int (h, num, den); w = (guint) gst_util_uint64_scale_int (h, num, den);
} }
else if (from_w % num == 0) else if (from_w % num == 0)
{ {
GST_DEBUG_OBJECT (base, "keeping video width"); GST_DEBUG_OBJECT (base, "keeping video width");
w = from_w; w = from_w;
h = (guint) gst_util_uint64_scale_int (w, den, num); h = (guint) gst_util_uint64_scale_int (w, den, num);
} }
else else
{ {
GST_DEBUG_OBJECT (base, "approximating but keeping video height"); GST_DEBUG_OBJECT (base, "approximating but keeping video height");
h = from_h; h = from_h;
@ -344,14 +344,14 @@ gst_gl_colorscale_fixate_caps (GstBaseTransform* base, GstPadDirection direction
//now fixate //now fixate
gst_structure_fixate_field_nearest_int (outs, "width", w); gst_structure_fixate_field_nearest_int (outs, "width", w);
gst_structure_fixate_field_nearest_int (outs, "height", h); gst_structure_fixate_field_nearest_int (outs, "height", h);
} }
else else
{ {
gint width, height; gint width, height;
if (gst_structure_get_int (ins, "width", &width)) if (gst_structure_get_int (ins, "width", &width))
{ {
if (gst_structure_has_field (outs, "width")) if (gst_structure_has_field (outs, "width"))
gst_structure_fixate_field_nearest_int (outs, "width", width); gst_structure_fixate_field_nearest_int (outs, "width", width);
} }
if (gst_structure_get_int (ins, "height", &height)) { if (gst_structure_get_int (ins, "height", &height)) {
@ -380,22 +380,22 @@ gst_gl_colorscale_set_caps (GstBaseTransform* bt, GstCaps* incaps,
ret |= gst_video_format_parse_caps (incaps, &colorscale->input_video_format, ret |= gst_video_format_parse_caps (incaps, &colorscale->input_video_format,
&colorscale->input_video_width, &colorscale->input_video_height); &colorscale->input_video_width, &colorscale->input_video_height);
if (!ret) if (!ret)
{ {
GST_DEBUG ("bad caps"); GST_DEBUG ("bad caps");
return FALSE; return FALSE;
} }
colorscale->display = gst_gl_display_new (); colorscale->display = gst_gl_display_new ();
//init unvisible opengl context //init unvisible opengl context
gst_gl_display_create_context (colorscale->display, gst_gl_display_create_context (colorscale->display,
50, y_pos++ * (colorscale->output_video_height+50) + 50, 50, y_pos++ * (colorscale->output_video_height+50) + 50,
colorscale->output_video_width, colorscale->output_video_height, colorscale->output_video_width, colorscale->output_video_height,
0, FALSE); 0, FALSE);
//blocking call, init colorspace conversion if needed //blocking call, init colorspace conversion if needed
gst_gl_display_init_upload (colorscale->display, colorscale->input_video_format, gst_gl_display_init_upload (colorscale->display, colorscale->input_video_format,
colorscale->output_video_width, colorscale->output_video_height); colorscale->output_video_width, colorscale->output_video_height);
//blocking call, init colorspace conversion if needed //blocking call, init colorspace conversion if needed
@ -415,18 +415,18 @@ gst_gl_colorscale_get_unit_size (GstBaseTransform* trans, GstCaps* caps,
gint height; gint height;
structure = gst_caps_get_structure (caps, 0); structure = gst_caps_get_structure (caps, 0);
if (gst_structure_has_name (structure, "video/x-raw-gl")) if (gst_structure_has_name (structure, "video/x-raw-gl"))
{ {
ret = gst_gl_buffer_parse_caps (caps, &width, &height); ret = gst_gl_buffer_parse_caps (caps, &width, &height);
if (ret) if (ret)
*size = gst_gl_buffer_get_size (width, height); *size = gst_gl_buffer_get_size (width, height);
} }
else else
{ {
GstVideoFormat video_format; GstVideoFormat video_format;
ret = gst_video_format_parse_caps (caps, &video_format, &width, &height); ret = gst_video_format_parse_caps (caps, &video_format, &width, &height);
if (ret) if (ret)
*size = gst_video_format_get_size (video_format, width, height); *size = gst_video_format_get_size (video_format, width, height);
} }
@ -448,22 +448,22 @@ gst_gl_colorscale_transform (GstBaseTransform* trans, GstBuffer* inbuf,
GST_BUFFER_DATA (inbuf), GST_BUFFER_SIZE (inbuf)); GST_BUFFER_DATA (inbuf), GST_BUFFER_SIZE (inbuf));
//blocking call //blocking call
isAlive = gst_gl_display_do_upload (colorscale->display, gl_temp_buffer->texture, isAlive = gst_gl_display_do_upload (colorscale->display, gl_temp_buffer->texture,
colorscale->input_video_width, colorscale->input_video_height, colorscale->input_video_width, colorscale->input_video_height,
GST_BUFFER_DATA (inbuf)); GST_BUFFER_DATA (inbuf));
GST_DEBUG ("output size %p size %d", GST_DEBUG ("output size %p size %d",
GST_BUFFER_DATA (outbuf), GST_BUFFER_SIZE (outbuf)); GST_BUFFER_DATA (outbuf), GST_BUFFER_SIZE (outbuf));
//blocking call //blocking call
isAlive &= gst_gl_display_do_download(colorscale->display, gl_temp_buffer->texture, isAlive &= gst_gl_display_do_download(colorscale->display, gl_temp_buffer->texture,
gl_temp_buffer->width, gl_temp_buffer->height, gl_temp_buffer->width, gl_temp_buffer->height,
GST_BUFFER_DATA (outbuf)); GST_BUFFER_DATA (outbuf));
gst_buffer_unref (gl_temp_buffer); gst_buffer_unref (gl_temp_buffer);
if (isAlive) if (isAlive)
return GST_FLOW_OK; return GST_FLOW_OK;
else else
return GST_FLOW_UNEXPECTED; return GST_FLOW_UNEXPECTED;
} }

View File

@ -1,4 +1,4 @@
/* /*
* GStreamer * GStreamer
* Copyright (C) 2008 Julien Isorce <julien.isorce@gmail.com> * Copyright (C) 2008 Julien Isorce <julien.isorce@gmail.com>
* *
@ -27,7 +27,7 @@
#define GST_CAT_DEFAULT gst_gl_download_debug #define GST_CAT_DEFAULT gst_gl_download_debug
GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT); GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT);
static const GstElementDetails element_details = static const GstElementDetails element_details =
GST_ELEMENT_DETAILS ("OpenGL video maker", GST_ELEMENT_DETAILS ("OpenGL video maker",
"Filter/Effect", "Filter/Effect",
"A from GL to video flow filter", "A from GL to video flow filter",
@ -127,7 +127,7 @@ gst_gl_download_set_property (GObject* object, guint prop_id,
{ {
//GstGLDownload *download = GST_GL_DOWNLOAD (object); //GstGLDownload *download = GST_GL_DOWNLOAD (object);
switch (prop_id) switch (prop_id)
{ {
default: default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@ -153,7 +153,7 @@ gst_gl_download_get_property (GObject* object, guint prop_id,
static void static void
gst_gl_download_reset (GstGLDownload* download) gst_gl_download_reset (GstGLDownload* download)
{ {
if (download->display) if (download->display)
{ {
g_object_unref (download->display); g_object_unref (download->display);
download->display = NULL; download->display = NULL;
@ -194,7 +194,7 @@ gst_gl_download_transform_caps (GstBaseTransform * bt,
download = GST_GL_DOWNLOAD (bt); download = GST_GL_DOWNLOAD (bt);
GST_ERROR ("transform caps %" GST_PTR_FORMAT, caps); GST_DEBUG ("transform caps %" GST_PTR_FORMAT, caps);
structure = gst_caps_get_structure (caps, 0); structure = gst_caps_get_structure (caps, 0);
@ -203,7 +203,7 @@ gst_gl_download_transform_caps (GstBaseTransform * bt,
framerate_value = gst_structure_get_value (structure, "framerate"); framerate_value = gst_structure_get_value (structure, "framerate");
par_value = gst_structure_get_value (structure, "pixel-aspect-ratio"); par_value = gst_structure_get_value (structure, "pixel-aspect-ratio");
if (direction == GST_PAD_SINK) if (direction == GST_PAD_SINK)
{ {
newothercaps = gst_caps_new_simple ("video/x-raw-rgb", NULL); newothercaps = gst_caps_new_simple ("video/x-raw-rgb", NULL);
newstruct = gst_caps_get_structure (newothercaps, 0); newstruct = gst_caps_get_structure (newothercaps, 0);
@ -217,7 +217,7 @@ gst_gl_download_transform_caps (GstBaseTransform * bt,
1, 1, NULL); 1, 1, NULL);
newcaps = gst_caps_new_simple ("video/x-raw-yuv", NULL); newcaps = gst_caps_new_simple ("video/x-raw-yuv", NULL);
gst_caps_append(newcaps, newothercaps); gst_caps_append(newcaps, newothercaps);
} }
else newcaps = gst_caps_new_simple ("video/x-raw-gl", NULL); else newcaps = gst_caps_new_simple ("video/x-raw-gl", NULL);
newstruct = gst_caps_get_structure (newcaps, 0); newstruct = gst_caps_get_structure (newcaps, 0);
@ -230,7 +230,7 @@ gst_gl_download_transform_caps (GstBaseTransform * bt,
gst_structure_set (newstruct, "pixel-aspect-ratio", GST_TYPE_FRACTION, gst_structure_set (newstruct, "pixel-aspect-ratio", GST_TYPE_FRACTION,
1, 1, NULL); 1, 1, NULL);
GST_ERROR ("new caps %" GST_PTR_FORMAT, newcaps); GST_DEBUG ("new caps %" GST_PTR_FORMAT, newcaps);
return newcaps; return newcaps;
} }
@ -249,7 +249,7 @@ gst_gl_download_set_caps (GstBaseTransform* bt, GstCaps* incaps,
ret = gst_video_format_parse_caps (outcaps, &download->video_format, ret = gst_video_format_parse_caps (outcaps, &download->video_format,
&download->width, &download->height); &download->width, &download->height);
if (!ret) if (!ret)
{ {
GST_ERROR ("bad caps"); GST_ERROR ("bad caps");
return FALSE; return FALSE;
@ -268,17 +268,17 @@ gst_gl_download_get_unit_size (GstBaseTransform* trans, GstCaps* caps,
gint height; gint height;
structure = gst_caps_get_structure (caps, 0); structure = gst_caps_get_structure (caps, 0);
if (gst_structure_has_name (structure, "video/x-raw-gl")) if (gst_structure_has_name (structure, "video/x-raw-gl"))
{ {
ret = gst_gl_buffer_parse_caps (caps, &width, &height); ret = gst_gl_buffer_parse_caps (caps, &width, &height);
if (ret) if (ret)
*size = gst_gl_buffer_get_size (width, height); *size = gst_gl_buffer_get_size (width, height);
} }
else else
{ {
GstVideoFormat video_format; GstVideoFormat video_format;
ret = gst_video_format_parse_caps (caps, &video_format, &width, &height); ret = gst_video_format_parse_caps (caps, &video_format, &width, &height);
if (ret) if (ret)
*size = gst_video_format_get_size (video_format, width, height); *size = gst_video_format_get_size (video_format, width, height);
} }
@ -292,7 +292,7 @@ gst_gl_download_transform (GstBaseTransform* trans, GstBuffer* inbuf,
GstGLDownload* download = GST_GL_DOWNLOAD (trans); GstGLDownload* download = GST_GL_DOWNLOAD (trans);
GstGLBuffer* gl_inbuf = GST_GL_BUFFER (inbuf); GstGLBuffer* gl_inbuf = GST_GL_BUFFER (inbuf);
if (download->display == NULL) if (download->display == NULL)
{ {
download->display = g_object_ref (gl_inbuf->display); download->display = g_object_ref (gl_inbuf->display);
@ -300,14 +300,14 @@ gst_gl_download_transform (GstBaseTransform* trans, GstBuffer* inbuf,
gst_gl_display_init_download (download->display, download->video_format, gst_gl_display_init_download (download->display, download->video_format,
download->width, download->height); download->width, download->height);
} }
else else
g_assert (download->display == gl_inbuf->display); g_assert (download->display == gl_inbuf->display);
GST_DEBUG ("making video %p size %d", GST_DEBUG ("making video %p size %d",
GST_BUFFER_DATA (outbuf), GST_BUFFER_SIZE (outbuf)); GST_BUFFER_DATA (outbuf), GST_BUFFER_SIZE (outbuf));
//blocking call //blocking call
if (gst_gl_display_do_download(download->display, gl_inbuf->texture, if (gst_gl_display_do_download(download->display, gl_inbuf->texture,
gl_inbuf->width, gl_inbuf->height, GST_BUFFER_DATA (outbuf))) gl_inbuf->width, gl_inbuf->height, GST_BUFFER_DATA (outbuf)))
return GST_FLOW_OK; return GST_FLOW_OK;
else else

View File

@ -63,7 +63,7 @@ typedef void (* GstGLEffectProcessFunc) (GstGLEffects *effects);
struct _GstGLEffects struct _GstGLEffects
{ {
GstGLFilter filter; GstGLFilter filter;
GstGLEffectProcessFunc effect; GstGLEffectProcessFunc effect;
GLuint intexture; GLuint intexture;
@ -125,9 +125,9 @@ gst_gl_effects_effect_get_type (void)
{ GST_GL_EFFECT_TEST, "Test Effect", "test" }, { GST_GL_EFFECT_TEST, "Test Effect", "test" },
{ 0, NULL, NULL } { 0, NULL, NULL }
}; };
if (!gl_effects_effect_type) { if (!gl_effects_effect_type) {
gl_effects_effect_type = gl_effects_effect_type =
g_enum_register_static ("GstGLEffectsEffect", effect_types); g_enum_register_static ("GstGLEffectsEffect", effect_types);
} }
return gl_effects_effect_type; return gl_effects_effect_type;
@ -150,7 +150,7 @@ gst_gl_effects_init_gl_resources (GstGLFilter *filter)
{ {
GstGLEffects *effects = GST_GL_EFFECTS (filter); GstGLEffects *effects = GST_GL_EFFECTS (filter);
gint i; gint i;
for (i=0; i<NEEDED_TEXTURES; i++) { for (i=0; i<NEEDED_TEXTURES; i++) {
glGenTextures (1, &effects->midtexture[i]); glGenTextures (1, &effects->midtexture[i]);
glBindTexture(GL_TEXTURE_RECTANGLE_ARB, effects->midtexture[i]); glBindTexture(GL_TEXTURE_RECTANGLE_ARB, effects->midtexture[i]);
@ -271,7 +271,7 @@ gst_gl_effects_identity (GstGLEffects *effects) {
static void static void
gst_gl_effects_init (GstGLEffects * effects, GstGLEffectsClass * klass) gst_gl_effects_init (GstGLEffects * effects, GstGLEffectsClass * klass)
{ {
effects->shaderstable = g_hash_table_new_full (g_str_hash, effects->shaderstable = g_hash_table_new_full (g_str_hash,
g_str_equal, g_str_equal,
NULL, NULL,
g_object_unref); g_object_unref);
@ -304,11 +304,11 @@ static void
gst_gl_effects_get_property (GObject * object, guint prop_id, gst_gl_effects_get_property (GObject * object, guint prop_id,
GValue * value, GParamSpec * pspec) GValue * value, GParamSpec * pspec)
{ {
GstGLEffects *effects = GST_GL_EFFECTS (object); //GstGLEffects *effects = GST_GL_EFFECTS (object);
switch (prop_id) { switch (prop_id) {
case PROP_EFFECT: case PROP_EFFECT:
gst_gl_effects_set_effect (effects, g_value_get_enum (value)); //gst_gl_effects_set_effect (effects, g_value_get_enum (value));
break; break;
default: default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@ -330,8 +330,8 @@ gst_gl_effects_filter (GstGLFilter* filter, GstGLBuffer* inbuf,
effects->intexture = inbuf->texture; effects->intexture = inbuf->texture;
effects->outtexture = outbuf->texture; effects->outtexture = outbuf->texture;
effects->effect (effects); effects->effect (effects);
return TRUE; return TRUE;
} }