After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 782078 - qtkitvideosrc: Removed in order to avoid obsolete APIs
qtkitvideosrc: Removed in order to avoid obsolete APIs
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
unspecified
Other Mac OS
: Normal blocker
: 1.12.0
Assigned To: Josep Torra Valles
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2017-05-02 15:43 UTC by Josep Torra Valles
Modified: 2017-05-03 15:47 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Patch that removes qtvideosrc (25.08 KB, patch)
2017-05-03 11:24 UTC, Josep Torra Valles
committed Details | Review

Description Josep Torra Valles 2017-05-02 15:43:29 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....
Comment 1 Josep Torra Valles 2017-05-02 15:49:12 UTC
Maybe we should just drop this qtkitvideosrc element ?
Comment 2 Sebastian Dröge (slomo) 2017-05-02 15:55:00 UTC
That, or port it to use ARC too: https://bugzilla.gnome.org/show_bug.cgi?id=777847
Comment 3 Josep Torra Valles 2017-05-02 19:34:21 UTC
`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.
Comment 4 Sebastian Dröge (slomo) 2017-05-03 06:13:36 UTC
We're also not building it in our binaries anymore, so feel free to send a patch to remove it.
Comment 5 Josep Torra Valles 2017-05-03 11:24:01 UTC
Created attachment 350965 [details] [review]
Patch that removes qtvideosrc
Comment 6 Josep Torra Valles 2017-05-03 11:55:30 UTC
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