diff options
author | David Schleef <ds@schleef.org> | 2007-12-29 00:37:41 +0000 |
---|---|---|
committer | David Schleef <ds@schleef.org> | 2007-12-29 00:37:41 +0000 |
commit | 9c52a9cd0993b34d0cf02a8fea4fd39b4e8609c0 (patch) | |
tree | c0c10a8f3bc5e6b2287a3b01944dfdc029b603fb /sys/glsink/glimagesink.c | |
parent | 07e3e6e2bd4c69380aeab3a0517ed0a0175d1964 (diff) | |
download | gst-plugins-bad-9c52a9cd0993b34d0cf02a8fea4fd39b4e8609c0.tar.gz gst-plugins-bad-9c52a9cd0993b34d0cf02a8fea4fd39b4e8609c0.tar.bz2 gst-plugins-bad-9c52a9cd0993b34d0cf02a8fea4fd39b4e8609c0.zip |
Major cleanup of code. Convert glupload to BaseTransform.
Original commit message from CVS:
* configure.ac:
* sys/glsink/glextensions.c:
* sys/glsink/glextensions.h:
* sys/glsink/glimagesink.c:
* sys/glsink/glimagesink.h:
* sys/glsink/gstglbuffer.c:
* sys/glsink/gstglbuffer.h:
* sys/glsink/gstglconvert.c:
* sys/glsink/gstgldisplay.c:
* sys/glsink/gstgldisplay.h:
* sys/glsink/gstgldownload.c:
* sys/glsink/gstglfilter.c:
* sys/glsink/gstglfilter.h:
* sys/glsink/gstglfilterexample.c:
* sys/glsink/gstgltestsrc.c:
* sys/glsink/gstglupload.c:
Major cleanup of code. Convert glupload to BaseTransform.
Handle caps negotiation mostly correctly. Reenable in build.
Diffstat (limited to 'sys/glsink/glimagesink.c')
-rw-r--r-- | sys/glsink/glimagesink.c | 27 |
1 files changed, 11 insertions, 16 deletions
diff --git a/sys/glsink/glimagesink.c b/sys/glsink/glimagesink.c index 879790d7..365e4c4e 100644 --- a/sys/glsink/glimagesink.c +++ b/sys/glsink/glimagesink.c @@ -301,11 +301,11 @@ gst_glimage_sink_start (GstBaseSink * bsink) GST_ERROR ("failed to open display"); return FALSE; } +#endif - if (glimage_sink->window_id) { + if (glimage_sink->display && glimage_sink->window_id) { gst_gl_display_set_window (glimage_sink->display, glimage_sink->window_id); } -#endif GST_DEBUG ("start done"); @@ -321,9 +321,10 @@ gst_glimage_sink_stop (GstBaseSink * bsink) glimage_sink = GST_GLIMAGE_SINK (bsink); - g_object_unref (glimage_sink->display); - - glimage_sink->display = NULL; + if (glimage_sink->display) { + g_object_unref (glimage_sink->display); + glimage_sink->display = NULL; + } return TRUE; } @@ -417,14 +418,6 @@ gst_glimage_sink_set_caps (GstBaseSink * bsink, GstCaps * caps) glimage_sink->par_n = par_n; glimage_sink->par_d = par_d; - //glimage_sink->type = format; - -#if 0 - if (!glimage_sink->window) { - gst_glimage_sink_create_window (glimage_sink); - } -#endif - return TRUE; } @@ -441,21 +434,23 @@ gst_glimage_sink_render (GstBaseSink * bsink, GstBuffer * buf) if (glimage_sink->display == NULL) { glimage_sink->display = g_object_ref (gl_buffer->display); +#if 1 if (glimage_sink->window_id) { gst_gl_display_set_window (glimage_sink->display, glimage_sink->window_id); } +#endif } else { g_assert (gl_buffer->display == glimage_sink->display); } display = gl_buffer->display; - gst_gl_display_lock (display); - /* FIXME polling causes a round-trip delay. This should be changed * to catch structure events */ gst_gl_display_update_attributes (display); + + gst_gl_display_lock (display); glViewport (0, 0, display->win_width, display->win_height); glClearColor (0.3, 0.3, 0.3, 1.0); @@ -519,7 +514,7 @@ gst_glimage_sink_set_xwindow_id (GstXOverlay * overlay, XID window_id) g_return_if_fail (GST_IS_GLIMAGE_SINK (overlay)); - GST_DEBUG ("set_xwindow_id"); + GST_DEBUG ("set_xwindow_id %ld", window_id); glimage_sink = GST_GLIMAGE_SINK (overlay); |