--- modules/gui/macosx/orig.open.m	2016-12-17 19:55:54.000000000 +0100
+++ modules/gui/macosx/open.m	2016-12-17 20:26:12.000000000 +0100
@@ -40,7 +40,14 @@
 #import <IOKit/storage/IODVDMedia.h>
 #import <IOKit/storage/IOBDMedia.h>
 #import <Cocoa/Cocoa.h>
+#import <AvailabilityMacros.h>
+#if defined(MAC_OS_X_VERSION_10_12) \
+    && ((MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12) || (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_12))
+#warning "Excluding all code and features based on QTKit"
+#else
 #import <QTKit/QTKit.h>
+#define HAVE_QTKIT
+#endif
 
 #import "intf.h"
 #import "playlist.h"
@@ -51,8 +58,10 @@
 
 #import <vlc_url.h>
 
+#ifdef HAVE_QTKIT
 NSArray *qtkvideoDevices;
 NSArray *qtkaudioDevices;
+#endif
 #define setEyeTVUnconnected \
 [o_capture_lbl setStringValue: _NS("No device is selected")]; \
 [o_capture_long_lbl setStringValue: _NS("No device is selected.\n\nChoose available device in above pull-down menu.\n")]; \
@@ -207,7 +216,9 @@
     [o_screen_width_lbl setStringValue: [NSString stringWithFormat:@"%@:",_NS("Subscreen width")]];
     [o_screen_height_lbl setStringValue: [NSString stringWithFormat:@"%@:",_NS("Subscreen height")]];
     [o_screen_follow_mouse_ckb setTitle: _NS("Follow the mouse")];
+#ifdef HAVE_QTKIT
     [o_screen_qtk_audio_ckb setTitle: _NS("Capture Audio")];
+#endif
     [o_eyetv_currentChannel_lbl setStringValue: _NS("Current channel:")];
     [o_eyetv_previousProgram_btn setTitle: _NS("Previous Channel")];
     [o_eyetv_nextProgram_btn setTitle: _NS("Next Channel")];
@@ -223,6 +234,7 @@
     [o_file_starttime_fld setFormatter:[[[PositionFormatter alloc] init] autorelease]];
     [o_file_stoptime_fld setFormatter:[[[PositionFormatter alloc] init] autorelease]];
 
+#ifdef HAVE_QTKIT
     [self qtkvideoDevices];
     [o_qtk_video_device_pop removeAllItems];
     msg_Dbg(VLCIntf, "Found %lu video capture devices", [qtkvideoDevices count]);
@@ -275,6 +287,7 @@
         [o_screen_qtk_audio_pop addItemWithTitle: _NS("None")];
         [qtkaudio_currdevice_uid release];
     }
+#endif
 
     [self setSubPanel];
 
@@ -321,7 +334,9 @@
     [[sharedWorkspace notificationCenter] addObserver:self selector:@selector(scanOpticalMedia:) name:NSWorkspaceDidMountNotification object:nil];
     [[sharedWorkspace notificationCenter] addObserver:self selector:@selector(scanOpticalMedia:) name:NSWorkspaceDidUnmountNotification object:nil];
 
+#ifdef HAVE_QTKIT
     [self qtkToggleUIElements:nil];
+#endif
     [self scanOpticalMedia:nil];
 
     [self setMRL: @""];
@@ -504,16 +519,20 @@
                     [o_options addObject: @"screen-follow-mouse"];
                 else
                     [o_options addObject: @"no-screen-follow-mouse"];
+#ifdef HAVE_QTKIT
                 if ([o_screen_qtk_audio_ckb state] && qtkaudio_currdevice_uid)
                    [o_options addObject: [NSString stringWithFormat: @"input-slave=qtsound://%@", qtkaudio_currdevice_uid]];
+#endif
             }
             else if ([[[o_capture_mode_pop selectedItem] title] isEqualToString: _NS("Input Devices")]) {
+#ifdef HAVE_QTKIT
                 if ([o_qtk_video_ckb state]) {
                     [o_options addObject: [NSString stringWithFormat: @"qtcapture-width=%i", [o_capture_width_fld intValue]]];
                     [o_options addObject: [NSString stringWithFormat: @"qtcapture-height=%i", [o_capture_height_fld intValue]]];
                     if ([o_qtk_audio_ckb state] && qtkaudio_currdevice_uid)
                        [o_options addObject: [NSString stringWithFormat: @"input-slave=qtsound://%@", qtkaudio_currdevice_uid]];
                 }
+#endif
             }
         }
 
@@ -539,11 +558,14 @@
     [o_screen_width_stp setMaxValue: item->rect.size.width];
     [o_screen_height_stp setMaxValue: item->rect.size.height];
 
+#ifdef HAVE_QTKIT
     [o_screen_qtk_audio_pop setEnabled: [o_screen_qtk_audio_ckb state]];
+#endif
 }
 
 - (IBAction)qtkChanged:(id)sender
 {
+#ifdef HAVE_QTKIT
     NSInteger i_selectedDevice = [o_qtk_video_device_pop indexOfSelectedItem];
     if ([qtkvideoDevices count] >= 1) {
         NSValue *sizes = [[[[qtkvideoDevices objectAtIndex:i_selectedDevice] formatDescriptions] objectAtIndex:0] attributeForKey: QTFormatDescriptionVideoEncodedPixelsSizeAttribute];
@@ -554,20 +576,24 @@
         [o_capture_height_stp setIntValue: [o_capture_height_fld intValue]];
         qtk_currdevice_uid = [[(QTCaptureDevice *)[qtkvideoDevices objectAtIndex:i_selectedDevice] uniqueID] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
     }
+#endif
 }
 
 - (IBAction)qtkAudioChanged:(id)sender
 {
+#ifdef HAVE_QTKIT
     NSInteger i_selectedDevice = [o_qtk_audio_device_pop indexOfSelectedItem];
     if ([qtkaudioDevices count] >= 1) {
         qtkaudio_currdevice_uid = [[(QTCaptureDevice *)[qtkaudioDevices objectAtIndex:i_selectedDevice] uniqueID] stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
     }
     [o_screen_qtk_audio_pop selectItemAtIndex: i_selectedDevice];
     [o_qtk_audio_device_pop selectItemAtIndex: i_selectedDevice];
+#endif
 }
 
 - (IBAction)qtkToggleUIElements:(id)sender
 {
+#ifdef HAVE_QTKIT
     [o_qtk_audio_device_pop setEnabled:[o_qtk_audio_ckb state]];
     BOOL b_state = [o_qtk_video_ckb state];
     [o_qtk_video_device_pop setEnabled:b_state];
@@ -578,6 +604,7 @@
     [self qtkAudioChanged:sender];
     [self qtkChanged:sender];
     [self openCaptureModeChanged:sender];
+#endif
 }
 
 #pragma mark -
@@ -1402,18 +1429,22 @@
         }
     }
     else if ([[[o_capture_mode_pop selectedItem] title] isEqualToString: _NS("Input Devices")]) {
+#ifdef HAVE_QTKIT
         [self showCaptureView: o_qtk_view];
         if ([o_capture_width_fld intValue] <= 0)
             [self qtkChanged:nil];
 
         [self qtkAudioChanged:nil];
+#endif
 
         [self setMRL: @""];
 
+#ifdef HAVE_QTKIT
         if ([o_qtk_video_ckb state] && qtk_currdevice_uid)
             [self setMRL:[NSString stringWithFormat:@"qtcapture://%@", qtk_currdevice_uid]];
         else if ([o_qtk_audio_ckb state] && qtkaudio_currdevice_uid)
             [self setMRL:[NSString stringWithFormat:@"qtsound://%@", qtkaudio_currdevice_uid]];
+#endif
     }
 }
 
@@ -1597,28 +1628,40 @@
 
 - (NSArray *)qtkvideoDevices
 {
+#ifdef HAVE_QTKIT
     if (!qtkvideoDevices)
         [self qtkrefreshVideoDevices];
     return qtkvideoDevices;
+#else
+    return NULL;
+#endif
 }
 
 - (void)qtkrefreshVideoDevices
 {
+#ifdef HAVE_QTKIT
     [qtkvideoDevices release];
     qtkvideoDevices = [[[QTCaptureDevice inputDevicesWithMediaType:QTMediaTypeVideo] arrayByAddingObjectsFromArray:[QTCaptureDevice inputDevicesWithMediaType:QTMediaTypeMuxed]] retain];
+#endif
 }
 
 - (NSArray *)qtkaudioDevices
 {
+#ifdef HAVE_QTKIT
     if (!qtkaudioDevices)
         [self qtkrefreshAudioDevices];
     return qtkaudioDevices;
+#else
+    return NULL;
+#endif
 }
 
 - (void)qtkrefreshAudioDevices
 {
+#ifdef HAVE_QTKIT
     [qtkaudioDevices release];
     qtkaudioDevices = [[[QTCaptureDevice inputDevicesWithMediaType:QTMediaTypeSound] arrayByAddingObjectsFromArray:[QTCaptureDevice inputDevicesWithMediaType:QTMediaTypeMuxed]] retain];
+#endif
 }
 
 @end