summaryrefslogtreecommitdiff
path: root/gst-libs
diff options
context:
space:
mode:
authorNicolas Dufresne <nicolas.dufresne@collabora.com>2015-07-27 15:58:10 -0400
committerNicolas Dufresne <nicolas.dufresne@collabora.co.uk>2015-07-28 08:54:29 -0400
commiteb4d3c352ad088467b0ba0aa4097fbda4e34b0f4 (patch)
treead419efbb6e19789018a610e18ffdb10aa6c3924 /gst-libs
parenta7751aa96759462b8e95fc850110fd0c6013587c (diff)
downloadgstreamer-plugins-bad-eb4d3c352ad088467b0ba0aa4097fbda4e34b0f4.tar.gz
Revert "glupload: memcpy on raw data upload"
This reverts commit 82c0189b2842e8729e82a4e73491dffc977bc7c2. https://bugzilla.gnome.org/show_bug.cgi?id=752937
Diffstat (limited to 'gst-libs')
-rw-r--r--gst-libs/gst/gl/gstglupload.c19
1 files changed, 5 insertions, 14 deletions
diff --git a/gst-libs/gst/gl/gstglupload.c b/gst-libs/gst/gl/gstglupload.c
index 01c4e39ca..2055c9a26 100644
--- a/gst-libs/gst/gl/gstglupload.c
+++ b/gst-libs/gst/gl/gstglupload.c
@@ -760,6 +760,7 @@ static GstGLUploadReturn
_raw_data_upload_perform (gpointer impl, GstBuffer * buffer,
GstBuffer ** outbuf)
{
+ GstGLMemory *in_tex[GST_GL_UPLOAD_MAX_PLANES] = { 0, };
struct RawUpload *raw = impl;
int i;
GstVideoInfo *in_info = &raw->upload->priv->in_info;
@@ -770,22 +771,12 @@ _raw_data_upload_perform (gpointer impl, GstBuffer * buffer,
GST_VIDEO_MULTIVIEW_MODE_SEPARATED)
max_planes *= GST_VIDEO_INFO_VIEWS (in_info);
- /* FIXME: buffer pool */
- *outbuf = gst_buffer_new ();
- gst_gl_memory_setup_buffer (raw->upload->context, NULL,
- &raw->upload->priv->in_info, NULL, *outbuf);
+ gst_gl_memory_setup_wrapped (raw->upload->context,
+ &raw->upload->priv->in_info, NULL, raw->in_frame.data, in_tex);
+ *outbuf = gst_buffer_new ();
for (i = 0; i < max_planes; i++) {
- GstMemory *mem = gst_buffer_peek_memory (*outbuf, i);
- GstMapInfo map_info;
-
- gst_memory_map (mem, &map_info, GST_MAP_WRITE);
-
- memcpy (map_info.data, raw->in_frame.data[i], map_info.size);
-
- gst_memory_unmap (mem, &map_info);
-
- gst_gl_memory_upload_transfer ((GstGLMemory *) mem);
+ gst_buffer_append_memory (*outbuf, (GstMemory *) in_tex[i]);
}
return GST_GL_UPLOAD_DONE;