diff options
author | Lionel Landwerlin <llandwerlin@gmail.com> | 2013-11-27 19:18:55 +0000 |
---|---|---|
committer | Lionel Landwerlin <llandwerlin@gmail.com> | 2014-04-02 11:37:01 +0100 |
commit | 20b9ab61b890fe3c219c50d1d63e6549f4f274bd (patch) | |
tree | 9d94cec34c0b32a5e62f7ba5d98cf0997347d14b | |
parent | 36fe7699a6c8d4135d98d9a84017d4d45989b149 (diff) | |
download | cogl-20b9ab61b890fe3c219c50d1d63e6549f4f274bd.tar.gz |
cogl-gst: video-sink: add shutdown method on renderers
-rw-r--r-- | cogl-gst/cogl-gst-video-sink.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/cogl-gst/cogl-gst-video-sink.c b/cogl-gst/cogl-gst-video-sink.c index 43ddd7cc..001c7b81 100644 --- a/cogl-gst/cogl-gst-video-sink.c +++ b/cogl-gst/cogl-gst-video-sink.c @@ -159,6 +159,7 @@ typedef struct _CoglGstRenderer CoglPipeline *pipeline); CoglBool (*upload) (CoglGstVideoSink *sink, GstBuffer *buffer); + void (*shutdown) (CoglGstVideoSink *sink); } CoglGstRenderer; struct _CoglGstVideoSinkPrivate @@ -966,6 +967,15 @@ clear_frame_textures (CoglGstVideoSink *sink) priv->frame_dirty = TRUE; } +/**/ + +static void +cogl_gst_dummy_shutdown (CoglGstVideoSink *sink) +{ +} + +/**/ + static inline CoglBool is_pot (unsigned int number) { @@ -1127,6 +1137,7 @@ static CoglGstRenderer rgb24_renderer = 1, /* n_layers */ cogl_gst_rgb24_setup_pipeline, cogl_gst_rgb24_upload, + cogl_gst_dummy_shutdown, }; static void @@ -1239,6 +1250,7 @@ static CoglGstRenderer rgb32_renderer = 2, /* n_layers */ cogl_gst_rgb32_setup_pipeline, cogl_gst_rgb32_upload, + cogl_gst_dummy_shutdown, }; static CoglBool @@ -1386,6 +1398,7 @@ static CoglGstRenderer yv12_glsl_renderer = 3, /* n_layers */ cogl_gst_yv12_glsl_setup_pipeline, cogl_gst_yv12_upload, + cogl_gst_dummy_shutdown, }; static CoglGstRenderer i420_glsl_renderer = @@ -1398,6 +1411,7 @@ static CoglGstRenderer i420_glsl_renderer = 3, /* n_layers */ cogl_gst_yv12_glsl_setup_pipeline, cogl_gst_i420_upload, + cogl_gst_dummy_shutdown, }; static void @@ -1480,6 +1494,7 @@ static CoglGstRenderer ayuv_glsl_renderer = 1, /* n_layers */ cogl_gst_ayuv_glsl_setup_pipeline, cogl_gst_ayuv_upload, + cogl_gst_dummy_shutdown, }; static void @@ -1573,6 +1588,7 @@ static CoglGstRenderer nv12_glsl_renderer = 2, /* n_layers */ cogl_gst_nv12_glsl_setup_pipeline, cogl_gst_nv12_upload, + cogl_gst_dummy_shutdown, }; static GSList* @@ -1991,6 +2007,11 @@ cogl_gst_video_sink_dispose (GObject *object) clear_frame_textures (self); + if (priv->renderer) { + priv->renderer->shutdown (self); + priv->renderer = NULL; + } + if (priv->pipeline) { cogl_object_unref (priv->pipeline); |