GNOME Bugzilla – Bug 782078
qtkitvideosrc: Removed in order to avoid obsolete APIs
Last modified: 2017-05-03 15:47:45 UTC
I'd tried to build 1.11.91 from tarballs today and got a lot of errors when building qtkitvideosrc. libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -Dgst_core_media_buffer_new=gst_core_media_buffer_priv_new -Dgst_core_media_buffer_get_type=gst_core_media_buffer_priv_get_type -Dgst_core_media_buffer_get_pixel_buffer=gst_core_media_buffer_priv_get_pixel_buffer -Dgst_core_video_buffer_new=gst_core_video_buffer_priv_new -Dgst_core_video_buffer_get_type=gst_core_video_buffer_priv_get_type -I/opt/oblong/deps-64-11/include -I../../gst-libs -I../../gst-libs -fobjc-arc -mmacosx-version-min=10.8 -I/opt/oblong/deps-64-11/include/gstreamer-1.0 -I/opt/oblong/deps-64-11/include/glib-2.0 -I/opt/oblong/deps-64-11/lib/glib-2.0/include -D_REENTRANT -DGST_USE_UNSTABLE_API -DG_THREADS_MANDATORY -DG_DISABLE_CAST_CHECKS -Wall -Wmissing-declarations -Wredundant-decls -Wwrite-strings -Wformat-nonliteral -Wformat-security -Winit-self -Wmissing-include-dirs -Wno-multichar -g -I/opt/oblong/deps-64-11/include/gstreamer-1.0 -I/opt/oblong/deps-64-11/include/glib-2.0 -I/opt/oblong/deps-64-11/lib/glib-2.0/include -D_REENTRANT -I/opt/oblong/deps-64-11/include/gstreamer-1.0 -I/opt/oblong/deps-64-11/include/glib-2.0 -I/opt/oblong/deps-64-11/lib/glib-2.0/include -D_REENTRANT -g -O2 -MT libgstapplemedia_la-avfassetsrc.lo -MD -MP -MF .deps/libgstapplemedia_la-avfassetsrc.Tpo -c avfassetsrc.m -fno-common -DPIC -o .libs/libgstapplemedia_la-avfassetsrc.o libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -Dgst_core_media_buffer_new=gst_core_media_buffer_priv_new -Dgst_core_media_buffer_get_type=gst_core_media_buffer_priv_get_type -Dgst_core_media_buffer_get_pixel_buffer=gst_core_media_buffer_priv_get_pixel_buffer -Dgst_core_video_buffer_new=gst_core_video_buffer_priv_new -Dgst_core_video_buffer_get_type=gst_core_video_buffer_priv_get_type -I/opt/oblong/deps-64-11/include -I../../gst-libs -I../../gst-libs -fobjc-arc -mmacosx-version-min=10.8 -I/opt/oblong/deps-64-11/include/gstreamer-1.0 -I/opt/oblong/deps-64-11/include/glib-2.0 -I/opt/oblong/deps-64-11/lib/glib-2.0/include -D_REENTRANT -DGST_USE_UNSTABLE_API -DG_THREADS_MANDATORY -DG_DISABLE_CAST_CHECKS -Wall -Wmissing-declarations -Wredundant-decls -Wwrite-strings -Wformat-nonliteral -Wformat-security -Winit-self -Wmissing-include-dirs -Wno-multichar -g -I/opt/oblong/deps-64-11/include/gstreamer-1.0 -I/opt/oblong/deps-64-11/include/glib-2.0 -I/opt/oblong/deps-64-11/lib/glib-2.0/include -D_REENTRANT -I/opt/oblong/deps-64-11/include/gstreamer-1.0 -I/opt/oblong/deps-64-11/include/glib-2.0 -I/opt/oblong/deps-64-11/lib/glib-2.0/include -D_REENTRANT -g -O2 -MT libgstapplemedia_la-avsamplevideosink.lo -MD -MP -MF .deps/libgstapplemedia_la-avsamplevideosink.Tpo -c avsamplevideosink.m -fno-common -DPIC -o .libs/libgstapplemedia_la-avsamplevideosink.o qtkitvideosrc.m:187:11: error: 'retain' is unavailable: not available in automatic reference counting mode [device retain]; ^ /usr/include/objc/NSObject.h:36:1: note: 'retain' has been explicitly marked unavailable here - (instancetype)retain OBJC_ARC_UNAVAILABLE; ^ qtkitvideosrc.m:187:11: error: ARC forbids explicit message send of 'retain' [device retain]; ~~~~~~ ^ qtkitvideosrc.m:203:13: error: 'release' is unavailable: not available in automatic reference counting mode [device release]; ^ /usr/include/objc/NSObject.h:37:1: note: 'release' has been explicitly marked unavailable here - (oneway void)release OBJC_ARC_UNAVAILABLE; ^ qtkitvideosrc.m:203:13: error: ARC forbids explicit message send of 'release' [device release]; ~~~~~~ ^ qtkitvideosrc.m:214:12: error: 'release' is unavailable: not available in automatic reference counting mode [session release]; ^ /usr/include/objc/NSObject.h:37:1: note: 'release' has been explicitly marked unavailable here - (oneway void)release OBJC_ARC_UNAVAILABLE; ^ qtkitvideosrc.m:214:12: error: ARC forbids explicit message send of 'release' [session release]; ~~~~~~~ ^ qtkitvideosrc.m:217:10: error: 'release' is unavailable: not available in automatic reference counting mode [input release]; ^ /usr/include/objc/NSObject.h:37:1: note: 'release' has been explicitly marked unavailable here - (oneway void)release OBJC_ARC_UNAVAILABLE; ^ qtkitvideosrc.m:217:10: error: ARC forbids explicit message send of 'release' [input release]; ~~~~~ ^ qtkitvideosrc.m:220:11: error: 'release' is unavailable: not available in automatic reference counting mode [output release]; ^ /usr/include/objc/NSObject.h:37:1: note: 'release' has been explicitly marked unavailable here - (oneway void)release OBJC_ARC_UNAVAILABLE; ^ qtkitvideosrc.m:220:11: error: ARC forbids explicit message send of 'release' [output release]; ~~~~~~ ^ qtkitvideosrc.m:223:11: error: 'release' is unavailable: not available in automatic reference counting mode [device release]; ^ /usr/include/objc/NSObject.h:37:1: note: 'release' has been explicitly marked unavailable here - (oneway void)release OBJC_ARC_UNAVAILABLE; ^ qtkitvideosrc.m:223:11: error: ARC forbids explicit message send of 'release' [device release]; ~~~~~~ ^ qtkitvideosrc.m:336:14: error: 'release' is unavailable: not available in automatic reference counting mode [queueLock release]; ^ /usr/include/objc/NSObject.h:37:1: note: 'release' has been explicitly marked unavailable here - (oneway void)release OBJC_ARC_UNAVAILABLE; ^ qtkitvideosrc.m:336:14: error: ARC forbids explicit message send of 'release' [queueLock release]; ~~~~~~~~~ ^ qtkitvideosrc.m:338:10: error: 'release' is unavailable: not available in automatic reference counting mode [queue release]; ^ /usr/include/objc/NSObject.h:37:1: note: 'release' has been explicitly marked unavailable here - (oneway void)release OBJC_ARC_UNAVAILABLE; ^ qtkitvideosrc.m:338:10: error: ARC forbids explicit message send of 'release' [queue release]; ~~~~~ ^ qtkitvideosrc.m:439:23: error: cast of C pointer type 'CVImageBufferRef' (aka 'struct __CVBuffer *') to Objective-C pointer type 'id' requires a bridged cast [queue insertObject:(id)videoFrame ^~~~~~~~~~~~~~ qtkitvideosrc.m:439:24: note: use __bridge to convert directly (no change in ownership) [queue insertObject:(id)videoFrame ^ __bridge qtkitvideosrc.m:439:27: note: use CFBridgingRelease call to transfer ownership of a +1 'CVImageBufferRef' (aka 'struct __CVBuffer *') into ARC [queue insertObject:(id)videoFrame ^ CFBridgingRelease( ) qtkitvideosrc.m:455:11: error: cast of Objective-C pointer type 'id _Nullable' to C pointer type 'CVPixelBufferRef' (aka 'struct __CVBuffer *') requires a bridged cast frame = (CVPixelBufferRef) [queue lastObject]; ^~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~ qtkitvideosrc.m:455:12: note: use __bridge to convert directly (no change in ownership) frame = (CVPixelBufferRef) [queue lastObject]; ^ __bridge qtkitvideosrc.m:455:30: note: use CFBridgingRetain call to make an ARC object available as a +1 'CVPixelBufferRef' (aka 'struct __CVBuffer *') frame = (CVPixelBufferRef) [queue lastObject]; ^ CFBridgingRetain( ) qtkitvideosrc.m:583:3: error: 'NSAutoreleasePool' is unavailable: not available in automatic reference counting mode OBJC_CALLOUT_BEGIN (); ^ qtkitvideosrc.m:574:3: note: expanded from macro 'OBJC_CALLOUT_BEGIN' NSAutoreleasePool *pool; \ ^ /System/Library/Frameworks/Foundation.framework/Headers/NSAutoreleasePool.h:10:12: note: 'NSAutoreleasePool' has been explicitly marked unavailable here @interface NSAutoreleasePool : NSObject { ^ fatal error: too many errors emitted, stopping now [-ferror-limit=] 20 errors generated. make[3]: *** [libgstapplemedia_la-qtkitvideosrc.lo] Error 1 make[3]: *** Waiting for unfinished jobs....
Maybe we should just drop this qtkitvideosrc element ?
That, or port it to use ARC too: https://bugzilla.gnome.org/show_bug.cgi?id=777847
`QuickTime Kit was deprecated in OS X v10.9. Use the AVFoundation framework instead.` from https://developer.apple.com/reference/qtkit I'm voting on to just drop it.
We're also not building it in our binaries anymore, so feel free to send a patch to remove it.
Created attachment 350965 [details] [review] Patch that removes qtvideosrc
Comment on attachment 350965 [details] [review] Patch that removes qtvideosrc commit 367b4a353fb47559be8e0d430f69d192937a927b Author: Josep Torra <jtorra@oblong.com> Date: Wed May 3 13:21:42 2017 +0200 qtkit: drop the qtkitvideosrc element The QTKit framework had been deprecated for long in favour of AVFundation framework and we already have avfvideosrc that provides the same functionality. https://bugzilla.gnome.org/show_bug.cgi?id=782078