summaryrefslogtreecommitdiff
path: root/sys/applemedia/videotexturecache.m
Commit message (Collapse)AuthorAgeFilesLines
* vtdec: use L/LA textures on GLES2 as wellMatthew Waters2016-06-291-15/+3
|
* vtdec: add support for zerocopy decoding with GLES 3.xMatthew Waters2016-06-291-3/+15
| | | | | It seems that Red/RG textures aren't supported anymore for zerocopy decoding with GLES 3.x. Instead use Luminance/Luminance Alpha textures which are.
* glmemory: add the texture type to allocate to parametersMatthew Waters2016-06-291-6/+9
| | | | | | Rather than assuming something. e.g. zerocopy on iOS with GLES3 requires the use of Luminance/Luminance Alpha formats and does not work with Red/RG textures.
* applemedia: videotesturecache: let CVOpenGLESTextureCache flush every 1sAlessandro Decina2016-02-101-4/+0
| | | | | | Leave kCVOpenGLESTextureCacheMaximumTextureAgeKey to the default (1s). We used to set it to 0 and flush manually, but apparently (looking at the GLES profiler) 0 means "disable the cache entirely".
* applemedia: texture cache: copy the input metasAlessandro Decina2016-01-221-6/+6
| | | | | Copy the input metas so avfvideosrc and vtenc can fast path to using CVPixelBuffer(s) even when using GLMemory.
* applemedia: always fill GstBuffers with GstMemoryAlessandro Decina2016-01-191-47/+32
| | | | | Always fill buffers with our custom memory. The custom memory will avoid mapping CV/CM buffers unless necessary.
* glmemory: add gst_gl_memory_allocator_get_defaultAlessandro Decina2015-12-181-1/+1
| | | | | | | | Add gst_gl_memory_allocator_get_default to get the default allocator based on the opengl version. Allows us to stop hardcoding the PBO allocator which isn't supported on gles2. Fixes GL upload on iOS9 among other things.
* gl*memory*: reverse the parameter order of user_data and destroy notifyMatthew Waters2015-12-171-6/+6
| | | | The convention is to have the destroy notify last after any user data
* applemedia: fix build on iOSAlessandro Decina2015-12-171-7/+9
| | | | Fix build after 779dc3132c8f6dd560cb07cc2e2c3c72aeaa7845
* glmemorypbo: remove our own alloc()/wrapped()/etc functionsMatthew Waters2015-12-171-17/+30
| | | | replaced by equivalent functionality within gst_gl_base_memory_alloc()
* applemedia: vtdec: remove the internal GstGLColorConvertAlessandro Decina2015-12-161-28/+1
| | | | | | It was added back in the day to make texture sharing work by default with glimagesink inside playbin. These days glimagesink accepts (and converts) YUV internally so it's no longer needed.
* applemedia: vtdec: switch to IOSurface on MacAlessandro Decina2015-12-161-55/+84
| | | | | | | Switch to using IOSurface instead of CVOpenGLTextureCache on OSX. The latter can't be used anymore to do YUV => RGB with opengl3 on El Capitan as GL_YCBCR_422_APPLE has been removed from the opengl3 driver. Also switch to NV12 from UYVY, which was the only YUV format supported by CVOpenGLTextureCache.
* applemedia: rename GstCoreVideoTextureCache to GstVideoTextureCacheAlessandro Decina2015-12-161-0/+283
First of a few commits to stop using CVOpenGLTextureCache on OSX and use IOSurfaces directly instead. CVOpenGLTextureCache hasn't been updated for OpenGL 3 which is why texture sharing is currently disabled on OSX.