Matthew Waters
c9d9077a5f
glbasememory: take a pointer as the wrapped gpu handle
...
Allows passing arbitrary data to wrap the the specific memory implementation
which is required for some memory implementations.
2016-05-04 12:51:59 +10:00
Matthew Waters
7685b052b8
glmemorypbo: unmap pbo memory on pbo read error
...
Otherwise we are returning failure with a dangling map!
Also only unset the NEED_DOWNLOAD flag in download_transfer() if the read actually
succeeds.
2016-03-31 20:52:42 +11:00
Matthew Waters
dff43480ee
gl*memory: document new functionality and objects
2016-03-06 19:36:17 +11:00
Matthew Waters
04ec728722
glbasememory: Free the actual memory object when requested
...
Otherwise we are leaking ~400B on each GstMemory allocation.
Freeing in the base class matches the GObject semantics.
2016-01-11 20:40:39 +11:00
Matthew Waters
3423e108d4
glmemorypbo: don't double read pixels
...
The optimistic download_transfer was not setting the required flag to not
perform glReadPixels on subsequent map (READ). resulting in glReadPixels
happening twice.
2016-01-11 20:40:39 +11:00
Matthew Waters
e8a251db4b
glmemory: expose gst_gl_memory_texsubimage
...
Removes extremely similar code from glmemorypbo.
2016-01-11 20:40:39 +11:00
Matthew Waters
8d34c91855
glmemorypbo: remove unused code
...
https://bugzilla.gnome.org/show_bug.cgi?id=759679
2016-01-06 16:48:33 +11:00
Matthew Waters
4717b48a03
glmemorypbo: fix wrapping data on GL 2.1
...
GL 2.1 only supports pbo upload.
The wrapped data pointer was only being set on the pbo memory and on the
glmemory so when a download was requested (in GL 2.1), glmemory was
allocating a new data pointer and thus not returning the wrapped data.
2015-12-30 12:16:29 +11:00
Matthew Waters
49291bc927
glmemorypbo: only create a pbo memory if the context actually supports it
...
e.g. GL <= 2.0 does not support pbo usage and GL 2.1 only supports pbo upload.
2015-12-30 12:16:29 +11:00
Matthew Waters
6917b3b35a
glmemory: small code reformat
...
makes the alloc_params selections fit on a single line.
2015-12-30 12:16:29 +11:00
Sebastian Dröge
c4e5423f3b
glmemorypbo: Comment out unused functions to fix compilation with clang
...
It's not clear if these are intentionally unused or the code should be
changed, but this fixes compilation for the time being at least.
See https://bugzilla.gnome.org/show_bug.cgi?id=759679
2015-12-23 09:51:05 +01:00
Matthew Waters
5dcd500257
gl*memory*: reverse the parameter order of user_data and destroy notify
...
The convention is to have the destroy notify last after any user data
2015-12-17 15:44:22 +11:00
Matthew Waters
779dc3132c
glmemorypbo: remove our own alloc()/wrapped()/etc functions
...
replaced by equivalent functionality within gst_gl_base_memory_alloc()
2015-12-17 13:49:56 +11:00
Matthew Waters
9fa1dd2e29
glbuffer: remove unneeded gst_gl_buffer_alloc()
...
Replaced by gst_gl_base_memory_alloc()
2015-12-17 13:49:56 +11:00
Matthew Waters
d2c5fc3e87
glmemorypbo: implement GstGLBaseMemory:alloc
...
Uses the GstGLVideoAllocationParams parameters
2015-12-17 13:49:56 +11:00
Matthew Waters
b12f2be4b1
glmemorypbo: map/unmap pbo memory correctly for state tracking
...
Otherwise some downloads will fail to occur from the PBO.
2015-12-14 18:22:07 +11:00
Matthew Waters
2b7495bbc1
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.
2015-12-14 16:35:32 +11:00