summaryrefslogtreecommitdiff
path: root/ext/gl
diff options
context:
space:
mode:
authorMatthew Waters <matthew@centricular.com>2015-12-14 13:43:59 +1100
committerMatthew Waters <matthew@centricular.com>2015-12-14 16:35:32 +1100
commit2b7495bbc1ee60c0fa52c980daf440d45ae48d37 (patch)
tree7d6fc31ce976609988065d7439b51469eefc14a8 /ext/gl
parent6cf8da132b6eb75084871ac4409356be62537b2f (diff)
downloadgstreamer-plugins-bad-2b7495bbc1ee60c0fa52c980daf440d45ae48d37.tar.gz
glmemory: base classify and add the pbo memory on top
The base class is useful for having multiple backing memory types other than the default. e.g. IOSurface, EGLImage, dmabuf? The PBO transfer logic is now inside GstGLMemoryPBO which uses GstGLBuffer to manage the PBO memory. This also moves the format utility functions into their own file.
Diffstat (limited to 'ext/gl')
-rw-r--r--ext/gl/gstgldownloadelement.c3
-rw-r--r--ext/gl/gstgloverlay.c4
2 files changed, 4 insertions, 3 deletions
diff --git a/ext/gl/gstgldownloadelement.c b/ext/gl/gstgldownloadelement.c
index 94a6e7a8e..917bdc7aa 100644
--- a/ext/gl/gstgldownloadelement.c
+++ b/ext/gl/gstgldownloadelement.c
@@ -176,7 +176,8 @@ gst_gl_download_element_prepare_output_buffer (GstBaseTransform * bt,
if (gst_is_gl_memory (mem)) {
if (!features || gst_caps_features_contains (features,
GST_CAPS_FEATURE_MEMORY_SYSTEM_MEMORY)) {
- gst_gl_memory_download_transfer ((GstGLMemory *) mem);
+ if (gst_is_gl_memory_pbo (mem))
+ gst_gl_memory_pbo_download_transfer ((GstGLMemoryPBO *) mem);
}
}
}
diff --git a/ext/gl/gstgloverlay.c b/ext/gl/gstgloverlay.c
index a152fc22c..c26135237 100644
--- a/ext/gl/gstgloverlay.c
+++ b/ext/gl/gstgloverlay.c
@@ -696,7 +696,7 @@ gst_gl_overlay_load_jpeg (GstGLOverlay * overlay, FILE * fp)
gst_video_info_align (&v_info, &v_align);
overlay->image_memory = (GstGLMemory *)
- gst_gl_memory_alloc (GST_GL_BASE_FILTER (overlay)->context,
+ gst_gl_memory_pbo_alloc (GST_GL_BASE_FILTER (overlay)->context,
GST_GL_TEXTURE_TARGET_2D, NULL, &v_info, 0, &v_align);
if (!gst_memory_map ((GstMemory *) overlay->image_memory, &map_info,
@@ -801,7 +801,7 @@ gst_gl_overlay_load_png (GstGLOverlay * overlay, FILE * fp)
gst_video_info_set_format (&v_info, GST_VIDEO_FORMAT_RGBA, width, height);
overlay->image_memory = (GstGLMemory *)
- gst_gl_memory_alloc (GST_GL_BASE_FILTER (overlay)->context,
+ gst_gl_memory_pbo_alloc (GST_GL_BASE_FILTER (overlay)->context,
GST_GL_TEXTURE_TARGET_2D, NULL, &v_info, 0, NULL);
if (!gst_memory_map ((GstMemory *) overlay->image_memory, &map_info,