Commit graph

51 commits

Author SHA1 Message Date
Nick Kallen
46bbc60d24 applemedia/gl: Update code to use ARC
All code interacting with Objective-C objects should now use Automated
Reference Counting rather than manual memory management or Garbage
Collection. Because ARC prohibits C-structs from containing
references to Objective-C objects, all such fields are now typed
'gpointer'. Setting and gettings Objective-C fields on such a
struct now uses explicit __bridge_* calls to tell ARC about
object lifetimes.

https://bugzilla.gnome.org/show_bug.cgi?id=777847
2017-03-07 13:37:07 +02:00
Sebastian Dröge
807b0322c5 applemedia: Conditionally compile qtkitvideosrc
The API was deprecated in 10.9 and apparently does not exist in the SDK for
macOS Sierra anymore.

https://bugzilla.gnome.org/show_bug.cgi?id=770587
2016-08-31 10:03:15 +03:00
Alessandro Decina
7898bc5810 applemedia: changes to make GL memory mappable on CPU on iOS
This commit introduces IOSGLMemory which is a GLMemory that falls back to
GstAppleCoreVideoMemory for CPU access. This is a temporary solution until
IOSurface gets exposed as a public framework on iOS and so we can use
IOSurfaceMemory on both MacOS and iOS.

https://bugzilla.gnome.org/show_bug.cgi?id=769210
2016-08-26 17:44:48 +10:00
Edward Hervey
09e3bd0fb3 applemedia: Only use the OpenGL framework on OSX
It's not available on ios (uses OpenGLES already)

https://bugzilla.gnome.org/show_bug.cgi?id=766973
2016-06-03 07:11:55 +02:00
Havard Graff
f615a84646 applemedia: CGLTexImageIOSurface2D needs the OpenGL framework on OSX
https://bugzilla.gnome.org/show_bug.cgi?id=766973
2016-06-02 22:42:22 +01:00
Sebastian Dröge
43487482e5 applemedia: Ship all headers in tarballs
Some were missing from noinst_HEADERS.

https://bugzilla.gnome.org/show_bug.cgi?id=766163
2016-05-09 12:50:47 +03:00
Alessandro Decina
045a935871 applemedia: refactor GL context code
Rework the GL context code. Now both avfvideosrc and vtdec can create an
internal GL context for pushing textures. Both elements will still try to
use/switch to a local context where available (including after RECONFIGURE
events).
2016-01-29 15:10:32 +11:00
Ilya Konstantinov
936b2fdfbc applemedia: implement GstAppleCoreVideoMemory
Implement a new memory type wrapping CVPixelBuffer.

There are two immediate advantages:
 a) Make the GstMemory itself retain the CVPixelBuffer. Previously,
    the containing GstBuffer was solely responsible for the lifetime of
    the backing CVPixelBuffer.

    With this change, we remove the GST_MEMORY_FLAG_NO_SHARE so that
    GstMemory objects be referenced by multiple GstBuffers (doing away
    with the need to copy.)

  b) Delay locking CVPixelBuffer into CPU memory until it's actually
     mapped -- possibly never.

The CVPixelBuffer object is shared among references, shares and
(in planar formats) planes, so a wrapper GstAppleCoreVideoPixelBuffer
structure was introduced to manage locking.

https://bugzilla.gnome.org/show_bug.cgi?id=747216
2016-01-19 12:58:43 +11:00
Julien Isorce
89229bcfed applemedia: set -mmacosx-version-min to 10.8
Otherwise qtkitvideosrc fails to build on OSX 10.10.4
because QTKit has been deprecated since OS X 10.9.

Also set -mmacosx-version-min=10.8 in front to allow
the user or cerbero to override the version.

https://bugzilla.gnome.org/show_bug.cgi?id=745564
2015-12-18 10:30:25 +00:00
Sebastian Dröge
4b04d4a02d applemedia: Link to IOSurface.framework for the IOSurface API 2015-12-16 10:21:59 +01:00
Sebastian Dröge
34586e0ffd applemedia: Link to IOKit.framework for IOSurface related functions 2015-12-16 09:39:03 +01:00
Alessandro Decina
8ae0033261 applemedia: vtdec: switch to IOSurface on Mac
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.
2015-12-16 17:03:03 +11:00
Alessandro Decina
e730b0a8ab applemedia: rename GstCoreVideoTextureCache to GstVideoTextureCache
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.
2015-12-16 17:03:03 +11:00
Aleix Conchillo Flaqué
12a2acd7e8 applemedia: dist missing header files
https://bugzilla.gnome.org/show_bug.cgi?id=755852
2015-09-30 09:05:08 +01:00
Matthew Waters
e505f6257c applemedia: new AVSampleBufferLayerSink
Renders buffers using the CALayer subclass AVSampleBufferDisplayLayer
which can be placed inside a Core Animation render tree.
2015-02-24 19:12:10 +11:00
Alessandro Decina
cdfe90aaba avfvideosrc: implement the GL texture upload meta 2015-01-15 14:10:43 +11:00
Alessandro Decina
6a4270d5cc vtenc: set profile and level in caps 2014-11-27 18:41:21 +01:00
Sebastian Dröge
d789246077 applemedia: Remove old code that is of no use anymore 2014-09-17 13:19:04 +03:00
Sebastian Dröge
82aae4df74 applemedia: Do weak linking with the VideoToolbox framework
It does not exist on older OSX and iOS but we still want to
be able to use it when it's available.
2014-09-17 10:38:20 +03:00
Sebastian Dröge
f2eedb9cee vtenc: Port to the real VideoToolbox API instead of using our dlopen() wrapper
It's a public framework since a long time.
2014-09-16 15:47:29 +03:00
Alessandro Decina
0258ec0273 applemedia: enable vtdec and vtenc only on >= 10.8 where VideoToolbox is public
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=723670
2014-07-02 12:56:06 +02:00
Matthieu Bouron
2f0aad7158 iosavassetsrc: rename element to avfassetsrc
https://bugzilla.gnome.org/show_bug.cgi?id=728249
2014-04-24 12:28:17 +02:00
Matthieu Bouron
ecf765635b iosavassetsrc: Port to 1.0
Also enables this element on OSX >= 10.7.

https://bugzilla.gnome.org/show_bug.cgi?id=728249
2014-04-24 12:28:17 +02:00
Andoni Morales Alastruey
9fec222b5a applemedia: add new source/decoder element for iOS assets
https://bugzilla.gnome.org/show_bug.cgi?id=728249
2014-04-24 12:28:16 +02:00
Edward Hervey
72127a85f5 applemedia: Fix libtool usage
--tag=CC is needed for static build
2014-02-06 16:17:39 +01:00
Sebastian Dröge
0d794993fb applemedia: Actually the enc/decbins are not used anywhere currently
Code is commented out.
2014-01-20 10:38:16 +01:00
Sebastian Dröge
1107e158f7 applemedia: Fix build on iOS and probably also on OSX
The video toolbox is not available on iOS, and also on OSX
we should probably build all source files that are used for
it.

https://bugzilla.gnome.org/show_bug.cgi?id=722590
2014-01-20 10:34:57 +01:00
Alessandro Decina
b1a756fda7 applemedia: rewrite VideoToolbox decoder based on GstVideoDecoder 2013-12-08 15:13:26 +01:00
Matthieu Bouron
0d74dc802a applemedia: enable avfvideosrc if AVFoundation is present 2013-11-07 15:24:27 +01:00
Sebastian Dröge
831c67c07b applemedia: Link with gmodule for g_module_open() and others 2013-11-04 10:05:40 +01:00
Sebastian Dröge
4bed01aff9 iosassetsrc: Port to 1.0 and fix some bugs on the way 2013-09-28 20:36:21 +02:00
Andoni Morales Alastruey
e5d5faa67e iosassetsrc: Add new element from the GStreamer SDK project 2013-09-28 20:36:21 +02:00
Sebastian Dröge
dd19715961 applemedia: avfvideosrc is not ported to 1.0 yet 2013-09-28 20:36:21 +02:00
Alessandro Decina
92bcdd9c4b applemedia: add AudioToolbox based audio decoder 2013-07-23 10:36:47 +02:00
Andoni Morales Alastruey
22be93cd04 applemedia: move defines to CPPFLAGS for obj-c files 2013-06-18 13:02:42 +02:00
Andoni Morales Alastruey
0690238c59 applemedia: fix duplicated symbols with applemedia 2013-05-24 09:39:10 +02:00
Andoni Morales Alastruey
9b168e6b4d applemedia: remove the unneeded buffer factory 2013-05-20 13:31:02 +02:00
Andoni Morales Alastruey
97bb1edf6c applemedia: don't use the dynamic API for public frameworks
Public frameworks don't need to build the API dynamically, we instead
use the framework directly.
The exception is for VideoToolbox which went public in the 10.8 SDK,
but it's still private in older version of the SDK and iOS. This allow
building the plugin against SDK's where it's not a public framework.
2013-05-20 13:31:02 +02:00
Andoni Morales Alastruey
57b97beb6d applemedia: move plugins using private frameworks to applemedia-nonpublic 2013-05-20 13:31:02 +02:00
Sebastian Dröge
e51cd4fe2f gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
Thiago Santos
23b2b46993 applemedia: fix build for objc
The obj-c api version option is required to get applemedia to
build for ios, otherwise it won't find some symbols during linking
2013-03-25 12:56:55 -03:00
Ole André Vadla Ravnås
73bcf51f9f applemedia: port vtenc to 1.0 2013-02-16 02:51:51 +01:00
Sebastian Dröge
30617d23a3 applemedia: Put the right flags into the right variable 2012-05-30 13:54:11 +02:00
Sebastian Dröge
df5f39658f configure: Add OBJC specific compiler flags
See bug #643939.
2012-05-30 11:28:53 +02:00
Matej Knopp
156d80d74b applemedia: do not link gstinterfaces 2012-04-16 11:19:17 +02:00
Sebastian Dröge
1318a97e0a gst: Update versioning 2012-04-04 14:44:34 +02:00
Alessandro Decina
8546458617 applemedia: port vtdec 2012-03-03 19:04:36 +01:00
Alessandro Decina
7a4a3833c3 applemedia: port qtkitvideosrc 2012-02-28 08:14:00 +01:00
Ole André Vadla Ravnås
44df8abea8 applemedia: rename iphonecamerasrc to celvideosrc
This is in order to improve consistency with the other three sources.
2010-11-04 19:27:25 +01:00
Ole André Vadla Ravnås
3ba76f825d applemedia: add new iOS video source based on AVFoundation
This element makes use of the documented AVFoundation framework made
available starting with iOS 4.0, and hence this means we can finally
capture video using a public API.
2010-11-04 14:32:10 +01:00