summaryrefslogtreecommitdiffstats
path: root/macosx
diff options
context:
space:
mode:
Diffstat (limited to 'macosx')
-rw-r--r--macosx/HBAddPresetController.m7
-rw-r--r--macosx/HBAdvancedController.m4
-rw-r--r--macosx/HBAppDelegate.m3
-rw-r--r--macosx/HBApplication.m3
-rw-r--r--macosx/HBAttributedStringAdditions.h12
-rw-r--r--macosx/HBAttributedStringAdditions.m12
-rw-r--r--macosx/HBAudioController.m6
-rw-r--r--macosx/HBAudioDefaults.m2
-rw-r--r--macosx/HBAudioDefaultsController.m3
-rw-r--r--macosx/HBAudioTrack.m5
-rw-r--r--macosx/HBAudioTrackPreset.m4
-rw-r--r--macosx/HBChapterTitlesController.m5
-rw-r--r--macosx/HBController.m16
-rw-r--r--macosx/HBCore.h36
-rw-r--r--macosx/HBCore.m17
-rw-r--r--macosx/HBDockTile.h12
-rw-r--r--macosx/HBDockTile.m12
-rw-r--r--macosx/HBFilters.m22
-rw-r--r--macosx/HBJob+HBJobConversion.m2
-rw-r--r--macosx/HBJob.m10
-rw-r--r--macosx/HBPicture.m10
-rw-r--r--macosx/HBPictureController.m5
-rw-r--r--macosx/HBPictureViewController.h12
-rw-r--r--macosx/HBPictureViewController.m17
-rw-r--r--macosx/HBPresetCoding.h4
-rw-r--r--macosx/HBPresetsViewController.m5
-rw-r--r--macosx/HBPreviewGenerator.m17
-rw-r--r--macosx/HBQueueController.m35
-rw-r--r--macosx/HBQueueOutlineView.h12
-rw-r--r--macosx/HBQueueOutlineView.m12
-rw-r--r--macosx/HBRange.m11
-rw-r--r--macosx/HBStateFormatter+Private.h35
-rw-r--r--macosx/HBStateFormatter+Private.m160
-rw-r--r--macosx/HBStateFormatter.h16
-rw-r--r--macosx/HBStateFormatter.m133
-rw-r--r--macosx/HBSubtitlesController.m4
-rw-r--r--macosx/HBSubtitlesDefaults.m1
-rw-r--r--macosx/HBSubtitlesDefaultsController.m3
-rw-r--r--macosx/HBSubtitlesTrack.m4
-rw-r--r--macosx/HBTitleSelectionController.m3
-rw-r--r--macosx/HBUtilities.h2
-rw-r--r--macosx/HBUtilities.m1
-rw-r--r--macosx/HBVideo.m13
-rw-r--r--macosx/HBVideoController.m4
-rw-r--r--macosx/HandBrake.xcodeproj/project.pbxproj811
-rw-r--r--macosx/HandBrake.xcodeproj/xcshareddata/xcschemes/HandBrake [DEBUG].xcscheme26
-rw-r--r--macosx/HandBrake.xcodeproj/xcshareddata/xcschemes/HandBrake [RELEASE].xcscheme23
-rw-r--r--macosx/HandBrakeKit/HandBrakeKit.h51
-rw-r--r--macosx/HandBrakeKit/Info.plist26
-rw-r--r--macosx/HandBrakeKitTests/HBDictTests.m100
-rw-r--r--macosx/HandBrakeKitTests/HBJobTests.m (renamed from macosx/HandBrake Tests/HBJobTests.m)1
-rw-r--r--macosx/HandBrakeKitTests/HBJobUndoTests.m (renamed from macosx/HandBrake Tests/HBJobUndoTests.m)0
-rw-r--r--macosx/HandBrakeKitTests/HBMockTitle.h (renamed from macosx/HandBrake Tests/HBMockTitle.h)0
-rw-r--r--macosx/HandBrakeKitTests/HBMockTitle.m (renamed from macosx/HandBrake Tests/HBMockTitle.m)0
-rw-r--r--macosx/HandBrakeKitTests/HBPresetsTests.m (renamed from macosx/HandBrake Tests/HBPresetsTests.m)0
-rw-r--r--macosx/HandBrakeKitTests/Info.plist (renamed from macosx/HandBrake Tests/Info.plist)0
-rw-r--r--macosx/NSArray+HBAdditions.h12
-rw-r--r--macosx/NSArray+HBAdditions.m12
58 files changed, 1180 insertions, 594 deletions
diff --git a/macosx/HBAddPresetController.m b/macosx/HBAddPresetController.m
index ab2097d72..bac103e15 100644
--- a/macosx/HBAddPresetController.m
+++ b/macosx/HBAddPresetController.m
@@ -5,15 +5,12 @@
It may be used under the terms of the GNU General Public License. */
#import "HBAddPresetController.h"
-#import "HBPreset.h"
-#import "HBMutablePreset.h"
-
-#import "HBAudioDefaults.h"
-#import "HBSubtitlesDefaults.h"
#import "HBAudioDefaultsController.h"
#import "HBSubtitlesDefaultsController.h"
+@import HandBrakeKit;
+
typedef NS_ENUM(NSUInteger, HBAddPresetControllerMode) {
HBAddPresetControllerModeNone,
HBAddPresetControllerModeCustom,
diff --git a/macosx/HBAdvancedController.m b/macosx/HBAdvancedController.m
index 5f75a6502..8d4beb8b1 100644
--- a/macosx/HBAdvancedController.m
+++ b/macosx/HBAdvancedController.m
@@ -5,8 +5,8 @@
It may be used under the terms of the GNU General Public License. */
#import "HBAdvancedController.h"
-#import "HBVideo.h"
-#import "HBVideo+UIAdditions.h"
+
+@import HandBrakeKit;
@interface HBAdvancedController ()
{
diff --git a/macosx/HBAppDelegate.m b/macosx/HBAppDelegate.m
index 537cc6144..80b4d5ac4 100644
--- a/macosx/HBAppDelegate.m
+++ b/macosx/HBAppDelegate.m
@@ -13,9 +13,10 @@
#import "HBPreferencesController.h"
#import "HBQueueController.h"
#import "HBOutputPanelController.h"
-#import "HBCore.h"
#import "HBController.h"
+@import HandBrakeKit;
+
#define PRESET_FILE @"UserPresets.json"
#define QUEUE_FILE @"Queue.hbqueue"
diff --git a/macosx/HBApplication.m b/macosx/HBApplication.m
index 2e0707128..1223621b4 100644
--- a/macosx/HBApplication.m
+++ b/macosx/HBApplication.m
@@ -6,7 +6,8 @@
#import "HBApplication.h"
#import "HBExceptionAlertController.h"
-#import "HBUtilities.h"
+
+@import HandBrakeKit.HBUtilities;
@implementation HBApplication
diff --git a/macosx/HBAttributedStringAdditions.h b/macosx/HBAttributedStringAdditions.h
index bcc26e839..890f6054a 100644
--- a/macosx/HBAttributedStringAdditions.h
+++ b/macosx/HBAttributedStringAdditions.h
@@ -1,10 +1,8 @@
-//
-// HBAttributedStringAdditions.h
-// HandBrake
-//
-// Created by Damiano Galassi on 16/01/15.
-//
-//
+/* HBAttributedStringAdditions.h $
+
+ This file is part of the HandBrake source code.
+ Homepage: <http://handbrake.fr/>.
+ It may be used under the terms of the GNU General Public License. */
#import <Foundation/Foundation.h>
diff --git a/macosx/HBAttributedStringAdditions.m b/macosx/HBAttributedStringAdditions.m
index 3700eb964..1f16a9568 100644
--- a/macosx/HBAttributedStringAdditions.m
+++ b/macosx/HBAttributedStringAdditions.m
@@ -1,10 +1,8 @@
-//
-// HBAttributedStringAdditions.m
-// HandBrake
-//
-// Created by Damiano Galassi on 16/01/15.
-//
-//
+/* HBAttributedStringAdditions.m $
+
+ This file is part of the HandBrake source code.
+ Homepage: <http://handbrake.fr/>.
+ It may be used under the terms of the GNU General Public License. */
#import "HBAttributedStringAdditions.h"
diff --git a/macosx/HBAudioController.m b/macosx/HBAudioController.m
index f3d49767d..9432e943e 100644
--- a/macosx/HBAudioController.m
+++ b/macosx/HBAudioController.m
@@ -5,11 +5,11 @@
It may be used under the terms of the GNU General Public License. */
#import "HBAudioController.h"
-
-#import "HBAudio.h"
-#import "HBAudioDefaults.h"
#import "HBAudioDefaultsController.h"
+@import HandBrakeKit.HBAudio;
+@import HandBrakeKit.HBAudioDefaults;
+
@interface HBAudioController ()
@property (nonatomic, readwrite, strong) HBAudioDefaultsController *defaultsController;
diff --git a/macosx/HBAudioDefaults.m b/macosx/HBAudioDefaults.m
index 5035f8c0d..60bb933c8 100644
--- a/macosx/HBAudioDefaults.m
+++ b/macosx/HBAudioDefaults.m
@@ -7,6 +7,8 @@
#import "HBAudioDefaults.h"
#import "HBAudioTrackPreset.h"
#import "HBCodingUtilities.h"
+#import "HBMutablePreset.h"
+
#import "hb.h"
#import "lang.h"
diff --git a/macosx/HBAudioDefaultsController.m b/macosx/HBAudioDefaultsController.m
index 7f8db2009..6b956cbfd 100644
--- a/macosx/HBAudioDefaultsController.m
+++ b/macosx/HBAudioDefaultsController.m
@@ -5,9 +5,10 @@
It may be used under the terms of the GNU General Public License. */
#import "HBAudioDefaultsController.h"
-#import "HBAudioDefaults.h"
#import "HBLanguagesSelection.h"
+@import HandBrakeKit.HBAudioDefaults;
+
static void *HBAudioDefaultsContext = &HBAudioDefaultsContext;
@interface HBAudioDefaultsController ()
diff --git a/macosx/HBAudioTrack.m b/macosx/HBAudioTrack.m
index 7a6eb725e..aa8f8f99b 100644
--- a/macosx/HBAudioTrack.m
+++ b/macosx/HBAudioTrack.m
@@ -671,6 +671,11 @@ static NSMutableArray *masterBitRateArray = nil;
{
retval = [NSSet setWithObjects:@"track", @"mixdown", nil];
}
+ else
+ {
+ retval = [NSSet set];
+ }
+
return retval;
}
diff --git a/macosx/HBAudioTrackPreset.m b/macosx/HBAudioTrackPreset.m
index 5ce04258f..fe4329082 100644
--- a/macosx/HBAudioTrackPreset.m
+++ b/macosx/HBAudioTrackPreset.m
@@ -310,6 +310,10 @@ static void *HBAudioEncoderContex = &HBAudioEncoderContex;
{
retval = [NSSet setWithObjects:@"encoder", @"mixdown", @"sampleRate", nil];
}
+ else
+ {
+ retval = [NSSet set];
+ }
return retval;
}
diff --git a/macosx/HBChapterTitlesController.m b/macosx/HBChapterTitlesController.m
index 7f04a5139..6fabfb5bc 100644
--- a/macosx/HBChapterTitlesController.m
+++ b/macosx/HBChapterTitlesController.m
@@ -5,8 +5,9 @@
It may be used under the terms of the GNU General Public License. */
#import "HBChapterTitlesController.h"
-#import "HBChapter.h"
-#import "HBJob.h"
+
+@import HandBrakeKit.HBChapter;
+@import HandBrakeKit.HBJob;
@interface HBChapterTitlesController () <NSTableViewDataSource, NSTableViewDelegate>
diff --git a/macosx/HBController.m b/macosx/HBController.m
index 0bbf67ddf..c7faf6257 100644
--- a/macosx/HBController.m
+++ b/macosx/HBController.m
@@ -13,7 +13,6 @@
#import "HBPresetsManager.h"
#import "HBPreset.h"
#import "HBMutablePreset.h"
-#import "HBUtilities.h"
#import "HBPictureViewController.h"
#import "HBVideoController.h"
@@ -28,10 +27,7 @@
#import "HBPresetsViewController.h"
#import "HBAddPresetController.h"
-#import "HBCore.h"
-#import "HBTitle.h"
-#import "HBJob.h"
-#import "HBStateFormatter.h"
+@import HandBrakeKit;
@interface HBController () <HBPresetsViewControllerDelegate, HBTitleSelectionDelegate, NSDrawerDelegate, NSDraggingDestination>
{
@@ -548,17 +544,15 @@
int hb_num_previews = [[[NSUserDefaults standardUserDefaults] objectForKey:@"PreviewsNumber"] intValue];
int min_title_duration_seconds = [[[NSUserDefaults standardUserDefaults] objectForKey:@"MinTitleScanSeconds"] intValue];
- HBStateFormatter *formatter = [[HBStateFormatter alloc] init];
-
[self.core scanURL:mediaURL
titleIndex:index
previews:hb_num_previews minDuration:min_title_duration_seconds
- progressHandler:^(HBState state, hb_state_t hb_state)
+ progressHandler:^(HBState state, HBProgress progress, NSString *info)
{
- fSrcDVD2Field.stringValue = [formatter stateToString:hb_state title:nil];
+ fSrcDVD2Field.stringValue = info;
fScanIndicator.hidden = NO;
fScanHorizontalLine.hidden = YES;
- fScanIndicator.doubleValue = [formatter stateToPercentComplete:hb_state];
+ fScanIndicator.doubleValue = progress.percent;
}
completionHandler:^(HBCoreResult result)
{
@@ -826,7 +820,7 @@
- (void)chapterPopUpChanged:(NSNotification *)notification
{
// We're changing the chapter range - we may need to flip the m4v/mp4 extension
- if (self.job.container & HB_MUX_MASK_MP4)
+ if (self.job.container & 0x030000 /*HB_MUX_MASK_MP4*/)
{
[self updateFileExtension:notification];
}
diff --git a/macosx/HBCore.h b/macosx/HBCore.h
index 1c2ab306b..829bdb53b 100644
--- a/macosx/HBCore.h
+++ b/macosx/HBCore.h
@@ -5,24 +5,34 @@
It may be used under the terms of the GNU General Public License. */
#import <Foundation/Foundation.h>
-#include "hb.h"
@class HBJob;
@class HBPicture;
@class HBTitle;
+@class HBStateFormatter;
NS_ASSUME_NONNULL_BEGIN
+struct HBProgress
+{
+ double percent;
+
+ int hours;
+ int minutes;
+ int seconds;
+};
+typedef struct HBProgress HBProgress;
+
// These constants specify the current state of HBCore.
typedef NS_ENUM(NSUInteger, HBState) {
- HBStateIdle = HB_STATE_IDLE, ///< HB is doing nothing
- HBStateScanning = HB_STATE_SCANNING, ///< HB is scanning
- HBStateScanDone = HB_STATE_SCANDONE, ///< Scanning has been completed
- HBStateWorking = HB_STATE_WORKING, ///< HB is encoding
- HBStatePaused = HB_STATE_PAUSED, ///< Encoding is paused
- HBStateWorkDone = HB_STATE_WORKDONE, ///< Encoding has been completed
- HBStateMuxing = HB_STATE_MUXING, ///< HB is muxing
- HBStateSearching = HB_STATE_SEARCHING ///< HB is searching
+ HBStateIdle = 1, ///< HB is doing nothing
+ HBStateScanning = 2, ///< HB is scanning
+ HBStateScanDone = 4, ///< Scanning has been completed
+ HBStateWorking = 8, ///< HB is encoding
+ HBStatePaused = 16, ///< Encoding is paused
+ HBStateWorkDone = 32, ///< Encoding has been completed
+ HBStateMuxing = 64, ///< HB is muxing
+ HBStateSearching = 128 ///< HB is searching
};
// These constants specify the result of a scan or encode.
@@ -32,7 +42,7 @@ typedef NS_ENUM(NSUInteger, HBCoreResult) {
HBCoreResultFailed,
};
-typedef void (^HBCoreProgressHandler)(HBState state, hb_state_t hb_state);
+typedef void (^HBCoreProgressHandler)(HBState state, HBProgress progress, NSString *info);
typedef void (^HBCoreCompletionHandler)(HBCoreResult result);
/**
@@ -89,6 +99,12 @@ typedef void (^HBCoreCompletionHandler)(HBCoreResult result);
*/
@property (nonatomic, readwrite) int logLevel;
+
+/**
+ * State formatter.
+ */
+@property (nonatomic, readwrite, strong) HBStateFormatter *stateFormatter;
+
/**
* Current state of HBCore.
*/
diff --git a/macosx/HBCore.m b/macosx/HBCore.m
index 3c2ac0b8b..15116ac56 100644
--- a/macosx/HBCore.m
+++ b/macosx/HBCore.m
@@ -10,6 +10,7 @@
#import "HBDVDDetector.h"
#import "HBUtilities.h"
+#import "HBStateFormatter+Private.h"
#import "HBTitlePrivate.h"
#include <dlfcn.h>
@@ -98,6 +99,7 @@ static void hb_error_handler(const char *errmsg)
_updateTimerQueue = dispatch_queue_create("fr.handbrake.coreQueue", DISPATCH_QUEUE_SERIAL);
_titles = @[];
+ _stateFormatter = [[HBStateFormatter alloc] init];
_hb_state = malloc(sizeof(struct hb_state_s));
_logLevel = level;
@@ -557,7 +559,20 @@ static void hb_error_handler(const char *errmsg)
{
if (self.progressHandler)
{
- self.progressHandler(self.state, *(self.hb_state));
+ hb_state_t state = *(self.hb_state);
+ HBProgress progress = {0, 0, 0, 0};
+ progress.percent = [self.stateFormatter stateToPercentComplete:state];
+
+ if (state.state == HB_STATE_WORKING)
+ {
+ progress.hours = state.param.working.hours;
+ progress.minutes = state.param.working.minutes;
+ progress.seconds = state.param.working.seconds;
+ }
+
+ NSString *info = [self.stateFormatter stateToString:state];
+
+ self.progressHandler(self.state, progress, info);
}
}
diff --git a/macosx/HBDockTile.h b/macosx/HBDockTile.h
index caac2844e..2b14cc824 100644
--- a/macosx/HBDockTile.h
+++ b/macosx/HBDockTile.h
@@ -1,10 +1,8 @@
-//
-// HBDockTile.h
-// HandBrake
-//
-// Created by Damiano Galassi on 20/08/14.
-//
-//
+/* HBDockTile.h $
+
+ This file is part of the HandBrake source code.
+ Homepage: <http://handbrake.fr/>.
+ It may be used under the terms of the GNU General Public License. */
#import <Cocoa/Cocoa.h>
diff --git a/macosx/HBDockTile.m b/macosx/HBDockTile.m
index dfad7d5ec..38a4dda3f 100644
--- a/macosx/HBDockTile.m
+++ b/macosx/HBDockTile.m
@@ -1,10 +1,8 @@
-//
-// HBDockTile.m
-// HandBrake
-//
-// Created by Damiano Galassi on 20/08/14.
-//
-//
+/* HBDockTile.m $
+
+ This file is part of the HandBrake source code.
+ Homepage: <http://handbrake.fr/>.
+ It may be used under the terms of the GNU General Public License. */
#import "HBDockTile.h"
#import "DockTextField.h"
diff --git a/macosx/HBFilters.m b/macosx/HBFilters.m
index 2d7028431..7df571b8d 100644
--- a/macosx/HBFilters.m
+++ b/macosx/HBFilters.m
@@ -7,6 +7,8 @@
#import "HBFilters.h"
#import "HBCodingUtilities.h"
#import "NSDictionary+HBAdditions.h"
+#import "HBMutablePreset.h"
+
#include "hb.h"
NSString * const HBFiltersChangedNotification = @"HBFiltersChangedNotification";
@@ -280,33 +282,37 @@ NSString * const HBFiltersChangedNotification = @"HBFiltersChangedNotification";
{
retval = [NSSet setWithObjects:@"detelecine", @"detelecineCustomString", @"deinterlace", @"deinterlacePreset", @"deinterlaceCustomString", @"denoise", @"denoisePreset", @"denoiseTune", @"denoiseCustomString", @"deblock", @"grayscale", nil];
}
- if ([key isEqualToString:@"customDetelecineSelected"] ||
- [key isEqualToString:@"customDeinterlaceSelected"])
+ else if ([key isEqualToString:@"customDetelecineSelected"])
{
- retval = [NSSet setWithObjects:@"detelecine", @"deinterlace", nil];
+ retval = [NSSet setWithObjects:@"detelecine", nil];
}
- if ([key isEqualToString:@"denoiseTunesAvailable"] ||
+ else if ([key isEqualToString:@"denoiseTunesAvailable"] ||
[key isEqualToString:@"customDenoiseSelected"])
{
retval = [NSSet setWithObjects:@"denoise", @"denoisePreset", nil];
}
- if ([key isEqualToString:@"denoiseEnabled"])
+ else if ([key isEqualToString:@"denoiseEnabled"])
{
retval = [NSSet setWithObject:@"denoise"];
}
- if ([key isEqualToString:@"deinterlaceEnabled"])
+ else if ([key isEqualToString:@"deinterlaceEnabled"])
{
retval = [NSSet setWithObject:@"deinterlace"];
}
- if ([key isEqualToString:@"customDeinterlaceSelected"] ||
+ else if ([key isEqualToString:@"customDeinterlaceSelected"] ||
[key isEqualToString:@"deinterlacePresets"])
{
retval = [NSSet setWithObjects:@"deinterlace", @"deinterlacePreset", nil];
}
- if ([key isEqualToString:@"deblockSummary"])
+ else if ([key isEqualToString:@"deblockSummary"])
{
retval = [NSSet setWithObject:@"deblock"];
}
+ else
+ {
+ retval = [NSSet set];
+ }
+
return retval;
}
diff --git a/macosx/HBJob+HBJobConversion.m b/macosx/HBJob+HBJobConversion.m
index 5db1bd840..aa109971f 100644
--- a/macosx/HBJob+HBJobConversion.m
+++ b/macosx/HBJob+HBJobConversion.m
@@ -462,7 +462,7 @@
self.picture.width, self.picture.height,
self.picture.cropTop, self.picture.cropBottom,
self.picture.cropLeft, self.picture.cropRight].UTF8String);
-
+
// Add grayscale filter
if (self.filters.grayscale)
{
diff --git a/macosx/HBJob.m b/macosx/HBJob.m
index cbdbfbe15..e97c46cb6 100644
--- a/macosx/HBJob.m
+++ b/macosx/HBJob.m
@@ -11,6 +11,7 @@
#import "HBSubtitlesDefaults.h"
#import "HBCodingUtilities.h"
+#import "HBMutablePreset.h"
#include "hb.h"
@@ -180,17 +181,20 @@ NSString *HBChaptersChangedNotification = @"HBChaptersChangedNotification";
+ (NSSet *)keyPathsForValuesAffectingValueForKey:(NSString *)key
{
- NSSet *retval = nil;
+ NSSet *retval = [NSSet set];
if ([key isEqualToString:@"mp4OptionsEnabled"])
{
retval = [NSSet setWithObjects:@"container", nil];
}
-
- if ([key isEqualToString:@"mp4iPodCompatibleEnabled"])
+ else if ([key isEqualToString:@"mp4iPodCompatibleEnabled"])
{
retval = [NSSet setWithObjects:@"container", @"video.encoder", nil];
}
+ else
+ {
+ retval = [NSSet set];
+ }
return retval;
}
diff --git a/macosx/HBPicture.m b/macosx/HBPicture.m
index d241ce6d8..b1fc690a6 100644
--- a/macosx/HBPicture.m
+++ b/macosx/HBPicture.m
@@ -8,6 +8,7 @@
#import "HBTitle.h"
#import "HBCodingUtilities.h"
+#import "HBMutablePreset.h"
#include "hb.h"
@@ -430,17 +431,22 @@ NSString * const HBPictureChangedNotification = @"HBPictureChangedNotification";
retval = [NSSet setWithObjects:@"anamorphicMode", nil];
}
- if ([key isEqualToString:@"maxWidth"] ||
+ else if ([key isEqualToString:@"maxWidth"] ||
[key isEqualToString:@"maxHeight"])
{
retval = [NSSet setWithObjects:@"cropTop", @"cropBottom", @"cropLeft", @"cropRight", nil];
}
- if ([key isEqualToString:@"info"] || [key isEqualToString:@"summary"])
+ else if ([key isEqualToString:@"info"] || [key isEqualToString:@"summary"])
{
retval = [NSSet setWithObjects:@"parWidth", @"parHeight", @"displayWidth", @"width", @"height",@"anamorphicMode", @"cropTop", @"cropBottom", @"cropLeft", @"cropRight", nil];
}
+ else
+ {
+ retval = [NSSet set];
+ }
+
return retval;
}
diff --git a/macosx/HBPictureController.m b/macosx/HBPictureController.m
index b6fed1f28..371b6bc01 100644
--- a/macosx/HBPictureController.m
+++ b/macosx/HBPictureController.m
@@ -5,8 +5,9 @@
It may be used under the terms of the GNU General Public License. */
#import "HBPictureController.h"
-#import "HBFilters.h"
-#import "HBPicture.h"
+
+@import HandBrakeKit.HBFilters;
+@import HandBrakeKit.HBPicture;
static void *HBPictureControllerContext = &HBPictureControllerContext;
diff --git a/macosx/HBPictureViewController.h b/macosx/HBPictureViewController.h
index 4ee956fae..3b92615ca 100644
--- a/macosx/HBPictureViewController.h
+++ b/macosx/HBPictureViewController.h
@@ -1,10 +1,8 @@
-//
-// HBPictureViewController.h
-// HandBrake
-//
-// Created by Damiano Galassi on 24/07/15.
-//
-//
+/* HBPictureViewController.h $
+
+ This file is part of the HandBrake source code.
+ Homepage: <http://handbrake.fr/>.
+ It may be used under the terms of the GNU General Public License. */
#import <Cocoa/Cocoa.h>
diff --git a/macosx/HBPictureViewController.m b/macosx/HBPictureViewController.m
index 87618cb97..e462a06d7 100644
--- a/macosx/HBPictureViewController.m
+++ b/macosx/HBPictureViewController.m
@@ -1,14 +1,13 @@
-//
-// HBPictureViewController.m
-// HandBrake
-//
-// Created by Damiano Galassi on 24/07/15.
-//
-//
+/* HBPictureViewController.m $
+
+ This file is part of the HandBrake source code.
+ Homepage: <http://handbrake.fr/>.
+ It may be used under the terms of the GNU General Public License. */
#import "HBPictureViewController.h"
-#import "HBFilters.h"
-#import "HBPicture.h"
+
+@import HandBrakeKit.HBFilters;
+@import HandBrakeKit.HBPicture;
static void *HBPictureViewControllerContext = &HBPictureViewControllerContext;
diff --git a/macosx/HBPresetCoding.h b/macosx/HBPresetCoding.h
index aca9aac34..9b51f6d3a 100644
--- a/macosx/HBPresetCoding.h
+++ b/macosx/HBPresetCoding.h
@@ -6,8 +6,8 @@
#import <Foundation/Foundation.h>
-#import "HBPreset.h"
-#import "HBMutablePreset.h"
+@class HBPreset;
+@class HBMutablePreset;
@protocol HBPresetCoding <NSObject>
diff --git a/macosx/HBPresetsViewController.m b/macosx/HBPresetsViewController.m
index 532968692..1eaab7e30 100644
--- a/macosx/HBPresetsViewController.m
+++ b/macosx/HBPresetsViewController.m
@@ -5,8 +5,9 @@
It may be used under the terms of the GNU General Public License. */
#import "HBPresetsViewController.h"
-#import "HBPresetsManager.h"
-#import "HBPreset.h"
+
+@import HandBrakeKit.HBPresetsManager;
+@import HandBrakeKit.HBPreset;
// drag and drop pasteboard type
#define kHandBrakePresetPBoardType @"handBrakePresetPBoardType"
diff --git a/macosx/HBPreviewGenerator.m b/macosx/HBPreviewGenerator.m
index bf27b10e7..a12dbe5fb 100644
--- a/macosx/HBPreviewGenerator.m
+++ b/macosx/HBPreviewGenerator.m
@@ -6,12 +6,8 @@
//
#import "HBPreviewGenerator.h"
-#import "HBUtilities.h"
-#import "HBCore.h"
-#import "HBJob.h"
-#import "HBStateFormatter.h"
-#import "HBPicture+UIAdditions.h"
+@import HandBrakeKit;
@interface HBPreviewGenerator ()
@@ -177,12 +173,12 @@
NSURL *destURL = nil;
// Generate the file url and directories.
- if (self.job.container & HB_MUX_MASK_MP4)
+ if (self.job.container & 0x030000 /*HB_MUX_MASK_MP4*/)
{
// we use .m4v for our mp4 files so that ac3 and chapters in mp4 will play properly.
destURL = [HBPreviewGenerator generateFileURLForType:@"m4v"];
}
- else if (self.job.container & HB_MUX_MASK_MKV)
+ else if (self.job.container & 0x300000 /*HB_MUX_MASK_MKV*/)
{
destURL = [HBPreviewGenerator generateFileURLForType:@"mkv"];
}
@@ -216,12 +212,13 @@
HBStateFormatter *formatter = [[HBStateFormatter alloc] init];
formatter.twoLines = NO;
formatter.showPassNumber = NO;
+ formatter.title = NSLocalizedString(@"preview", nil);
// start the actual encode
[self.core encodeJob:job
- progressHandler:^(HBState state, hb_state_t hb_state) {
- [self.delegate updateProgress:[formatter stateToPercentComplete:hb_state]
- info:[formatter stateToString:hb_state title:@"preview"]];
+ progressHandler:^(HBState state, HBProgress progress, NSString *info) {
+ [self.delegate updateProgress:progress.percent
+ info:info];
}
completionHandler:^(HBCoreResult result) {
// Encode done, call the delegate and close libhb handle
diff --git a/macosx/HBQueueController.m b/macosx/HBQueueController.m
index 8c020539b..ac33e8dd0 100644
--- a/macosx/HBQueueController.m
+++ b/macosx/HBQueueController.m
@@ -6,19 +6,11 @@
#import "HBQueueController.h"
-#import "HBCore.h"
#import "HBController.h"
#import "HBAppDelegate.h"
#import "HBQueueOutlineView.h"
-#import "HBUtilities.h"
-#import "HBJob.h"
-#import "HBJob+UIAdditions.h"
-
-#import "HBStateFormatter.h"
-
-#import "HBDistributedArray.h"
#import "NSArray+HBAdditions.h"
#import "HBDockTile.h"
@@ -27,6 +19,8 @@
#import "HBJobOutputFileWriter.h"
#import "HBPreferencesController.h"
+@import HandBrakeKit;
+
// Pasteboard type for or drag operations
#define DragDropSimplePboardType @"HBQueueCustomOutlineViewPboardType"
@@ -657,12 +651,11 @@
- (void)encodeJob:(HBJob *)job
{
NSParameterAssert(job);
- HBStateFormatter *formatter = [[HBStateFormatter alloc] init];
// Progress handler
- void (^progressHandler)(HBState state, hb_state_t hb_state) = ^(HBState state, hb_state_t hb_state)
+ void (^progressHandler)(HBState state, HBProgress progress, NSString *info) = ^(HBState state, HBProgress progress, NSString *info)
{
- NSString *status = [formatter stateToString:hb_state title:nil];
+ NSString *status = info;
self.progressTextField.stringValue = status;
[self.controller setQueueInfo:status progress:0 hidden:NO];
};
@@ -701,23 +694,19 @@
// Reset the title in the job.
job.title = self.core.titles[0];
- HBStateFormatter *converter = [[HBStateFormatter alloc] init];
- NSString *destinationName = job.destURL.lastPathComponent;
+ HBStateFormatter *formatter = [[HBStateFormatter alloc] init];
+ formatter.title = job.destURL.lastPathComponent;
+ self.core.stateFormatter = formatter;
// Progress handler
- void (^progressHandler)(HBState state, hb_state_t hb_state) = ^(HBState state, hb_state_t hb_state)
+ void (^progressHandler)(HBState state, HBProgress progress, NSString *info) = ^(HBState state, HBProgress progress, NSString *info)
{
- NSString *string = [converter stateToString:hb_state title:destinationName];
- CGFloat progress = [converter stateToPercentComplete:hb_state];
-
if (state == HBStateWorking)
{
// Update dock icon
- if (self.dockIconProgress < 100.0 * progress)
+ if (self.dockIconProgress < 100.0 * progress.percent)
{
- #define p hb_state.param.working
- [self.dockTile updateDockIcon:progress hours:p.hours minutes:p.minutes seconds:p.seconds];
- #undef p
+ [self.dockTile updateDockIcon:progress.percent hours:progress.hours minutes:progress.minutes seconds:progress.seconds];
self.dockIconProgress += dockTileUpdateFrequency;
}
}
@@ -727,8 +716,8 @@
}
// Update text field
- self.progressTextField.stringValue = string;
- [self.controller setQueueInfo:string progress:progress hidden:NO];
+ self.progressTextField.stringValue = info;
+ [self.controller setQueueInfo:info progress:progress.percent hidden:NO];
};
// Completion handler
diff --git a/macosx/HBQueueOutlineView.h b/macosx/HBQueueOutlineView.h
index 7422973db..8565237cb 100644
--- a/macosx/HBQueueOutlineView.h
+++ b/macosx/HBQueueOutlineView.h
@@ -1,10 +1,8 @@
-//
-// HBQueueOutlineView.h
-// HandBrake
-//
-// Created by Damiano Galassi on 23/11/14.
-//
-//
+/* HBQueueOutlineView.h $
+
+ This file is part of the HandBrake source code.
+ Homepage: <http://handbrake.fr/>.
+ It may be used under the terms of the GNU General Public License. */
#import <Cocoa/Cocoa.h>
diff --git a/macosx/HBQueueOutlineView.m b/macosx/HBQueueOutlineView.m
index 0c7bce87f..9719686c1 100644
--- a/macosx/HBQueueOutlineView.m
+++ b/macosx/HBQueueOutlineView.m
@@ -1,10 +1,8 @@
-//
-// HBQueueOutlineView.m
-// HandBrake
-//
-// Created by Damiano Galassi on 23/11/14.
-//
-//
+/* HBQueueOutlineView.m $
+
+ This file is part of the HandBrake source code.
+ Homepage: <http://handbrake.fr/>.
+ It may be used under the terms of the GNU General Public License. */
#import "HBQueueOutlineView.h"
diff --git a/macosx/HBRange.m b/macosx/HBRange.m
index 2d17e36cd..b048b0e90 100644
--- a/macosx/HBRange.m
+++ b/macosx/HBRange.m
@@ -159,14 +159,17 @@ NSString *HBRangeChangedNotification = @"HBRangeChangedNotification";
retval = [NSSet setWithObjects:@"type", @"chapterStart", @"chapterStop", @"frameStart", @"frameStop",
@"secondsStart", @"secondsStop",nil];
}
-
- if ([key isEqualToString:@"chaptersSelected"] ||
- [key isEqualToString:@"secondsSelected"] ||
- [key isEqualToString:@"framesSelected"])
+ else if ([key isEqualToString:@"chaptersSelected"] ||
+ [key isEqualToString:@"secondsSelected"] ||
+ [key isEqualToString:@"framesSelected"])
{
retval = [NSSet setWithObjects:@"type",nil];
}
+ else
+ {
+ retval = [NSSet set];
+ }
return retval;
}
diff --git a/macosx/HBStateFormatter+Private.h b/macosx/HBStateFormatter+Private.h
new file mode 100644
index 000000000..ee71b8141
--- /dev/null
+++ b/macosx/HBStateFormatter+Private.h
@@ -0,0 +1,35 @@
+//
+// HBStateFormatter+Private.h
+// HandBrake
+//
+// Created by Damiano Galassi on 24/02/16.
+//
+//
+
+#import <Foundation/Foundation.h>
+#import "HBStateFormatter.h"
+#include "hb.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface HBStateFormatter (Private)
+
+/**
+ * Returns a string containing the formatted value of the provided hb_state_t struct.
+ *
+ * @param s hb_state_t
+ * @param title the title of the current job
+ */
+- (NSString *)stateToString:(hb_state_t)s;
+
+/**
+ * Returns a float containing the completion percent.
+ * the float range is [0,1]
+ *
+ * @param s hb_state_t
+ */
+- (float)stateToPercentComplete:(hb_state_t)s;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/macosx/HBStateFormatter+Private.m b/macosx/HBStateFormatter+Private.m
new file mode 100644
index 000000000..7c5f600ee
--- /dev/null
+++ b/macosx/HBStateFormatter+Private.m
@@ -0,0 +1,160 @@
+//
+// HBStateFormatter+Private.m
+// HandBrake
+//
+// Created by Damiano Galassi on 24/02/16.
+//
+//
+
+#import "HBStateFormatter+Private.h"
+
+@implementation HBStateFormatter (Private)
+
+- (NSString *)stateToString:(hb_state_t)s
+{
+ NSMutableString *string = [NSMutableString string];
+
+ switch (s.state)
+ {
+#define p s.param.working
+
+ case HB_STATE_SEARCHING:
+ {
+ [string appendFormat:
+ NSLocalizedString(@"Searching for start point… : %.2f %%", nil),
+ 100.0 * p.progress];
+
+ if (p.seconds > -1)
+ {
+ [string appendFormat:NSLocalizedString(@" (ETA %02dh%02dm%02ds)", nil), p.hours, p.minutes, p.seconds];
+ }
+
+ break;
+ }
+
+ case HB_STATE_WORKING:
+ {
+ [string appendFormat:NSLocalizedString(@"Encoding %@ ", nil), self.title];
+
+ if (self.twoLines)
+ {
+ [string appendString:@"\n"];
+ }
+
+ if (self.showPassNumber)
+ {
+ if (p.pass_id == HB_PASS_SUBTITLE)
+ {
+ [string appendFormat:
+ NSLocalizedString(@"Pass %d %@ of %d, %.2f %%", nil),
+ p.pass,
+ NSLocalizedString(@"(subtitle scan)", nil),
+ p.pass_count, 100.0 * p.progress];
+ }
+ else
+ {
+ [string appendFormat:
+ NSLocalizedString(@"Pass %d of %d, %.2f %%", nil),
+ p.pass, p.pass_count, 100.0 * p.progress];
+ }
+ }
+
+ if (p.seconds > -1)
+ {
+ if (p.rate_cur > 0.0)
+ {
+ [string appendFormat:
+ NSLocalizedString(@" (%.2f fps, avg %.2f fps, ETA %02dh%02dm%02ds)", nil),
+ p.rate_cur, p.rate_avg, p.hours, p.minutes, p.seconds];
+ }
+ else
+ {
+ [string appendFormat:
+ NSLocalizedString(@" (ETA %02dh%02dm%02ds)", nil),
+ p.hours, p.minutes, p.seconds];
+ }
+ }
+
+ break;
+ }
+
+ case HB_STATE_MUXING:
+ {
+ [string appendString:NSLocalizedString(@"Muxing…", nil)];
+ break;
+ }
+
+ case HB_STATE_PAUSED:
+ {
+ [string appendString:NSLocalizedString(@"Paused", nil)];
+ break;
+ }
+
+#undef p
+ case HB_STATE_SCANNING:
+ {
+#define p s.param.scanning
+ if (p.preview_cur)
+ {
+ [string appendFormat:
+ NSLocalizedString(@"Scanning title %d of %d, preview %d…", nil),
+ p.title_cur, p.title_count,
+ p.preview_cur];
+ }
+ else
+ {
+ [string appendFormat:
+ NSLocalizedString(@"Scanning title %d of %d…", nil),
+ p.title_cur, p.title_count];
+ }
+#undef p
+ break;
+ }
+
+ default:
+ break;
+ }
+
+ return string;
+}
+
+- (float)stateToPercentComplete:(hb_state_t)s
+{
+ float progress = 0;
+
+ switch (s.state)
+ {
+ case HB_STATE_WORKING:
+#define p s.param.working
+ progress = (p.progress + p.pass - 1) / p.pass_count;
+#undef p
+
+ break;
+
+ case HB_STATE_SCANNING:
+#define p s.param.scanning
+ progress = p.progress;
+#undef p
+ break;
+
+ case HB_STATE_MUXING:
+ progress = 1;
+ break;
+
+ default:
+ break;
+ }
+
+ if (progress < 0)
+ {
+ progress = 0;
+ }
+ else if (progress > 1)
+ {
+ progress = 1;
+ }
+
+ return progress;
+}
+
+@end
diff --git a/macosx/HBStateFormatter.h b/macosx/HBStateFormatter.h
index 823230929..49c3599e2 100644
--- a/macosx/HBStateFormatter.h
+++ b/macosx/HBStateFormatter.h
@@ -5,7 +5,6 @@
It may be used under the terms of the GNU General Public License. */
#import <Foundation/Foundation.h>
-#include "hb.h"
NS_ASSUME_NONNULL_BEGIN
@@ -15,20 +14,9 @@ NS_ASSUME_NONNULL_BEGIN
@interface HBStateFormatter : NSObject
/**
- * Returns a string containing the formatted value of the provided hb_state_t struct.
- *
- * @param s hb_state_t
- * @param title the title of the current job
+ * The title to show in the output info.
*/
-- (NSString *)stateToString:(hb_state_t)s title:(nullable NSString *)title;
-
-/**
- * Returns a CGFloat containing the completion percent.
- * the CGFloat range is [0,1]
- *
- * @param s hb_state_t
- */
-- (CGFloat)stateToPercentComplete:(hb_state_t)s;
+@property (nonatomic, readwrite, copy) NSString *title;
/**
* Break the output string in two lines.
diff --git a/macosx/HBStateFormatter.m b/macosx/HBStateFormatter.m
index 13c987a50..5dadd821d 100644
--- a/macosx/HBStateFormatter.m
+++ b/macosx/HBStateFormatter.m
@@ -19,137 +19,4 @@
return self;
}
-- (NSString *)stateToString:(hb_state_t)s title:(NSString *)title
-{
- NSMutableString *string = [NSMutableString string];
-
- switch (s.state)
- {
- #define p s.param.working
-
- case HB_STATE_SEARCHING:
- {
- [string appendFormat:
- NSLocalizedString(@"Searching for start point… : %.2f %%", nil),
- 100.0 * p.progress];
-
- if (p.seconds > -1)
- {
- [string appendFormat:NSLocalizedString(@" (ETA %02dh%02dm%02ds)", nil), p.hours, p.minutes, p.seconds];
- }
-
- break;
- }
-
- case HB_STATE_WORKING:
- {
- [string appendFormat:NSLocalizedString(@"Encoding %@ ", nil), title];
-
- if (_twoLines)
- {
- [string appendString:@"\n"];
- }
-
- if (_showPassNumber)
- {
- if (p.pass_id == HB_PASS_SUBTITLE)
- {
- [string appendFormat:
- NSLocalizedString(@"Pass %d %@ of %d, %.2f %%", nil),
- p.pass,
- NSLocalizedString(@"(subtitle scan)", nil),
- p.pass_count, 100.0 * p.progress];
- }
- else
- {
- [string appendFormat:
- NSLocalizedString(@"Pass %d of %d, %.2f %%", nil),
- p.pass, p.pass_count, 100.0 * p.progress];
- }
- }
-
- if (p.seconds > -1)
- {
- if (p.rate_cur > 0.0)
- {
- [string appendFormat:
- NSLocalizedString(@" (%.2f fps, avg %.2f fps, ETA %02dh%02dm%02ds)", nil),
- p.rate_cur, p.rate_avg, p.hours, p.minutes, p.seconds];
- }
- else
- {
- [string appendFormat:
- NSLocalizedString(@" (ETA %02dh%02dm%02ds)", nil),
- p.hours, p.minutes, p.seconds];
- }
- }
-
- break;
- }
-
- case HB_STATE_MUXING:
- {
- [string appendString:NSLocalizedString(@"Muxing…", nil)];
- break;
- }
-
- case HB_STATE_PAUSED:
- {
- [string appendString:NSLocalizedString(@"Paused", nil)];
- break;
- }
-
- #undef p
- case HB_STATE_SCANNING:
- {
- #define p s.param.scanning
- if (p.preview_cur)
- {
- [string appendFormat:
- NSLocalizedString(@"Scanning title %d of %d, preview %d…", nil),
- p.title_cur, p.title_count,
- p.preview_cur];
- }
- else
- {
- [string appendFormat:
- NSLocalizedString(@"Scanning title %d of %d…", nil),
- p.title_cur, p.title_count];
- }
- #undef p
- break;
- }
-
- default:
- break;
- }
-
- return string;
-}
-
-- (CGFloat)stateToPercentComplete:(hb_state_t)s
-{
- CGFloat progress = 0;
-
- switch (s.state)
- {
- case HB_STATE_WORKING:
- #define p s.param.working
- progress = (p.progress + p.pass - 1) / p.pass_count;
- #undef p
-
- break;
-
- case HB_STATE_SCANNING:
- #define p s.param.scanning
- progress = p.progress;
- #undef p
-
- default:
- break;
- }
-
- return progress;
-}
-
@end
diff --git a/macosx/HBSubtitlesController.m b/macosx/HBSubtitlesController.m
index 3cd47e215..4576c6601 100644
--- a/macosx/HBSubtitlesController.m
+++ b/macosx/HBSubtitlesController.m
@@ -7,8 +7,8 @@
#import "HBSubtitlesController.h"
#import "HBSubtitlesDefaultsController.h"
-#import "HBSubtitles.h"
-#import "HBSubtitlesDefaults.h"
+@import HandBrakeKit.HBSubtitles;
+@import HandBrakeKit.HBSubtitlesDefaults;
@interface HBSubtitlesController ()
diff --git a/macosx/HBSubtitlesDefaults.m b/macosx/HBSubtitlesDefaults.m
index ac52c4a52..5dfd4b5a8 100644
--- a/macosx/HBSubtitlesDefaults.m
+++ b/macosx/HBSubtitlesDefaults.m
@@ -6,6 +6,7 @@
#import "HBSubtitlesDefaults.h"
#import "HBCodingUtilities.h"
+#import "HBMutablePreset.h"
@implementation HBSubtitlesDefaults
diff --git a/macosx/HBSubtitlesDefaultsController.m b/macosx/HBSubtitlesDefaultsController.m
index a4e71bbff..e58822c25 100644
--- a/macosx/HBSubtitlesDefaultsController.m
+++ b/macosx/HBSubtitlesDefaultsController.m
@@ -5,9 +5,10 @@
It may be used under the terms of the GNU General Public License. */
#import "HBSubtitlesDefaultsController.h"
-#import "HBSubtitlesDefaults.h"
#import "HBLanguagesSelection.h"
+@import HandBrakeKit.HBSubtitlesDefaults;
+
static void *HBSubtitlesDefaultsContext = &HBSubtitlesDefaultsContext;
@interface HBSubtitlesDefaultsController ()
diff --git a/macosx/HBSubtitlesTrack.m b/macosx/HBSubtitlesTrack.m
index cc365d411..cc5543643 100644
--- a/macosx/HBSubtitlesTrack.m
+++ b/macosx/HBSubtitlesTrack.m
@@ -294,6 +294,10 @@ NSString *keySubTrackSrtFileURL = @"keySubTrackSrtFileURL";
{
retval = [NSSet setWithObjects: @"isEnabled", @"sourceTrackIdx", nil];
}
+ else
+ {
+ retval = [NSSet set];
+ }
return retval;
}
diff --git a/macosx/HBTitleSelectionController.m b/macosx/HBTitleSelectionController.m
index 0865ff22d..319808a69 100644
--- a/macosx/HBTitleSelectionController.m
+++ b/macosx/HBTitleSelectionController.m
@@ -5,7 +5,8 @@
It may be used under the terms of the GNU General Public License. */
#import "HBTitleSelectionController.h"
-#import "HBTitle.h"
+
+@import HandBrakeKit.HBTitle;
@interface HBTitleSelection : NSObject
@property (nonatomic, readonly) HBTitle *title;
diff --git a/macosx/HBUtilities.h b/macosx/HBUtilities.h
index 5166b1d07..7e40a0135 100644
--- a/macosx/HBUtilities.h
+++ b/macosx/HBUtilities.h
@@ -4,7 +4,7 @@
Homepage: <http://handbrake.fr/>.
It may be used under the terms of the GNU General Public License. */
-#import <Cocoa/Cocoa.h>
+#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
diff --git a/macosx/HBUtilities.m b/macosx/HBUtilities.m
index 061e01ca5..46f1aae03 100644
--- a/macosx/HBUtilities.m
+++ b/macosx/HBUtilities.m
@@ -5,6 +5,7 @@
It may be used under the terms of the GNU General Public License. */
#import "HBUtilities.h"
+#import <Cocoa/Cocoa.h>
#import "HBTitle.h"
#import "HBJob.h"
diff --git a/macosx/HBVideo.m b/macosx/HBVideo.m
index 70b7c09a1..14c14f47c 100644
--- a/macosx/HBVideo.m
+++ b/macosx/HBVideo.m
@@ -7,6 +7,8 @@
#import "HBVideo.h"
#import "HBJob.h"
#import "HBCodingUtilities.h"
+#import "HBMutablePreset.h"
+
#include "hb.h"
NSString * const HBVideoChangedNotification = @"HBVideoChangedNotification";
@@ -322,23 +324,28 @@ NSString * const HBVideoChangedNotification = @"HBVideoChangedNotification";
// Tell KVO to reload the x264 unparse string
// after values changes.
- if ([key isEqualToString:@"unparseOptions"])
+ else if ([key isEqualToString:@"unparseOptions"])
{
retval = [NSSet setWithObjects:@"encoder", @"preset", @"tune", @"profile", @"level",
@"videoOptionExtra", @"fastDecode", @"job.picture.width", @"job.picture.height", nil];
}
- if ([key isEqualToString:@"encoders"])
+ else if ([key isEqualToString:@"encoders"])
{
retval = [NSSet setWithObjects:@"job.container", nil];
}
- if ([key isEqualToString:@"fastDecodeSupported"] ||
+ else if ([key isEqualToString:@"fastDecodeSupported"] ||
[key isEqualToString:@"turboTwoPassSupported"])
{
retval = [NSSet setWithObjects:@"encoder", nil];
}
+ else
+ {
+ retval = [NSSet set];
+ }
+
return retval;
}
diff --git a/macosx/HBVideoController.m b/macosx/HBVideoController.m
index 9a0ecb14a..3e5719f09 100644
--- a/macosx/HBVideoController.m
+++ b/macosx/HBVideoController.m
@@ -6,8 +6,8 @@
#import "HBVideoController.h"
#import "HBAdvancedController.h"
-#import "HBVideo+UIAdditions.h"
-#import "HBJob.h"
+
+@import HandBrakeKit;
#include "hb.h"
diff --git a/macosx/HandBrake.xcodeproj/project.pbxproj b/macosx/HandBrake.xcodeproj/project.pbxproj
index 119b7eedb..f9dfa9d55 100644
--- a/macosx/HandBrake.xcodeproj/project.pbxproj
+++ b/macosx/HandBrake.xcodeproj/project.pbxproj
@@ -7,9 +7,7 @@
objects = {
/* Begin PBXBuildFile section */
- 226268E01572CC7300477B4E /* libavresample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 226268DF1572CC7300477B4E /* libavresample.a */; };
226268E11572CC7300477B4E /* libavresample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 226268DF1572CC7300477B4E /* libavresample.a */; };
- 22DD2C4A177B94DB00EF50D3 /* libvpx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22DD2C49177B94DB00EF50D3 /* libvpx.a */; };
22DD2C4B177B95DA00EF50D3 /* libvpx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22DD2C49177B94DB00EF50D3 /* libvpx.a */; };
273F202314ADB8650021BE6D /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 273F202214ADB8650021BE6D /* IOKit.framework */; };
273F202614ADB8A40021BE6D /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 273F202514ADB8A40021BE6D /* libz.dylib */; };
@@ -23,23 +21,14 @@
273F208B14ADBE3B0021BE6D /* test.c in Sources */ = {isa = PBXBuildFile; fileRef = 273F208814ADBE3B0021BE6D /* test.c */; };
273F20AC14ADBE670021BE6D /* HBController.m in Sources */ = {isa = PBXBuildFile; fileRef = 273F208F14ADBE670021BE6D /* HBController.m */; };
273F20AD14ADBE670021BE6D /* HBAdvancedController.m in Sources */ = {isa = PBXBuildFile; fileRef = 273F209014ADBE670021BE6D /* HBAdvancedController.m */; };
- 273F20AE14ADBE670021BE6D /* HBAudioTrack.m in Sources */ = {isa = PBXBuildFile; fileRef = 273F209214ADBE670021BE6D /* HBAudioTrack.m */; };
273F20AF14ADBE670021BE6D /* HBAudioController.m in Sources */ = {isa = PBXBuildFile; fileRef = 273F209414ADBE670021BE6D /* HBAudioController.m */; };
- 273F20B114ADBE670021BE6D /* HBDVDDetector.m in Sources */ = {isa = PBXBuildFile; fileRef = 273F209814ADBE670021BE6D /* HBDVDDetector.m */; };
273F20B214ADBE670021BE6D /* HBImageAndTextCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 273F209A14ADBE670021BE6D /* HBImageAndTextCell.m */; };
273F20B314ADBE670021BE6D /* HBOutputPanelController.m in Sources */ = {isa = PBXBuildFile; fileRef = 273F209C14ADBE670021BE6D /* HBOutputPanelController.m */; };
273F20B414ADBE670021BE6D /* HBOutputRedirect.m in Sources */ = {isa = PBXBuildFile; fileRef = 273F209E14ADBE670021BE6D /* HBOutputRedirect.m */; };
273F20B514ADBE670021BE6D /* HBPreferencesController.m in Sources */ = {isa = PBXBuildFile; fileRef = 273F20A014ADBE670021BE6D /* HBPreferencesController.m */; };
- 273F20B614ADBE670021BE6D /* HBPresetsManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 273F20A214ADBE670021BE6D /* HBPresetsManager.m */; };
273F20B714ADBE670021BE6D /* HBPreviewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 273F20A414ADBE670021BE6D /* HBPreviewController.m */; settings = {COMPILER_FLAGS = "-Wno-deprecated-declarations"; }; };
273F20BA14ADBE670021BE6D /* HBPictureController.m in Sources */ = {isa = PBXBuildFile; fileRef = 273F20AA14ADBE670021BE6D /* HBPictureController.m */; };
- 273F20BE14ADC09F0021BE6D /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 273F20BD14ADC09F0021BE6D /* main.mm */; };
- 273F20C314ADC4AE0021BE6D /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 273F202914ADB8D60021BE6D /* libiconv.dylib */; };
- 273F20C414ADC4B60021BE6D /* libbz2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 273F202714ADB8BE0021BE6D /* libbz2.dylib */; };
- 273F20C514ADC4BD0021BE6D /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 273F202514ADB8A40021BE6D /* libz.dylib */; };
- 273F20C614ADC4F50021BE6D /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 273F202214ADB8650021BE6D /* IOKit.framework */; };
273F20C814ADC4FF0021BE6D /* QTKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 273F20C714ADC4FF0021BE6D /* QTKit.framework */; };
- 273F20C914ADC5150021BE6D /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 273F202F14ADB9790021BE6D /* AudioToolbox.framework */; };
273F20CB14ADC89A0021BE6D /* Growl.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 273F20BF14ADC1250021BE6D /* Growl.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
273F20CC14ADC8A10021BE6D /* Sparkle.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 273F20C014ADC1250021BE6D /* Sparkle.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
273F218A14ADDDA10021BE6D /* AdvancedView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 273F217A14ADDDA10021BE6D /* AdvancedView.xib */; };
@@ -52,130 +41,181 @@
273F219114ADDDA10021BE6D /* Queue.xib in Resources */ = {isa = PBXBuildFile; fileRef = 273F218814ADDDA10021BE6D /* Queue.xib */; };
273F21C114ADE7A20021BE6D /* Growl.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 273F20BF14ADC1250021BE6D /* Growl.framework */; };
273F21C214ADE7BC0021BE6D /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 273F20C014ADC1250021BE6D /* Sparkle.framework */; };
- 27D6C72514B1019100B785E4 /* libhandbrake.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C72414B1019100B785E4 /* libhandbrake.a */; };
27D6C72614B1019100B785E4 /* libhandbrake.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C72414B1019100B785E4 /* libhandbrake.a */; };
- 27D6C74314B102DA00B785E4 /* libass.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C72814B102DA00B785E4 /* libass.a */; };
27D6C74414B102DA00B785E4 /* libass.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C72814B102DA00B785E4 /* libass.a */; };
- 27D6C74514B102DA00B785E4 /* libavcodec.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C72914B102DA00B785E4 /* libavcodec.a */; };
27D6C74614B102DA00B785E4 /* libavcodec.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C72914B102DA00B785E4 /* libavcodec.a */; };
- 27D6C74714B102DA00B785E4 /* libavformat.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C72A14B102DA00B785E4 /* libavformat.a */; };
27D6C74814B102DA00B785E4 /* libavformat.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C72A14B102DA00B785E4 /* libavformat.a */; };
- 27D6C74914B102DA00B785E4 /* libavutil.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C72B14B102DA00B785E4 /* libavutil.a */; };
27D6C74A14B102DA00B785E4 /* libavutil.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C72B14B102DA00B785E4 /* libavutil.a */; };
- 27D6C74B14B102DA00B785E4 /* libbluray.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C72C14B102DA00B785E4 /* libbluray.a */; };
27D6C74C14B102DA00B785E4 /* libbluray.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C72C14B102DA00B785E4 /* libbluray.a */; };
- 27D6C74F14B102DA00B785E4 /* libdvdnav.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C72E14B102DA00B785E4 /* libdvdnav.a */; };
27D6C75014B102DA00B785E4 /* libdvdnav.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C72E14B102DA00B785E4 /* libdvdnav.a */; };
- 27D6C75114B102DA00B785E4 /* libdvdread.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C72F14B102DA00B785E4 /* libdvdread.a */; };
27D6C75214B102DA00B785E4 /* libdvdread.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C72F14B102DA00B785E4 /* libdvdread.a */; };
- 27D6C75514B102DA00B785E4 /* libfontconfig.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C73114B102DA00B785E4 /* libfontconfig.a */; };
27D6C75614B102DA00B785E4 /* libfontconfig.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C73114B102DA00B785E4 /* libfontconfig.a */; };
- 27D6C75714B102DA00B785E4 /* libfreetype.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C73214B102DA00B785E4 /* libfreetype.a */; };
27D6C75814B102DA00B785E4 /* libfreetype.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C73214B102DA00B785E4 /* libfreetype.a */; };
- 27D6C75914B102DA00B785E4 /* libfribidi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C73314B102DA00B785E4 /* libfribidi.a */; };
27D6C75A14B102DA00B785E4 /* libfribidi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C73314B102DA00B785E4 /* libfribidi.a */; };
- 27D6C75E14B102DA00B785E4 /* libmp3lame.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C73614B102DA00B785E4 /* libmp3lame.a */; };
27D6C75F14B102DA00B785E4 /* libmp3lame.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C73614B102DA00B785E4 /* libmp3lame.a */; };
- 27D6C76414B102DA00B785E4 /* libogg.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C73914B102DA00B785E4 /* libogg.a */; };
27D6C76514B102DA00B785E4 /* libogg.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C73914B102DA00B785E4 /* libogg.a */; };
- 27D6C76614B102DA00B785E4 /* libsamplerate.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C73A14B102DA00B785E4 /* libsamplerate.a */; };
27D6C76714B102DA00B785E4 /* libsamplerate.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C73A14B102DA00B785E4 /* libsamplerate.a */; };
- 27D6C76814B102DA00B785E4 /* libswscale.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C73B14B102DA00B785E4 /* libswscale.a */; };
27D6C76914B102DA00B785E4 /* libswscale.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C73B14B102DA00B785E4 /* libswscale.a */; };
- 27D6C76A14B102DA00B785E4 /* libtheora.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C73C14B102DA00B785E4 /* libtheora.a */; };
27D6C76B14B102DA00B785E4 /* libtheora.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C73C14B102DA00B785E4 /* libtheora.a */; };
- 27D6C76C14B102DA00B785E4 /* libvorbis.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C73D14B102DA00B785E4 /* libvorbis.a */; };
27D6C76D14B102DA00B785E4 /* libvorbis.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C73D14B102DA00B785E4 /* libvorbis.a */; };
- 27D6C76E14B102DA00B785E4 /* libvorbisenc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C73E14B102DA00B785E4 /* libvorbisenc.a */; };
27D6C76F14B102DA00B785E4 /* libvorbisenc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C73E14B102DA00B785E4 /* libvorbisenc.a */; };
- 27D6C77014B102DA00B785E4 /* libx264.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C73F14B102DA00B785E4 /* libx264.a */; };
27D6C77114B102DA00B785E4 /* libx264.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C73F14B102DA00B785E4 /* libx264.a */; };
- 27D6C77214B102DA00B785E4 /* libxml2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C74014B102DA00B785E4 /* libxml2.a */; };
27D6C77314B102DA00B785E4 /* libxml2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C74014B102DA00B785E4 /* libxml2.a */; };
3490BCB41614CF8D002A5AD7 /* HandBrake.icns in Resources */ = {isa = PBXBuildFile; fileRef = 3490BCB31614CF8D002A5AD7 /* HandBrake.icns */; };
- 46AB433515F98A2B009C0961 /* DockTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = 46AB433415F98A2B009C0961 /* DockTextField.m */; };
6F0D69A91AD0683100A39DCA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 273F204014ADBC210021BE6D /* Foundation.framework */; };
- A90A0CAF1988D57200DA65CE /* HBAudioTrackPreset.m in Sources */ = {isa = PBXBuildFile; fileRef = A90A0CAE1988D57200DA65CE /* HBAudioTrackPreset.m */; };
- A91017B41A64440A00039BFB /* HBSubtitles.m in Sources */ = {isa = PBXBuildFile; fileRef = A91017B31A64440A00039BFB /* HBSubtitles.m */; };
- A91404611BDBB7DE00BE29A7 /* HBJobUndoTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A91404601BDBB7DE00BE29A7 /* HBJobUndoTests.m */; };
+ A91119A21C7DD58B001C463C /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 273F203B14ADBC210021BE6D /* Cocoa.framework */; };
+ A91119A31C7DD591001C463C /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 273F202214ADB8650021BE6D /* IOKit.framework */; };
+ A91119A41C7DD614001C463C /* HBSubtitlesDefaults.h in Headers */ = {isa = PBXBuildFile; fileRef = A9F4728B1976BAA70009EC65 /* HBSubtitlesDefaults.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ A91119A51C7DD644001C463C /* HBDistributedArray.h in Headers */ = {isa = PBXBuildFile; fileRef = A9E66D6E1A67A2A8007B641D /* HBDistributedArray.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ A91119A61C7DD64A001C463C /* HBDistributedArray.m in Sources */ = {isa = PBXBuildFile; fileRef = A9E66D6F1A67A2A8007B641D /* HBDistributedArray.m */; };
A914BCB31BC441C700157917 /* HBPreviewView.m in Sources */ = {isa = PBXBuildFile; fileRef = A914BCB21BC441C700157917 /* HBPreviewView.m */; };
A914BCB61BC441D100157917 /* QTKit+HBQTMovieExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = A914BCB51BC441D100157917 /* QTKit+HBQTMovieExtensions.m */; };
- A9160A351AE7A165009A7818 /* HBCodingUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = A9160A341AE7A165009A7818 /* HBCodingUtilities.m */; };
- A91726E7197291BC00D1AFEF /* HBChapterTitlesController.m in Sources */ = {isa = PBXBuildFile; fileRef = A91726E6197291BC00D1AFEF /* HBChapterTitlesController.m */; };
- A91806711A4807B000FC9BED /* HBRange.m in Sources */ = {isa = PBXBuildFile; fileRef = A91806701A4807B000FC9BED /* HBRange.m */; };
- A9181CB21BD76F8400E5C8B0 /* HBSubtitlesTrack.m in Sources */ = {isa = PBXBuildFile; fileRef = A9181CB11BD76F8400E5C8B0 /* HBSubtitlesTrack.m */; };
+ A916180E1C845161000556C6 /* NSDictionary+HBAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = A93B0DF71C804CF50051A3FA /* NSDictionary+HBAdditions.m */; };
+ A916C9921C84498F00C7B560 /* DockTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = 46AB433415F98A2B009C0961 /* DockTextField.m */; };
+ A916C9931C8449A100C7B560 /* HBAddPresetController.m in Sources */ = {isa = PBXBuildFile; fileRef = A9E2FD251A21BC4A000E8D3F /* HBAddPresetController.m */; };
+ A916C9951C8449B000C7B560 /* HBChapterTitlesController.m in Sources */ = {isa = PBXBuildFile; fileRef = A91726E6197291BC00D1AFEF /* HBChapterTitlesController.m */; };
+ A916C9961C8449BE00C7B560 /* HBJobOutputFileWriter.m in Sources */ = {isa = PBXBuildFile; fileRef = A91AFD0E1A949472009BECED /* HBJobOutputFileWriter.m */; };
+ A916C9971C8449CA00C7B560 /* HBAudioDefaultsController.m in Sources */ = {isa = PBXBuildFile; fileRef = A932E26E198833920047D13E /* HBAudioDefaultsController.m */; };
+ A916C9981C8449DB00C7B560 /* HBTitleSelectionController.m in Sources */ = {isa = PBXBuildFile; fileRef = A9C183941A716B8F00C897C2 /* HBTitleSelectionController.m */; };
+ A916C9991C8449E200C7B560 /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 273F20BD14ADC09F0021BE6D /* main.mm */; };
+ A916C99A1C8449FB00C7B560 /* HBHUDView.m in Sources */ = {isa = PBXBuildFile; fileRef = A9C9F88819A733FE00DC8923 /* HBHUDView.m */; };
+ A916C99B1C844A0800C7B560 /* HBQueueOutlineView.m in Sources */ = {isa = PBXBuildFile; fileRef = A9EA43671A2210C400785E95 /* HBQueueOutlineView.m */; };
A91AFD0C1A948827009BECED /* HBOutputFileWriter.m in Sources */ = {isa = PBXBuildFile; fileRef = A91AFD0B1A948827009BECED /* HBOutputFileWriter.m */; };
- A91AFD0F1A949472009BECED /* HBJobOutputFileWriter.m in Sources */ = {isa = PBXBuildFile; fileRef = A91AFD0E1A949472009BECED /* HBJobOutputFileWriter.m */; };
+ A91CE27D1C7DA7320068F46F /* HBCore.m in Sources */ = {isa = PBXBuildFile; fileRef = A9DEC8731A23C87500C79B48 /* HBCore.m */; };
+ A91CE27F1C7DA7320068F46F /* HBTitle.m in Sources */ = {isa = PBXBuildFile; fileRef = A971281E1A2C75180088C076 /* HBTitle.m */; };
+ A91CE2821C7DA7320068F46F /* HBJob.m in Sources */ = {isa = PBXBuildFile; fileRef = A9DEC87E1A23DF6F00C79B48 /* HBJob.m */; };
+ A91CE2841C7DA7320068F46F /* HBJob+HBJobConversion.m in Sources */ = {isa = PBXBuildFile; fileRef = A990D9061A64562200139032 /* HBJob+HBJobConversion.m */; };
+ A91CE2861C7DA7320068F46F /* HBRange.m in Sources */ = {isa = PBXBuildFile; fileRef = A91806701A4807B000FC9BED /* HBRange.m */; };
+ A91CE2881C7DA7320068F46F /* HBVideo.m in Sources */ = {isa = PBXBuildFile; fileRef = A9DEC8761A23C88D00C79B48 /* HBVideo.m */; };
+ A91CE28A1C7DA7320068F46F /* HBPicture.m in Sources */ = {isa = PBXBuildFile; fileRef = A9DEC8791A23C89E00C79B48 /* HBPicture.m */; };
+ A91CE28C1C7DA7320068F46F /* HBFilters.m in Sources */ = {isa = PBXBuildFile; fileRef = A9523936199A6AAE00588AEF /* HBFilters.m */; };
+ A91CE28E1C7DA7320068F46F /* HBChapter.m in Sources */ = {isa = PBXBuildFile; fileRef = A988AF9C1BC7C35F00932543 /* HBChapter.m */; };
+ A91CE2901C7DA7320068F46F /* HBAudio.m in Sources */ = {isa = PBXBuildFile; fileRef = A93FD4741A62ABE800A6AC43 /* HBAudio.m */; };
+ A91CE2921C7DA7320068F46F /* HBAudioTrack.m in Sources */ = {isa = PBXBuildFile; fileRef = 273F209214ADBE670021BE6D /* HBAudioTrack.m */; };
+ A91CE2941C7DA7320068F46F /* HBAudioDefaults.m in Sources */ = {isa = PBXBuildFile; fileRef = A932E272198834130047D13E /* HBAudioDefaults.m */; };
+ A91CE2961C7DA7320068F46F /* HBAudioTrackPreset.m in Sources */ = {isa = PBXBuildFile; fileRef = A90A0CAE1988D57200DA65CE /* HBAudioTrackPreset.m */; };
+ A91CE2981C7DA7320068F46F /* HBSubtitles.m in Sources */ = {isa = PBXBuildFile; fileRef = A91017B31A64440A00039BFB /* HBSubtitles.m */; };
+ A91CE29A1C7DA7320068F46F /* HBSubtitlesTrack.m in Sources */ = {isa = PBXBuildFile; fileRef = A9181CB11BD76F8400E5C8B0 /* HBSubtitlesTrack.m */; };
+ A91CE29C1C7DA7320068F46F /* HBSubtitlesDefaults.m in Sources */ = {isa = PBXBuildFile; fileRef = A9F4728C1976BAA70009EC65 /* HBSubtitlesDefaults.m */; };
+ A91CE29E1C7DA7320068F46F /* HBJob+UIAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = A9537BEF1A48A85C00141102 /* HBJob+UIAdditions.m */; };
+ A91CE2A01C7DA7320068F46F /* HBRange+UIAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = A9597A291A49749D00007771 /* HBRange+UIAdditions.m */; };
+ A91CE2A21C7DA7320068F46F /* HBVideo+UIAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = A9537BF21A48A99500141102 /* HBVideo+UIAdditions.m */; };
+ A91CE2A41C7DA7320068F46F /* HBPicture+UIAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = A9537BF51A48AB6300141102 /* HBPicture+UIAdditions.m */; };
+ A91CE2A61C7DA7320068F46F /* HBFilters+UIAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = A9537BF81A48AC9000141102 /* HBFilters+UIAdditions.m */; };
+ A91CE2A81C7DA7320068F46F /* HBDVDDetector.m in Sources */ = {isa = PBXBuildFile; fileRef = 273F209814ADBE670021BE6D /* HBDVDDetector.m */; };
+ A91CE2AA1C7DA7320068F46F /* HBCodingUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = A9160A341AE7A165009A7818 /* HBCodingUtilities.m */; };
+ A91CE2AD1C7DA7320068F46F /* HBStateFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = A975C08D1AE8C5270061870D /* HBStateFormatter.m */; };
+ A91CE2B01C7DA9FB0068F46F /* HBUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = A9AA44791970664A00D7DEFC /* HBUtilities.m */; };
+ A91CE2B11C7DAA530068F46F /* libhandbrake.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C72414B1019100B785E4 /* libhandbrake.a */; };
+ A91CE2B21C7DAB550068F46F /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 273F202F14ADB9790021BE6D /* AudioToolbox.framework */; };
+ A91CE2B31C7DABBC0068F46F /* libass.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C72814B102DA00B785E4 /* libass.a */; };
+ A91CE2B41C7DABBC0068F46F /* libavcodec.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C72914B102DA00B785E4 /* libavcodec.a */; };
+ A91CE2B51C7DABBC0068F46F /* libavfilter.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A9E165511C523016003EF30E /* libavfilter.a */; };
+ A91CE2B61C7DABBC0068F46F /* libavformat.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C72A14B102DA00B785E4 /* libavformat.a */; };
+ A91CE2B71C7DABBC0068F46F /* libavresample.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 226268DF1572CC7300477B4E /* libavresample.a */; };
+ A91CE2B81C7DABBC0068F46F /* libavutil.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C72B14B102DA00B785E4 /* libavutil.a */; };
+ A91CE2B91C7DABBC0068F46F /* libbluray.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C72C14B102DA00B785E4 /* libbluray.a */; };
+ A91CE2BA1C7DABBC0068F46F /* libdvdnav.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C72E14B102DA00B785E4 /* libdvdnav.a */; };
+ A91CE2BB1C7DABBC0068F46F /* libdvdread.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C72F14B102DA00B785E4 /* libdvdread.a */; };
+ A91CE2BC1C7DABBC0068F46F /* libfontconfig.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C73114B102DA00B785E4 /* libfontconfig.a */; };
+ A91CE2BD1C7DABBC0068F46F /* libfreetype.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C73214B102DA00B785E4 /* libfreetype.a */; };
+ A91CE2BE1C7DABBC0068F46F /* libfribidi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C73314B102DA00B785E4 /* libfribidi.a */; };
+ A91CE2BF1C7DABBC0068F46F /* libjansson.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A95512881A320A12001BFC6F /* libjansson.a */; };
+ A91CE2C01C7DABBC0068F46F /* libmp3lame.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C73614B102DA00B785E4 /* libmp3lame.a */; };
+ A91CE2C11C7DABBC0068F46F /* libogg.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C73914B102DA00B785E4 /* libogg.a */; };
+ A91CE2C21C7DABBC0068F46F /* libsamplerate.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C73A14B102DA00B785E4 /* libsamplerate.a */; };
+ A91CE2C31C7DABBC0068F46F /* libswscale.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C73B14B102DA00B785E4 /* libswscale.a */; };
+ A91CE2C41C7DABBC0068F46F /* libtheora.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C73C14B102DA00B785E4 /* libtheora.a */; };
+ A91CE2C51C7DABBC0068F46F /* libvorbis.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C73D14B102DA00B785E4 /* libvorbis.a */; };
+ A91CE2C61C7DABBC0068F46F /* libvorbisenc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C73E14B102DA00B785E4 /* libvorbisenc.a */; };
+ A91CE2C71C7DABBC0068F46F /* libvpx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22DD2C49177B94DB00EF50D3 /* libvpx.a */; };
+ A91CE2C81C7DABBC0068F46F /* libx264.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C73F14B102DA00B785E4 /* libx264.a */; };
+ A91CE2C91C7DABBC0068F46F /* libx265.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22CC9E74191EBEA500C69D81 /* libx265.a */; };
+ A91CE2CA1C7DABBC0068F46F /* libxml2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27D6C74014B102DA00B785E4 /* libxml2.a */; };
+ A91CE2CD1C7DABBC0068F46F /* libltdl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A91CE2CB1C7DABBC0068F46F /* libltdl.a */; };
+ A91CE2CE1C7DABBC0068F46F /* libvorbisfile.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A91CE2CC1C7DABBC0068F46F /* libvorbisfile.a */; };
+ A91CE2D01C7DABCE0068F46F /* libbz2.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = A91CE2CF1C7DABCE0068F46F /* libbz2.tbd */; };
+ A91CE2D21C7DABDA0068F46F /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = A91CE2D11C7DABDA0068F46F /* libz.tbd */; };
+ A91CE2D41C7DABE40068F46F /* libiconv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = A91CE2D31C7DABE40068F46F /* libiconv.tbd */; };
+ A91CE2D71C7DAEEE0068F46F /* HBCore.h in Headers */ = {isa = PBXBuildFile; fileRef = A9DEC8721A23C87500C79B48 /* HBCore.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ A91CE2D81C7DAEEE0068F46F /* HBTitle.h in Headers */ = {isa = PBXBuildFile; fileRef = A971281D1A2C75180088C076 /* HBTitle.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ A91CE2D91C7DAEEE0068F46F /* HBJob.h in Headers */ = {isa = PBXBuildFile; fileRef = A9DEC87D1A23DF6F00C79B48 /* HBJob.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ A91CE2DA1C7DAEEE0068F46F /* HBRange.h in Headers */ = {isa = PBXBuildFile; fileRef = A918066F1A4807B000FC9BED /* HBRange.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ A91CE2DB1C7DAEEE0068F46F /* HBVideo.h in Headers */ = {isa = PBXBuildFile; fileRef = A9DEC8751A23C88D00C79B48 /* HBVideo.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ A91CE2DC1C7DAEEE0068F46F /* HBPicture.h in Headers */ = {isa = PBXBuildFile; fileRef = A9DEC8781A23C89E00C79B48 /* HBPicture.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ A91CE2DD1C7DAEEE0068F46F /* HBFilters.h in Headers */ = {isa = PBXBuildFile; fileRef = A9523935199A6AAE00588AEF /* HBFilters.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ A91CE2DE1C7DAEEE0068F46F /* HBChapter.h in Headers */ = {isa = PBXBuildFile; fileRef = A988AF9B1BC7C35F00932543 /* HBChapter.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ A91CE2DF1C7DAEEE0068F46F /* HBAudio.h in Headers */ = {isa = PBXBuildFile; fileRef = A93FD4731A62ABE800A6AC43 /* HBAudio.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ A91CE2E01C7DAEEE0068F46F /* HBAudioTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = 273F209114ADBE670021BE6D /* HBAudioTrack.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ A91CE2E11C7DAEEE0068F46F /* HBAudioDefaults.h in Headers */ = {isa = PBXBuildFile; fileRef = A932E271198834130047D13E /* HBAudioDefaults.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ A91CE2E21C7DAEEE0068F46F /* HBAudioTrackPreset.h in Headers */ = {isa = PBXBuildFile; fileRef = A90A0CAD1988D57200DA65CE /* HBAudioTrackPreset.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ A91CE2E31C7DAEEE0068F46F /* HBSubtitles.h in Headers */ = {isa = PBXBuildFile; fileRef = A91017B21A64440A00039BFB /* HBSubtitles.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ A91CE2E41C7DAEEE0068F46F /* HBSubtitlesTrack.h in Headers */ = {isa = PBXBuildFile; fileRef = A9181CB01BD76F8400E5C8B0 /* HBSubtitlesTrack.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ A91CE2E61C7DAEEE0068F46F /* HBJob+UIAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = A9537BEE1A48A85C00141102 /* HBJob+UIAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ A91CE2E71C7DAEEE0068F46F /* HBRange+UIAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = A9597A281A49749D00007771 /* HBRange+UIAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ A91CE2E81C7DAEEE0068F46F /* HBVideo+UIAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = A9537BF11A48A99500141102 /* HBVideo+UIAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ A91CE2E91C7DAEEE0068F46F /* HBPicture+UIAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = A9537BF41A48AB6300141102 /* HBPicture+UIAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ A91CE2EA1C7DAEEE0068F46F /* HBFilters+UIAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = A9537BF71A48AC9000141102 /* HBFilters+UIAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ A91CE2EB1C7DAEEE0068F46F /* HBDVDDetector.h in Headers */ = {isa = PBXBuildFile; fileRef = 273F209714ADBE670021BE6D /* HBDVDDetector.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ A91CE2EC1C7DAEEE0068F46F /* HBStateFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = A975C08C1AE8C5270061870D /* HBStateFormatter.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ A91CE2ED1C7DAEEE0068F46F /* HBUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = A9AA44781970664A00D7DEFC /* HBUtilities.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ A91CE2F61C7DB96D0068F46F /* NSJSONSerialization+HBAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = A99422DF1B1887B000DDB077 /* NSJSONSerialization+HBAdditions.m */; };
+ A91CE2F71C7DB96D0068F46F /* HBPresetsManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 273F20A214ADBE670021BE6D /* HBPresetsManager.m */; };
+ A91CE2F81C7DB96D0068F46F /* HBPreset.m in Sources */ = {isa = PBXBuildFile; fileRef = A9CF25F31990D64E0023F727 /* HBPreset.m */; };
+ A91CE2F91C7DB96D0068F46F /* HBMutablePreset.m in Sources */ = {isa = PBXBuildFile; fileRef = A96CD1751BCC5F9100F372F1 /* HBMutablePreset.m */; };
+ A91CE2FA1C7DB96D0068F46F /* HBTreeNode.m in Sources */ = {isa = PBXBuildFile; fileRef = A9D488A41996270300E9B1BA /* HBTreeNode.m */; };
+ A91CE2FB1C7DB99D0068F46F /* HBPresetsManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 273F20A114ADBE670021BE6D /* HBPresetsManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ A91CE2FC1C7DB99D0068F46F /* HBPreset.h in Headers */ = {isa = PBXBuildFile; fileRef = A9CF25F21990D64E0023F727 /* HBPreset.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ A91CE2FD1C7DB99D0068F46F /* HBMutablePreset.h in Headers */ = {isa = PBXBuildFile; fileRef = A96CD1741BCC5F9100F372F1 /* HBMutablePreset.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ A91CE2FE1C7DB99D0068F46F /* HBTreeNode.h in Headers */ = {isa = PBXBuildFile; fileRef = A9D488A31996270300E9B1BA /* HBTreeNode.h */; settings = {ATTRIBUTES = (Public, ); }; };
A92268781A6E555500A8D5C5 /* HBAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = A92268771A6E555500A8D5C5 /* HBAppDelegate.m */; };
A922687B1A6E569B00A8D5C5 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = A92268791A6E569B00A8D5C5 /* MainWindow.xib */; };
A932E26C1988334B0047D13E /* AudioDefaults.xib in Resources */ = {isa = PBXBuildFile; fileRef = A932E26A1988334B0047D13E /* AudioDefaults.xib */; };
- A932E26F198833920047D13E /* HBAudioDefaultsController.m in Sources */ = {isa = PBXBuildFile; fileRef = A932E26E198833920047D13E /* HBAudioDefaultsController.m */; };
- A932E273198834130047D13E /* HBAudioDefaults.m in Sources */ = {isa = PBXBuildFile; fileRef = A932E272198834130047D13E /* HBAudioDefaults.m */; };
A937EECB1C6C7C0300EEAE6D /* dsa_pub.pem in Resources */ = {isa = PBXBuildFile; fileRef = A937EECA1C6C7C0300EEAE6D /* dsa_pub.pem */; };
- A93B0DF81C804CF50051A3FA /* NSDictionary+HBAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = A93B0DF71C804CF50051A3FA /* NSDictionary+HBAdditions.m */; };
A93E0ED31972957000FD67FB /* HBVideoController.m in Sources */ = {isa = PBXBuildFile; fileRef = A93E0ED11972957000FD67FB /* HBVideoController.m */; };
A93E0ED71972958C00FD67FB /* Video.xib in Resources */ = {isa = PBXBuildFile; fileRef = A93E0ED51972958C00FD67FB /* Video.xib */; };
- A93FD4751A62ABE800A6AC43 /* HBAudio.m in Sources */ = {isa = PBXBuildFile; fileRef = A93FD4741A62ABE800A6AC43 /* HBAudio.m */; };
+ A94A98F51C858EFB004BA9BA /* HBDictTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A94A98F41C858EFB004BA9BA /* HBDictTests.m */; };
A95121E61B5F7BE700FD773D /* NSArray+HBAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = A95121E51B5F7BE700FD773D /* NSArray+HBAdditions.m */; };
- A9523937199A6AAE00588AEF /* HBFilters.m in Sources */ = {isa = PBXBuildFile; fileRef = A9523936199A6AAE00588AEF /* HBFilters.m */; };
- A9537BF01A48A85C00141102 /* HBJob+UIAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = A9537BEF1A48A85C00141102 /* HBJob+UIAdditions.m */; };
- A9537BF31A48A99500141102 /* HBVideo+UIAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = A9537BF21A48A99500141102 /* HBVideo+UIAdditions.m */; };
- A9537BF61A48AB6300141102 /* HBPicture+UIAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = A9537BF51A48AB6300141102 /* HBPicture+UIAdditions.m */; };
- A9537BF91A48AC9000141102 /* HBFilters+UIAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = A9537BF81A48AC9000141102 /* HBFilters+UIAdditions.m */; };
- A955128A1A320A6F001BFC6F /* libjansson.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A95512881A320A12001BFC6F /* libjansson.a */; };
A955128B1A320B02001BFC6F /* libjansson.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A95512881A320A12001BFC6F /* libjansson.a */; };
- A9597A2A1A49749D00007771 /* HBRange+UIAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = A9597A291A49749D00007771 /* HBRange+UIAdditions.m */; };
- A96CD1761BCC5F9100F372F1 /* HBMutablePreset.m in Sources */ = {isa = PBXBuildFile; fileRef = A96CD1751BCC5F9100F372F1 /* HBMutablePreset.m */; };
A9706CB41AC1436F00BAEAA8 /* HBApplication.m in Sources */ = {isa = PBXBuildFile; fileRef = A9706CB31AC1436F00BAEAA8 /* HBApplication.m */; };
A9706CB71AC1437800BAEAA8 /* HBExceptionAlertController.m in Sources */ = {isa = PBXBuildFile; fileRef = A9706CB61AC1437800BAEAA8 /* HBExceptionAlertController.m */; };
A9706CBA1AC1452800BAEAA8 /* ExceptionAlert.xib in Resources */ = {isa = PBXBuildFile; fileRef = A9706CB81AC1452800BAEAA8 /* ExceptionAlert.xib */; };
- A971281F1A2C75180088C076 /* HBTitle.m in Sources */ = {isa = PBXBuildFile; fileRef = A971281E1A2C75180088C076 /* HBTitle.m */; };
- A975C08E1AE8C5270061870D /* HBStateFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = A975C08D1AE8C5270061870D /* HBStateFormatter.m */; };
- A988AF9D1BC7C35F00932543 /* HBChapter.m in Sources */ = {isa = PBXBuildFile; fileRef = A988AF9C1BC7C35F00932543 /* HBChapter.m */; };
+ A9736F051C7DA5FE008F1D18 /* HandBrakeKit.h in Headers */ = {isa = PBXBuildFile; fileRef = A9736F041C7DA5FE008F1D18 /* HandBrakeKit.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ A9736F0C1C7DA5FE008F1D18 /* HandBrakeKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9736F021C7DA5FE008F1D18 /* HandBrakeKit.framework */; };
+ A9736F171C7DA5FE008F1D18 /* HandBrakeKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9736F021C7DA5FE008F1D18 /* HandBrakeKit.framework */; };
+ A9736F181C7DA5FE008F1D18 /* HandBrakeKit.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = A9736F021C7DA5FE008F1D18 /* HandBrakeKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
+ A9736F1F1C7DA667008F1D18 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 273F204014ADBC210021BE6D /* Foundation.framework */; };
+ A98B8E241C7DD2A200B810C9 /* HBPresetCoding.h in Headers */ = {isa = PBXBuildFile; fileRef = A997D8EB1A4ABB0900E19B6F /* HBPresetCoding.h */; settings = {ATTRIBUTES = (Public, ); }; };
A98C29C41977B10600AF5DED /* HBLanguagesSelection.m in Sources */ = {isa = PBXBuildFile; fileRef = A98C29C31977B10600AF5DED /* HBLanguagesSelection.m */; };
- A98FD5931B19C63800FCC7A5 /* HBMockTitle.m in Sources */ = {isa = PBXBuildFile; fileRef = A98FD5921B19C63800FCC7A5 /* HBMockTitle.m */; };
+ A98F38071C7DCA7E00E469C8 /* HBStateFormatter+Private.m in Sources */ = {isa = PBXBuildFile; fileRef = A98F38051C7DCA7E00E469C8 /* HBStateFormatter+Private.m */; };
A9906B2C1A710920001D82D5 /* HBQueueController.m in Sources */ = {isa = PBXBuildFile; fileRef = A9906B2B1A710920001D82D5 /* HBQueueController.m */; };
- A990D9071A64562200139032 /* HBJob+HBJobConversion.m in Sources */ = {isa = PBXBuildFile; fileRef = A990D9061A64562200139032 /* HBJob+HBJobConversion.m */; };
A9935213196F38A70069C6B7 /* ChaptersTitles.xib in Resources */ = {isa = PBXBuildFile; fileRef = A9935211196F38A70069C6B7 /* ChaptersTitles.xib */; };
- A99422E01B1887B000DDB077 /* NSJSONSerialization+HBAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = A99422DF1B1887B000DDB077 /* NSJSONSerialization+HBAdditions.m */; };
A99F40CF1B624E7E00750170 /* HBPictureViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A99F40CD1B624E7E00750170 /* HBPictureViewController.m */; };
A99F40D31B624EA500750170 /* HBPictureViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = A99F40D11B624EA500750170 /* HBPictureViewController.xib */; };
- A9A24B2D1B09F6FD00AD1FAB /* HBPresetsTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A9A24B2C1B09F6FD00AD1FAB /* HBPresetsTests.m */; };
- A9A24B2F1B09F87400AD1FAB /* HBJobTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A9A24B2E1B09F87400AD1FAB /* HBJobTests.m */; };
- A9AA447A1970664A00D7DEFC /* HBUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = A9AA44791970664A00D7DEFC /* HBUtilities.m */; };
A9BB0F2719A0ECE40079F1C1 /* HBHUDButtonCell.m in Sources */ = {isa = PBXBuildFile; fileRef = A9BB0F2619A0ECE40079F1C1 /* HBHUDButtonCell.m */; };
A9BC24C91A69293E007DC41A /* HBAttributedStringAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = A9BC24C81A69293E007DC41A /* HBAttributedStringAdditions.m */; };
A9C0DB85197E7B0000DF55B3 /* SubtitlesDefaults.xib in Resources */ = {isa = PBXBuildFile; fileRef = A9C0DB83197E7B0000DF55B3 /* SubtitlesDefaults.xib */; };
- A9C183961A716B8F00C897C2 /* HBTitleSelectionController.m in Sources */ = {isa = PBXBuildFile; fileRef = A9C183941A716B8F00C897C2 /* HBTitleSelectionController.m */; };
A9C1839D1A716BCC00C897C2 /* HBTitleSelection.xib in Resources */ = {isa = PBXBuildFile; fileRef = A9C1839B1A716BCC00C897C2 /* HBTitleSelection.xib */; };
- A9C9F88919A733FE00DC8923 /* HBHUDView.m in Sources */ = {isa = PBXBuildFile; fileRef = A9C9F88819A733FE00DC8923 /* HBHUDView.m */; };
A9CF25F11990D62C0023F727 /* Presets.xib in Resources */ = {isa = PBXBuildFile; fileRef = A9CF25EF1990D62C0023F727 /* Presets.xib */; };
- A9CF25F41990D64E0023F727 /* HBPreset.m in Sources */ = {isa = PBXBuildFile; fileRef = A9CF25F31990D64E0023F727 /* HBPreset.m */; };
A9CF25F71990D6820023F727 /* HBPresetsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A9CF25F61990D6820023F727 /* HBPresetsViewController.m */; };
A9D0FA771C1C284D0003F2A9 /* HBFocusRingView.m in Sources */ = {isa = PBXBuildFile; fileRef = A9D0FA761C1C284D0003F2A9 /* HBFocusRingView.m */; };
A9D0FA7A1C1C36820003F2A9 /* HBTabView.m in Sources */ = {isa = PBXBuildFile; fileRef = A9D0FA791C1C36820003F2A9 /* HBTabView.m */; };
A9D1E41718262364002F6424 /* HBPreviewGenerator.m in Sources */ = {isa = PBXBuildFile; fileRef = A9D1E41618262364002F6424 /* HBPreviewGenerator.m */; };
- A9D488A51996270300E9B1BA /* HBTreeNode.m in Sources */ = {isa = PBXBuildFile; fileRef = A9D488A41996270300E9B1BA /* HBTreeNode.m */; };
A9DC6C52196F04F6002AE6B4 /* HBSubtitlesController.m in Sources */ = {isa = PBXBuildFile; fileRef = A9DC6C50196F04F6002AE6B4 /* HBSubtitlesController.m */; };
A9DC6C56196F0517002AE6B4 /* Subtitles.xib in Resources */ = {isa = PBXBuildFile; fileRef = A9DC6C54196F0517002AE6B4 /* Subtitles.xib */; };
- A9DEC8741A23C87500C79B48 /* HBCore.m in Sources */ = {isa = PBXBuildFile; fileRef = A9DEC8731A23C87500C79B48 /* HBCore.m */; };
- A9DEC8771A23C88D00C79B48 /* HBVideo.m in Sources */ = {isa = PBXBuildFile; fileRef = A9DEC8761A23C88D00C79B48 /* HBVideo.m */; };
- A9DEC87A1A23C89E00C79B48 /* HBPicture.m in Sources */ = {isa = PBXBuildFile; fileRef = A9DEC8791A23C89E00C79B48 /* HBPicture.m */; };
- A9DEC87F1A23DF6F00C79B48 /* HBJob.m in Sources */ = {isa = PBXBuildFile; fileRef = A9DEC87E1A23DF6F00C79B48 /* HBJob.m */; };
+ A9DF49271C884C4E008AC14A /* HBJobTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A9DF49221C884C4E008AC14A /* HBJobTests.m */; };
+ A9DF49281C884C4E008AC14A /* HBJobUndoTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A9DF49231C884C4E008AC14A /* HBJobUndoTests.m */; };
+ A9DF49291C884C4E008AC14A /* HBMockTitle.m in Sources */ = {isa = PBXBuildFile; fileRef = A9DF49251C884C4E008AC14A /* HBMockTitle.m */; };
+ A9DF492A1C884C4E008AC14A /* HBPresetsTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A9DF49261C884C4E008AC14A /* HBPresetsTests.m */; };
A9E1467B16BC2ABD00C307BC /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A9E1467A16BC2ABD00C307BC /* QuartzCore.framework */; };
A9E1468016BC2AD800C307BC /* next-p.pdf in Resources */ = {isa = PBXBuildFile; fileRef = A9E1467C16BC2AD800C307BC /* next-p.pdf */; };
A9E1468116BC2AD800C307BC /* pause-p.pdf in Resources */ = {isa = PBXBuildFile; fileRef = A9E1467D16BC2AD800C307BC /* pause-p.pdf */; };
A9E1468216BC2AD800C307BC /* play-p.pdf in Resources */ = {isa = PBXBuildFile; fileRef = A9E1467E16BC2AD800C307BC /* play-p.pdf */; };
A9E1468316BC2AD800C307BC /* prev-p.pdf in Resources */ = {isa = PBXBuildFile; fileRef = A9E1467F16BC2AD800C307BC /* prev-p.pdf */; };
A9E165521C523016003EF30E /* libavfilter.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A9E165511C523016003EF30E /* libavfilter.a */; };
- A9E165531C52302A003EF30E /* libavfilter.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A9E165511C523016003EF30E /* libavfilter.a */; };
- A9E2FD271A21BC4A000E8D3F /* HBAddPresetController.m in Sources */ = {isa = PBXBuildFile; fileRef = A9E2FD251A21BC4A000E8D3F /* HBAddPresetController.m */; };
A9E2FD2B1A21BC6F000E8D3F /* AddPreset.xib in Resources */ = {isa = PBXBuildFile; fileRef = A9E2FD291A21BC6F000E8D3F /* AddPreset.xib */; };
- A9E66D701A67A2A8007B641D /* HBDistributedArray.m in Sources */ = {isa = PBXBuildFile; fileRef = A9E66D6F1A67A2A8007B641D /* HBDistributedArray.m */; };
- A9EA43681A2210C400785E95 /* HBQueueOutlineView.m in Sources */ = {isa = PBXBuildFile; fileRef = A9EA43671A2210C400785E95 /* HBQueueOutlineView.m */; };
A9F2EB6F196F12C800066546 /* Audio.xib in Resources */ = {isa = PBXBuildFile; fileRef = A9F2EB6D196F12C800066546 /* Audio.xib */; };
A9F472891976B7F30009EC65 /* HBSubtitlesDefaultsController.m in Sources */ = {isa = PBXBuildFile; fileRef = A9F472871976B7F30009EC65 /* HBSubtitlesDefaultsController.m */; };
- A9F4728D1976BAA70009EC65 /* HBSubtitlesDefaults.m in Sources */ = {isa = PBXBuildFile; fileRef = A9F4728C1976BAA70009EC65 /* HBSubtitlesDefaults.m */; };
A9F7102619A475EC00F61301 /* HBDockTile.m in Sources */ = {isa = PBXBuildFile; fileRef = A9F7102519A475EC00F61301 /* HBDockTile.m */; };
D86C9DD51C6D372500F06F1B /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D86C9DD41C6D372500F06F1B /* Assets.xcassets */; };
/* End PBXBuildFile section */
@@ -188,20 +228,34 @@
remoteGlobalIDString = 273F216E14ADD2170021BE6D;
remoteInfo = external;
};
- 2781697014B02B1B00A28B61 /* PBXContainerItemProxy */ = {
+ A91CE2AE1C7DA74D0068F46F /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 273F1FE014AD9DA40021BE6D /* Project object */;
proxyType = 1;
remoteGlobalIDString = 273F216E14ADD2170021BE6D;
remoteInfo = external;
};
- A95B8D991B09F16700F2F152 /* PBXContainerItemProxy */ = {
+ A91CE2EE1C7DB40D0068F46F /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 273F1FE014AD9DA40021BE6D /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = A9736F011C7DA5FE008F1D18;
+ remoteInfo = HandBrakeKit;
+ };
+ A91CE2FF1C7DBA2C0068F46F /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 273F1FE014AD9DA40021BE6D /* Project object */;
proxyType = 1;
remoteGlobalIDString = 273F203814ADBC200021BE6D;
remoteInfo = HandBrake;
};
+ A9736F0D1C7DA5FE008F1D18 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 273F1FE014AD9DA40021BE6D /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = A9736F011C7DA5FE008F1D18;
+ remoteInfo = HandBrakeKit;
+ };
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
@@ -222,6 +276,7 @@
files = (
273F20CB14ADC89A0021BE6D /* Growl.framework in CopyFiles */,
273F20CC14ADC8A10021BE6D /* Sparkle.framework in CopyFiles */,
+ A9736F181C7DA5FE008F1D18 /* HandBrakeKit.framework in CopyFiles */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -321,7 +376,6 @@
A90A0CAE1988D57200DA65CE /* HBAudioTrackPreset.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBAudioTrackPreset.m; sourceTree = "<group>"; };
A91017B21A64440A00039BFB /* HBSubtitles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HBSubtitles.h; sourceTree = "<group>"; };
A91017B31A64440A00039BFB /* HBSubtitles.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBSubtitles.m; sourceTree = "<group>"; };
- A91404601BDBB7DE00BE29A7 /* HBJobUndoTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBJobUndoTests.m; sourceTree = "<group>"; };
A914BCB11BC441C700157917 /* HBPreviewView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HBPreviewView.h; sourceTree = "<group>"; };
A914BCB21BC441C700157917 /* HBPreviewView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBPreviewView.m; sourceTree = "<group>"; };
A914BCB41BC441D100157917 /* QTKit+HBQTMovieExtensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "QTKit+HBQTMovieExtensions.h"; sourceTree = "<group>"; };
@@ -338,6 +392,11 @@
A91AFD0B1A948827009BECED /* HBOutputFileWriter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBOutputFileWriter.m; sourceTree = "<group>"; };
A91AFD0D1A949472009BECED /* HBJobOutputFileWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HBJobOutputFileWriter.h; sourceTree = "<group>"; };
A91AFD0E1A949472009BECED /* HBJobOutputFileWriter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBJobOutputFileWriter.m; sourceTree = "<group>"; };
+ A91CE2CB1C7DABBC0068F46F /* libltdl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libltdl.a; path = "../../../Library/Developer/Xcode/DerivedData/HandBrake-bmmnjzrlaitphwcfpfkndzpwsyph/Build/Products/release/external/contrib/lib/libltdl.a"; sourceTree = "<group>"; };
+ A91CE2CC1C7DABBC0068F46F /* libvorbisfile.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libvorbisfile.a; path = "../../../Library/Developer/Xcode/DerivedData/HandBrake-bmmnjzrlaitphwcfpfkndzpwsyph/Build/Products/release/external/contrib/lib/libvorbisfile.a"; sourceTree = "<group>"; };
+ A91CE2CF1C7DABCE0068F46F /* libbz2.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libbz2.tbd; path = usr/lib/libbz2.tbd; sourceTree = SDKROOT; };
+ A91CE2D11C7DABDA0068F46F /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
+ A91CE2D31C7DABE40068F46F /* libiconv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libiconv.tbd; path = usr/lib/libiconv.tbd; sourceTree = SDKROOT; };
A92268761A6E555500A8D5C5 /* HBAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HBAppDelegate.h; sourceTree = "<group>"; };
A92268771A6E555500A8D5C5 /* HBAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBAppDelegate.m; sourceTree = "<group>"; };
A922687A1A6E569B00A8D5C5 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = MainWindow.xib; sourceTree = "<group>"; };
@@ -354,6 +413,7 @@
A93E0ED61972958C00FD67FB /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = Video.xib; sourceTree = "<group>"; };
A93FD4731A62ABE800A6AC43 /* HBAudio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HBAudio.h; sourceTree = "<group>"; };
A93FD4741A62ABE800A6AC43 /* HBAudio.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBAudio.m; sourceTree = "<group>"; };
+ A94A98F41C858EFB004BA9BA /* HBDictTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBDictTests.m; sourceTree = "<group>"; };
A95121E41B5F7BE700FD773D /* NSArray+HBAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSArray+HBAdditions.h"; sourceTree = "<group>"; };
A95121E51B5F7BE700FD773D /* NSArray+HBAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSArray+HBAdditions.m"; sourceTree = "<group>"; };
A9523935199A6AAE00588AEF /* HBFilters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HBFilters.h; sourceTree = "<group>"; };
@@ -369,8 +429,6 @@
A95512881A320A12001BFC6F /* libjansson.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libjansson.a; path = external/contrib/lib/libjansson.a; sourceTree = BUILT_PRODUCTS_DIR; };
A9597A281A49749D00007771 /* HBRange+UIAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "HBRange+UIAdditions.h"; sourceTree = "<group>"; };
A9597A291A49749D00007771 /* HBRange+UIAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "HBRange+UIAdditions.m"; sourceTree = "<group>"; };
- A95B8D931B09F16700F2F152 /* HandBrake Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "HandBrake Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
- A95B8D961B09F16700F2F152 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
A96CD1741BCC5F9100F372F1 /* HBMutablePreset.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HBMutablePreset.h; sourceTree = "<group>"; };
A96CD1751BCC5F9100F372F1 /* HBMutablePreset.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBMutablePreset.m; sourceTree = "<group>"; };
A9706CB21AC1436F00BAEAA8 /* HBApplication.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HBApplication.h; sourceTree = "<group>"; };
@@ -380,14 +438,19 @@
A9706CB91AC1452800BAEAA8 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = ExceptionAlert.xib; sourceTree = "<group>"; };
A971281D1A2C75180088C076 /* HBTitle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HBTitle.h; sourceTree = "<group>"; };
A971281E1A2C75180088C076 /* HBTitle.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBTitle.m; sourceTree = "<group>"; };
+ A9736F021C7DA5FE008F1D18 /* HandBrakeKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = HandBrakeKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ A9736F041C7DA5FE008F1D18 /* HandBrakeKit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HandBrakeKit.h; sourceTree = "<group>"; };
+ A9736F061C7DA5FE008F1D18 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+ A9736F0B1C7DA5FE008F1D18 /* HandBrakeKitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = HandBrakeKitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
+ A9736F141C7DA5FE008F1D18 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
A975C08C1AE8C5270061870D /* HBStateFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HBStateFormatter.h; sourceTree = "<group>"; };
A975C08D1AE8C5270061870D /* HBStateFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBStateFormatter.m; sourceTree = "<group>"; };
A988AF9B1BC7C35F00932543 /* HBChapter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HBChapter.h; sourceTree = "<group>"; };
A988AF9C1BC7C35F00932543 /* HBChapter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBChapter.m; sourceTree = "<group>"; };
A98C29C21977B10600AF5DED /* HBLanguagesSelection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HBLanguagesSelection.h; sourceTree = "<group>"; };
A98C29C31977B10600AF5DED /* HBLanguagesSelection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBLanguagesSelection.m; sourceTree = "<group>"; };
- A98FD5911B19C63800FCC7A5 /* HBMockTitle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HBMockTitle.h; sourceTree = "<group>"; };
- A98FD5921B19C63800FCC7A5 /* HBMockTitle.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBMockTitle.m; sourceTree = "<group>"; };
+ A98F38041C7DCA7E00E469C8 /* HBStateFormatter+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "HBStateFormatter+Private.h"; sourceTree = "<group>"; };
+ A98F38051C7DCA7E00E469C8 /* HBStateFormatter+Private.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "HBStateFormatter+Private.m"; sourceTree = "<group>"; };
A98FD5941B19C6E400FCC7A5 /* HBTitlePrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HBTitlePrivate.h; sourceTree = "<group>"; };
A9906B2B1A710920001D82D5 /* HBQueueController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBQueueController.m; sourceTree = "<group>"; };
A990D9051A64562200139032 /* HBJob+HBJobConversion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "HBJob+HBJobConversion.h"; sourceTree = "<group>"; };
@@ -399,10 +462,8 @@
A99F40CC1B624E7E00750170 /* HBPictureViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HBPictureViewController.h; sourceTree = "<group>"; };
A99F40CD1B624E7E00750170 /* HBPictureViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBPictureViewController.m; sourceTree = "<group>"; };
A99F40D21B624EA500750170 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = HBPictureViewController.xib; sourceTree = "<group>"; };
- A9A24B2C1B09F6FD00AD1FAB /* HBPresetsTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBPresetsTests.m; sourceTree = "<group>"; };
- A9A24B2E1B09F87400AD1FAB /* HBJobTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBJobTests.m; sourceTree = "<group>"; };
- A9AA44781970664A00D7DEFC /* HBUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HBUtilities.h; sourceTree = "<group>"; };
- A9AA44791970664A00D7DEFC /* HBUtilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBUtilities.m; sourceTree = "<group>"; };
+ A9AA44781970664A00D7DEFC /* HBUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HBUtilities.h; path = ../HBUtilities.h; sourceTree = "<group>"; };
+ A9AA44791970664A00D7DEFC /* HBUtilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HBUtilities.m; path = ../HBUtilities.m; sourceTree = "<group>"; };
A9AA447B1970724D00D7DEFC /* HBAdvancedController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HBAdvancedController.h; sourceTree = "<group>"; };
A9AA447C1970726500D7DEFC /* HBQueueController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HBQueueController.h; sourceTree = "<group>"; };
A9AA447D1970729300D7DEFC /* HBPreviewGenerator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HBPreviewGenerator.h; sourceTree = "<group>"; };
@@ -440,6 +501,11 @@
A9DEC8791A23C89E00C79B48 /* HBPicture.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBPicture.m; sourceTree = "<group>"; };
A9DEC87D1A23DF6F00C79B48 /* HBJob.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HBJob.h; sourceTree = "<group>"; };
A9DEC87E1A23DF6F00C79B48 /* HBJob.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBJob.m; sourceTree = "<group>"; };
+ A9DF49221C884C4E008AC14A /* HBJobTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBJobTests.m; sourceTree = "<group>"; };
+ A9DF49231C884C4E008AC14A /* HBJobUndoTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBJobUndoTests.m; sourceTree = "<group>"; };
+ A9DF49241C884C4E008AC14A /* HBMockTitle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HBMockTitle.h; sourceTree = "<group>"; };
+ A9DF49251C884C4E008AC14A /* HBMockTitle.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBMockTitle.m; sourceTree = "<group>"; };
+ A9DF49261C884C4E008AC14A /* HBPresetsTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBPresetsTests.m; sourceTree = "<group>"; };
A9E1467A16BC2ABD00C307BC /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = /System/Library/Frameworks/QuartzCore.framework; sourceTree = "<absolute>"; };
A9E1467C16BC2AD800C307BC /* next-p.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = "next-p.pdf"; sourceTree = "<group>"; };
A9E1467D16BC2AD800C307BC /* pause-p.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = "pause-p.pdf"; sourceTree = "<group>"; };
@@ -449,8 +515,8 @@
A9E2FD241A21BC4A000E8D3F /* HBAddPresetController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HBAddPresetController.h; sourceTree = "<group>"; };
A9E2FD251A21BC4A000E8D3F /* HBAddPresetController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBAddPresetController.m; sourceTree = "<group>"; };
A9E2FD2A1A21BC6F000E8D3F /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = AddPreset.xib; sourceTree = "<group>"; };
- A9E66D6E1A67A2A8007B641D /* HBDistributedArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HBDistributedArray.h; sourceTree = "<group>"; };
- A9E66D6F1A67A2A8007B641D /* HBDistributedArray.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBDistributedArray.m; sourceTree = "<group>"; };
+ A9E66D6E1A67A2A8007B641D /* HBDistributedArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HBDistributedArray.h; path = ../HBDistributedArray.h; sourceTree = "<group>"; };
+ A9E66D6F1A67A2A8007B641D /* HBDistributedArray.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HBDistributedArray.m; path = ../HBDistributedArray.m; sourceTree = "<group>"; };
A9EA43661A2210C400785E95 /* HBQueueOutlineView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HBQueueOutlineView.h; sourceTree = "<group>"; };
A9EA43671A2210C400785E95 /* HBQueueOutlineView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBQueueOutlineView.m; sourceTree = "<group>"; };
A9F2EB6E196F12C800066546 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = Audio.xib; sourceTree = "<group>"; };
@@ -506,47 +572,61 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- A9E165531C52302A003EF30E /* libavfilter.a in Frameworks */,
- 273F20C914ADC5150021BE6D /* AudioToolbox.framework in Frameworks */,
273F203C14ADBC210021BE6D /* Cocoa.framework in Frameworks */,
273F21C114ADE7A20021BE6D /* Growl.framework in Frameworks */,
- 273F20C614ADC4F50021BE6D /* IOKit.framework in Frameworks */,
273F20C814ADC4FF0021BE6D /* QTKit.framework in Frameworks */,
A9E1467B16BC2ABD00C307BC /* QuartzCore.framework in Frameworks */,
273F21C214ADE7BC0021BE6D /* Sparkle.framework in Frameworks */,
- 273F20C414ADC4B60021BE6D /* libbz2.dylib in Frameworks */,
- 273F20C314ADC4AE0021BE6D /* libiconv.dylib in Frameworks */,
- 273F20C514ADC4BD0021BE6D /* libz.dylib in Frameworks */,
- 27D6C72514B1019100B785E4 /* libhandbrake.a in Frameworks */,
- 27D6C74314B102DA00B785E4 /* libass.a in Frameworks */,
- 27D6C74514B102DA00B785E4 /* libavcodec.a in Frameworks */,
- 27D6C74714B102DA00B785E4 /* libavformat.a in Frameworks */,
- 226268E01572CC7300477B4E /* libavresample.a in Frameworks */,
- 27D6C74914B102DA00B785E4 /* libavutil.a in Frameworks */,
- 27D6C74B14B102DA00B785E4 /* libbluray.a in Frameworks */,
- 27D6C74F14B102DA00B785E4 /* libdvdnav.a in Frameworks */,
- 27D6C75114B102DA00B785E4 /* libdvdread.a in Frameworks */,
- 27D6C75514B102DA00B785E4 /* libfontconfig.a in Frameworks */,
- 27D6C75714B102DA00B785E4 /* libfreetype.a in Frameworks */,
- 27D6C75914B102DA00B785E4 /* libfribidi.a in Frameworks */,
- 27D6C75E14B102DA00B785E4 /* libmp3lame.a in Frameworks */,
- 27D6C76414B102DA00B785E4 /* libogg.a in Frameworks */,
- 27D6C76614B102DA00B785E4 /* libsamplerate.a in Frameworks */,
- 27D6C76814B102DA00B785E4 /* libswscale.a in Frameworks */,
- 27D6C76A14B102DA00B785E4 /* libtheora.a in Frameworks */,
- 27D6C76C14B102DA00B785E4 /* libvorbis.a in Frameworks */,
- 27D6C76E14B102DA00B785E4 /* libvorbisenc.a in Frameworks */,
- 22DD2C4A177B94DB00EF50D3 /* libvpx.a in Frameworks */,
- 27D6C77014B102DA00B785E4 /* libx264.a in Frameworks */,
- 27D6C77214B102DA00B785E4 /* libxml2.a in Frameworks */,
- A955128A1A320A6F001BFC6F /* libjansson.a in Frameworks */,
+ A9736F171C7DA5FE008F1D18 /* HandBrakeKit.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ A9736EFE1C7DA5FE008F1D18 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ A91119A31C7DD591001C463C /* IOKit.framework in Frameworks */,
+ A91119A21C7DD58B001C463C /* Cocoa.framework in Frameworks */,
+ A9736F1F1C7DA667008F1D18 /* Foundation.framework in Frameworks */,
+ A91CE2B21C7DAB550068F46F /* AudioToolbox.framework in Frameworks */,
+ A91CE2D41C7DABE40068F46F /* libiconv.tbd in Frameworks */,
+ A91CE2D21C7DABDA0068F46F /* libz.tbd in Frameworks */,
+ A91CE2D01C7DABCE0068F46F /* libbz2.tbd in Frameworks */,
+ A91CE2CD1C7DABBC0068F46F /* libltdl.a in Frameworks */,
+ A91CE2CE1C7DABBC0068F46F /* libvorbisfile.a in Frameworks */,
+ A91CE2B31C7DABBC0068F46F /* libass.a in Frameworks */,
+ A91CE2B41C7DABBC0068F46F /* libavcodec.a in Frameworks */,
+ A91CE2B51C7DABBC0068F46F /* libavfilter.a in Frameworks */,
+ A91CE2B61C7DABBC0068F46F /* libavformat.a in Frameworks */,
+ A91CE2B71C7DABBC0068F46F /* libavresample.a in Frameworks */,
+ A91CE2B81C7DABBC0068F46F /* libavutil.a in Frameworks */,
+ A91CE2B91C7DABBC0068F46F /* libbluray.a in Frameworks */,
+ A91CE2BA1C7DABBC0068F46F /* libdvdnav.a in Frameworks */,
+ A91CE2BB1C7DABBC0068F46F /* libdvdread.a in Frameworks */,
+ A91CE2BC1C7DABBC0068F46F /* libfontconfig.a in Frameworks */,
+ A91CE2BD1C7DABBC0068F46F /* libfreetype.a in Frameworks */,
+ A91CE2BE1C7DABBC0068F46F /* libfribidi.a in Frameworks */,
+ A91CE2BF1C7DABBC0068F46F /* libjansson.a in Frameworks */,
+ A91CE2C01C7DABBC0068F46F /* libmp3lame.a in Frameworks */,
+ A91CE2C11C7DABBC0068F46F /* libogg.a in Frameworks */,
+ A91CE2C21C7DABBC0068F46F /* libsamplerate.a in Frameworks */,
+ A91CE2C31C7DABBC0068F46F /* libswscale.a in Frameworks */,
+ A91CE2C41C7DABBC0068F46F /* libtheora.a in Frameworks */,
+ A91CE2C51C7DABBC0068F46F /* libvorbis.a in Frameworks */,
+ A91CE2C61C7DABBC0068F46F /* libvorbisenc.a in Frameworks */,
+ A91CE2C71C7DABBC0068F46F /* libvpx.a in Frameworks */,
+ A91CE2C81C7DABBC0068F46F /* libx264.a in Frameworks */,
+ A91CE2C91C7DABBC0068F46F /* libx265.a in Frameworks */,
+ A91CE2CA1C7DABBC0068F46F /* libxml2.a in Frameworks */,
+ A91CE2B11C7DAA530068F46F /* libhandbrake.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
- A95B8D901B09F16700F2F152 /* Frameworks */ = {
+ A9736F081C7DA5FE008F1D18 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
+ A9736F0C1C7DA5FE008F1D18 /* HandBrakeKit.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -597,7 +677,8 @@
children = (
273F204114ADBC210021BE6D /* HandBrake */,
273F200214ADAE950021BE6D /* HandBrakeCLI */,
- A95B8D941B09F16700F2F152 /* HandBrake Tests */,
+ A9736F031C7DA5FE008F1D18 /* HandBrakeKit */,
+ A9736F111C7DA5FE008F1D18 /* HandBrakeKitTests */,
273F200014ADAE950021BE6D /* Products */,
27D6C72314B1013400B785E4 /* Products (external) */,
273F20CD14ADC8E60021BE6D /* Resources */,
@@ -611,7 +692,8 @@
children = (
273F1FFF14ADAE950021BE6D /* HandBrakeCLI */,
273F203914ADBC210021BE6D /* HandBrake.app */,
- A95B8D931B09F16700F2F152 /* HandBrake Tests.xctest */,
+ A9736F021C7DA5FE008F1D18 /* HandBrakeKit.framework */,
+ A9736F0B1C7DA5FE008F1D18 /* HandBrakeKitTests.xctest */,
);
name = Products;
sourceTree = "<group>";
@@ -631,6 +713,11 @@
273F203414ADBAC30021BE6D /* Frameworks */ = {
isa = PBXGroup;
children = (
+ A91CE2D31C7DABE40068F46F /* libiconv.tbd */,
+ A91CE2D11C7DABDA0068F46F /* libz.tbd */,
+ A91CE2CF1C7DABCE0068F46F /* libbz2.tbd */,
+ A91CE2CB1C7DABBC0068F46F /* libltdl.a */,
+ A91CE2CC1C7DABBC0068F46F /* libvorbisfile.a */,
A9B34D74197696FE00871B7D /* DiskArbitration.framework */,
273F202F14ADB9790021BE6D /* AudioToolbox.framework */,
273F203B14ADBC210021BE6D /* Cocoa.framework */,
@@ -661,11 +748,7 @@
isa = PBXGroup;
children = (
A9B34D6F197683FE00871B7D /* Controllers */,
- A98C29C51977C00000AF5DED /* Core */,
- A952392E199A647F00588AEF /* Presets */,
A98F00771A972007001C2298 /* Output Redirect */,
- A9AA44781970664A00D7DEFC /* HBUtilities.h */,
- A9AA44791970664A00D7DEFC /* HBUtilities.m */,
A901C2431BC7D05000D77735 /* Others */,
A9B34D711976844500871B7D /* UI Views */,
);
@@ -785,8 +868,6 @@
children = (
A9EA43661A2210C400785E95 /* HBQueueOutlineView.h */,
A9EA43671A2210C400785E95 /* HBQueueOutlineView.m */,
- A9E66D6E1A67A2A8007B641D /* HBDistributedArray.h */,
- A9E66D6F1A67A2A8007B641D /* HBDistributedArray.m */,
A9AA447C1970726500D7DEFC /* HBQueueController.h */,
A9906B2B1A710920001D82D5 /* HBQueueController.m */,
);
@@ -824,6 +905,8 @@
A975C08D1AE8C5270061870D /* HBStateFormatter.m */,
A93B0DF61C804CF50051A3FA /* NSDictionary+HBAdditions.h */,
A93B0DF71C804CF50051A3FA /* NSDictionary+HBAdditions.m */,
+ A98F38041C7DCA7E00E469C8 /* HBStateFormatter+Private.h */,
+ A98F38051C7DCA7E00E469C8 /* HBStateFormatter+Private.m */,
);
name = Others;
sourceTree = "<group>";
@@ -881,6 +964,7 @@
A9D488A41996270300E9B1BA /* HBTreeNode.m */,
);
name = Presets;
+ path = ..;
sourceTree = "<group>";
};
A9537BED1A48A7F900141102 /* UI Bindings Additions */ = {
@@ -900,25 +984,33 @@
name = "UI Bindings Additions";
sourceTree = "<group>";
};
- A95B8D941B09F16700F2F152 /* HandBrake Tests */ = {
+ A9736F031C7DA5FE008F1D18 /* HandBrakeKit */ = {
isa = PBXGroup;
children = (
- A98FD5911B19C63800FCC7A5 /* HBMockTitle.h */,
- A98FD5921B19C63800FCC7A5 /* HBMockTitle.m */,
- A91404601BDBB7DE00BE29A7 /* HBJobUndoTests.m */,
- A9A24B2E1B09F87400AD1FAB /* HBJobTests.m */,
- A9A24B2C1B09F6FD00AD1FAB /* HBPresetsTests.m */,
- A95B8D951B09F16700F2F152 /* Supporting Files */,
- );
- path = "HandBrake Tests";
+ A98C29C51977C00000AF5DED /* Core */,
+ A952392E199A647F00588AEF /* Presets */,
+ A9E66D6E1A67A2A8007B641D /* HBDistributedArray.h */,
+ A9E66D6F1A67A2A8007B641D /* HBDistributedArray.m */,
+ A9AA44781970664A00D7DEFC /* HBUtilities.h */,
+ A9AA44791970664A00D7DEFC /* HBUtilities.m */,
+ A9736F041C7DA5FE008F1D18 /* HandBrakeKit.h */,
+ A9736F061C7DA5FE008F1D18 /* Info.plist */,
+ );
+ path = HandBrakeKit;
sourceTree = "<group>";
};
- A95B8D951B09F16700F2F152 /* Supporting Files */ = {
+ A9736F111C7DA5FE008F1D18 /* HandBrakeKitTests */ = {
isa = PBXGroup;
children = (
- A95B8D961B09F16700F2F152 /* Info.plist */,
- );
- name = "Supporting Files";
+ A9DF49221C884C4E008AC14A /* HBJobTests.m */,
+ A9DF49231C884C4E008AC14A /* HBJobUndoTests.m */,
+ A9DF49241C884C4E008AC14A /* HBMockTitle.h */,
+ A9DF49251C884C4E008AC14A /* HBMockTitle.m */,
+ A9DF49261C884C4E008AC14A /* HBPresetsTests.m */,
+ A94A98F41C858EFB004BA9BA /* HBDictTests.m */,
+ A9736F141C7DA5FE008F1D18 /* Info.plist */,
+ );
+ path = HandBrakeKitTests;
sourceTree = "<group>";
};
A98C29C51977C00000AF5DED /* Core */ = {
@@ -949,6 +1041,7 @@
A901C2421BC7D01900D77735 /* Others */,
);
name = Core;
+ path = ..;
sourceTree = "<group>";
};
A98F00771A972007001C2298 /* Output Redirect */ = {
@@ -1052,6 +1145,46 @@
};
/* End PBXGroup section */
+/* Begin PBXHeadersBuildPhase section */
+ A9736EFF1C7DA5FE008F1D18 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ A9736F051C7DA5FE008F1D18 /* HandBrakeKit.h in Headers */,
+ A91CE2D71C7DAEEE0068F46F /* HBCore.h in Headers */,
+ A91CE2D81C7DAEEE0068F46F /* HBTitle.h in Headers */,
+ A91CE2D91C7DAEEE0068F46F /* HBJob.h in Headers */,
+ A91CE2DA1C7DAEEE0068F46F /* HBRange.h in Headers */,
+ A91CE2DB1C7DAEEE0068F46F /* HBVideo.h in Headers */,
+ A91CE2DC1C7DAEEE0068F46F /* HBPicture.h in Headers */,
+ A91CE2DD1C7DAEEE0068F46F /* HBFilters.h in Headers */,
+ A91119A51C7DD644001C463C /* HBDistributedArray.h in Headers */,
+ A91CE2DE1C7DAEEE0068F46F /* HBChapter.h in Headers */,
+ A91CE2DF1C7DAEEE0068F46F /* HBAudio.h in Headers */,
+ A91CE2E01C7DAEEE0068F46F /* HBAudioTrack.h in Headers */,
+ A91CE2E11C7DAEEE0068F46F /* HBAudioDefaults.h in Headers */,
+ A91CE2E21C7DAEEE0068F46F /* HBAudioTrackPreset.h in Headers */,
+ A91CE2E31C7DAEEE0068F46F /* HBSubtitles.h in Headers */,
+ A91CE2E41C7DAEEE0068F46F /* HBSubtitlesTrack.h in Headers */,
+ A91CE2E61C7DAEEE0068F46F /* HBJob+UIAdditions.h in Headers */,
+ A91CE2E71C7DAEEE0068F46F /* HBRange+UIAdditions.h in Headers */,
+ A91119A41C7DD614001C463C /* HBSubtitlesDefaults.h in Headers */,
+ A91CE2E81C7DAEEE0068F46F /* HBVideo+UIAdditions.h in Headers */,
+ A91CE2E91C7DAEEE0068F46F /* HBPicture+UIAdditions.h in Headers */,
+ A91CE2EA1C7DAEEE0068F46F /* HBFilters+UIAdditions.h in Headers */,
+ A91CE2EB1C7DAEEE0068F46F /* HBDVDDetector.h in Headers */,
+ A91CE2EC1C7DAEEE0068F46F /* HBStateFormatter.h in Headers */,
+ A91CE2ED1C7DAEEE0068F46F /* HBUtilities.h in Headers */,
+ A91CE2FB1C7DB99D0068F46F /* HBPresetsManager.h in Headers */,
+ A91CE2FC1C7DB99D0068F46F /* HBPreset.h in Headers */,
+ A91CE2FD1C7DB99D0068F46F /* HBMutablePreset.h in Headers */,
+ A98B8E241C7DD2A200B810C9 /* HBPresetCoding.h in Headers */,
+ A91CE2FE1C7DB99D0068F46F /* HBTreeNode.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
/* Begin PBXLegacyTarget section */
273F216E14ADD2170021BE6D /* external */ = {
isa = PBXLegacyTarget;
@@ -1100,29 +1233,49 @@
buildRules = (
);
dependencies = (
- 2781697114B02B1B00A28B61 /* PBXTargetDependency */,
+ A91CE2EF1C7DB40D0068F46F /* PBXTargetDependency */,
);
name = HandBrake;
productName = HandBrake;
productReference = 273F203914ADBC210021BE6D /* HandBrake.app */;
productType = "com.apple.product-type.application";
};
- A95B8D921B09F16700F2F152 /* HandBrake Tests */ = {
+ A9736F011C7DA5FE008F1D18 /* HandBrakeKit */ = {
isa = PBXNativeTarget;
- buildConfigurationList = A95B8D9D1B09F16800F2F152 /* Build configuration list for PBXNativeTarget "HandBrake Tests" */;
+ buildConfigurationList = A9736F1D1C7DA5FE008F1D18 /* Build configuration list for PBXNativeTarget "HandBrakeKit" */;
buildPhases = (
- A95B8D8F1B09F16700F2F152 /* Sources */,
- A95B8D901B09F16700F2F152 /* Frameworks */,
- A95B8D911B09F16700F2F152 /* Resources */,
+ A9736EFD1C7DA5FE008F1D18 /* Sources */,
+ A9736EFE1C7DA5FE008F1D18 /* Frameworks */,
+ A9736EFF1C7DA5FE008F1D18 /* Headers */,
+ A9736F001C7DA5FE008F1D18 /* Resources */,
);
buildRules = (
);
dependencies = (
- A95B8D9A1B09F16700F2F152 /* PBXTargetDependency */,
+ A91CE2AF1C7DA74D0068F46F /* PBXTargetDependency */,
+ );
+ name = HandBrakeKit;
+ productName = HandBrakeKit;
+ productReference = A9736F021C7DA5FE008F1D18 /* HandBrakeKit.framework */;
+ productType = "com.apple.product-type.framework";
+ };
+ A9736F0A1C7DA5FE008F1D18 /* HandBrakeKitTests */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = A9736F1E1C7DA5FE008F1D18 /* Build configuration list for PBXNativeTarget "HandBrakeKitTests" */;
+ buildPhases = (
+ A9736F071C7DA5FE008F1D18 /* Sources */,
+ A9736F081C7DA5FE008F1D18 /* Frameworks */,
+ A9736F091C7DA5FE008F1D18 /* Resources */,
);
- name = "HandBrake Tests";
- productName = "HandBrake Tests";
- productReference = A95B8D931B09F16700F2F152 /* HandBrake Tests.xctest */;
+ buildRules = (
+ );
+ dependencies = (
+ A9736F0E1C7DA5FE008F1D18 /* PBXTargetDependency */,
+ A91CE3001C7DBA2C0068F46F /* PBXTargetDependency */,
+ );
+ name = HandBrakeKitTests;
+ productName = HandBrakeKitTests;
+ productReference = A9736F0B1C7DA5FE008F1D18 /* HandBrakeKitTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
/* End PBXNativeTarget section */
@@ -1133,8 +1286,11 @@
attributes = {
LastUpgradeCheck = 0710;
TargetAttributes = {
- A95B8D921B09F16700F2F152 = {
- CreatedOnToolsVersion = 6.3.1;
+ A9736F011C7DA5FE008F1D18 = {
+ CreatedOnToolsVersion = 7.3;
+ };
+ A9736F0A1C7DA5FE008F1D18 = {
+ CreatedOnToolsVersion = 7.3;
TestTargetID = 273F203814ADBC200021BE6D;
};
};
@@ -1153,10 +1309,11 @@
projectDirPath = "";
projectRoot = "";
targets = (
- 273F203814ADBC200021BE6D /* HandBrake */,
- 273F1FFE14ADAE950021BE6D /* HandBrakeCLI */,
273F216E14ADD2170021BE6D /* external */,
- A95B8D921B09F16700F2F152 /* HandBrake Tests */,
+ 273F1FFE14ADAE950021BE6D /* HandBrakeCLI */,
+ A9736F011C7DA5FE008F1D18 /* HandBrakeKit */,
+ A9736F0A1C7DA5FE008F1D18 /* HandBrakeKitTests */,
+ 273F203814ADBC200021BE6D /* HandBrake */,
);
};
/* End PBXProject section */
@@ -1196,7 +1353,14 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
- A95B8D911B09F16700F2F152 /* Resources */ = {
+ A9736F001C7DA5FE008F1D18 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ A9736F091C7DA5FE008F1D18 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -1220,87 +1384,96 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
+ A916C99B1C844A0800C7B560 /* HBQueueOutlineView.m in Sources */,
+ A916C99A1C8449FB00C7B560 /* HBHUDView.m in Sources */,
+ A916C9991C8449E200C7B560 /* main.mm in Sources */,
+ A916C9981C8449DB00C7B560 /* HBTitleSelectionController.m in Sources */,
+ A916C9971C8449CA00C7B560 /* HBAudioDefaultsController.m in Sources */,
+ A916C9961C8449BE00C7B560 /* HBJobOutputFileWriter.m in Sources */,
+ A916C9951C8449B000C7B560 /* HBChapterTitlesController.m in Sources */,
+ A916C9931C8449A100C7B560 /* HBAddPresetController.m in Sources */,
+ A916C9921C84498F00C7B560 /* DockTextField.m in Sources */,
+ A9706CB41AC1436F00BAEAA8 /* HBApplication.m in Sources */,
+ 273F20B514ADBE670021BE6D /* HBPreferencesController.m in Sources */,
+ 273F20AC14ADBE670021BE6D /* HBController.m in Sources */,
+ A93E0ED31972957000FD67FB /* HBVideoController.m in Sources */,
+ A99F40CF1B624E7E00750170 /* HBPictureViewController.m in Sources */,
+ 273F20AF14ADBE670021BE6D /* HBAudioController.m in Sources */,
+ A9DC6C52196F04F6002AE6B4 /* HBSubtitlesController.m in Sources */,
+ A9F472891976B7F30009EC65 /* HBSubtitlesDefaultsController.m in Sources */,
+ 273F20AD14ADBE670021BE6D /* HBAdvancedController.m in Sources */,
+ A9906B2C1A710920001D82D5 /* HBQueueController.m in Sources */,
A9F7102619A475EC00F61301 /* HBDockTile.m in Sources */,
A98C29C41977B10600AF5DED /* HBLanguagesSelection.m in Sources */,
- A9160A351AE7A165009A7818 /* HBCodingUtilities.m in Sources */,
A9BB0F2719A0ECE40079F1C1 /* HBHUDButtonCell.m in Sources */,
- A932E273198834130047D13E /* HBAudioDefaults.m in Sources */,
A9706CB71AC1437800BAEAA8 /* HBExceptionAlertController.m in Sources */,
A92268781A6E555500A8D5C5 /* HBAppDelegate.m in Sources */,
- A9D0FA771C1C284D0003F2A9 /* HBFocusRingView.m in Sources */,
- A91806711A4807B000FC9BED /* HBRange.m in Sources */,
- A9DEC8771A23C88D00C79B48 /* HBVideo.m in Sources */,
- A9523937199A6AAE00588AEF /* HBFilters.m in Sources */,
- A9AA447A1970664A00D7DEFC /* HBUtilities.m in Sources */,
A9BC24C91A69293E007DC41A /* HBAttributedStringAdditions.m in Sources */,
- 273F20AC14ADBE670021BE6D /* HBController.m in Sources */,
A914BCB61BC441D100157917 /* QTKit+HBQTMovieExtensions.m in Sources */,
- 273F20AD14ADBE670021BE6D /* HBAdvancedController.m in Sources */,
- 273F20AE14ADBE670021BE6D /* HBAudioTrack.m in Sources */,
- A9DEC87A1A23C89E00C79B48 /* HBPicture.m in Sources */,
- A96CD1761BCC5F9100F372F1 /* HBMutablePreset.m in Sources */,
- 273F20AF14ADBE670021BE6D /* HBAudioController.m in Sources */,
- A9537BF31A48A99500141102 /* HBVideo+UIAdditions.m in Sources */,
- 273F20B114ADBE670021BE6D /* HBDVDDetector.m in Sources */,
273F20B214ADBE670021BE6D /* HBImageAndTextCell.m in Sources */,
- A9537BF61A48AB6300141102 /* HBPicture+UIAdditions.m in Sources */,
273F20B314ADBE670021BE6D /* HBOutputPanelController.m in Sources */,
273F20B414ADBE670021BE6D /* HBOutputRedirect.m in Sources */,
- A93FD4751A62ABE800A6AC43 /* HBAudio.m in Sources */,
- A971281F1A2C75180088C076 /* HBTitle.m in Sources */,
- 273F20B514ADBE670021BE6D /* HBPreferencesController.m in Sources */,
+ A9D0FA771C1C284D0003F2A9 /* HBFocusRingView.m in Sources */,
A9D0FA7A1C1C36820003F2A9 /* HBTabView.m in Sources */,
- A9E66D701A67A2A8007B641D /* HBDistributedArray.m in Sources */,
- A99422E01B1887B000DDB077 /* NSJSONSerialization+HBAdditions.m in Sources */,
- A9DC6C52196F04F6002AE6B4 /* HBSubtitlesController.m in Sources */,
- A988AF9D1BC7C35F00932543 /* HBChapter.m in Sources */,
- A9F472891976B7F30009EC65 /* HBSubtitlesDefaultsController.m in Sources */,
A91AFD0C1A948827009BECED /* HBOutputFileWriter.m in Sources */,
- A9906B2C1A710920001D82D5 /* HBQueueController.m in Sources */,
- A914BCB31BC441C700157917 /* HBPreviewView.m in Sources */,
- A9CF25F41990D64E0023F727 /* HBPreset.m in Sources */,
A95121E61B5F7BE700FD773D /* NSArray+HBAdditions.m in Sources */,
- A9DEC8741A23C87500C79B48 /* HBCore.m in Sources */,
- A9F4728D1976BAA70009EC65 /* HBSubtitlesDefaults.m in Sources */,
- A93E0ED31972957000FD67FB /* HBVideoController.m in Sources */,
- 273F20B614ADBE670021BE6D /* HBPresetsManager.m in Sources */,
+ A914BCB31BC441C700157917 /* HBPreviewView.m in Sources */,
273F20B714ADBE670021BE6D /* HBPreviewController.m in Sources */,
- A990D9071A64562200139032 /* HBJob+HBJobConversion.m in Sources */,
A9D1E41718262364002F6424 /* HBPreviewGenerator.m in Sources */,
- A90A0CAF1988D57200DA65CE /* HBAudioTrackPreset.m in Sources */,
- A91017B41A64440A00039BFB /* HBSubtitles.m in Sources */,
273F20BA14ADBE670021BE6D /* HBPictureController.m in Sources */,
- A9706CB41AC1436F00BAEAA8 /* HBApplication.m in Sources */,
- A99F40CF1B624E7E00750170 /* HBPictureViewController.m in Sources */,
A9CF25F71990D6820023F727 /* HBPresetsViewController.m in Sources */,
- A9537BF91A48AC9000141102 /* HBFilters+UIAdditions.m in Sources */,
- 273F20BE14ADC09F0021BE6D /* main.mm in Sources */,
- A9537BF01A48A85C00141102 /* HBJob+UIAdditions.m in Sources */,
- A9EA43681A2210C400785E95 /* HBQueueOutlineView.m in Sources */,
- A9C183961A716B8F00C897C2 /* HBTitleSelectionController.m in Sources */,
- A91726E7197291BC00D1AFEF /* HBChapterTitlesController.m in Sources */,
- A9C9F88919A733FE00DC8923 /* HBHUDView.m in Sources */,
- A932E26F198833920047D13E /* HBAudioDefaultsController.m in Sources */,
- A91AFD0F1A949472009BECED /* HBJobOutputFileWriter.m in Sources */,
- A93B0DF81C804CF50051A3FA /* NSDictionary+HBAdditions.m in Sources */,
- 46AB433515F98A2B009C0961 /* DockTextField.m in Sources */,
- A9DEC87F1A23DF6F00C79B48 /* HBJob.m in Sources */,
- A9E2FD271A21BC4A000E8D3F /* HBAddPresetController.m in Sources */,
- A975C08E1AE8C5270061870D /* HBStateFormatter.m in Sources */,
- A9181CB21BD76F8400E5C8B0 /* HBSubtitlesTrack.m in Sources */,
- A9D488A51996270300E9B1BA /* HBTreeNode.m in Sources */,
- A9597A2A1A49749D00007771 /* HBRange+UIAdditions.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
- A95B8D8F1B09F16700F2F152 /* Sources */ = {
+ A9736EFD1C7DA5FE008F1D18 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- A98FD5931B19C63800FCC7A5 /* HBMockTitle.m in Sources */,
- A91404611BDBB7DE00BE29A7 /* HBJobUndoTests.m in Sources */,
- A9A24B2D1B09F6FD00AD1FAB /* HBPresetsTests.m in Sources */,
- A9A24B2F1B09F87400AD1FAB /* HBJobTests.m in Sources */,
+ A916180E1C845161000556C6 /* NSDictionary+HBAdditions.m in Sources */,
+ A91CE2F61C7DB96D0068F46F /* NSJSONSerialization+HBAdditions.m in Sources */,
+ A91CE2F71C7DB96D0068F46F /* HBPresetsManager.m in Sources */,
+ A91CE2F81C7DB96D0068F46F /* HBPreset.m in Sources */,
+ A98F38071C7DCA7E00E469C8 /* HBStateFormatter+Private.m in Sources */,
+ A91CE2F91C7DB96D0068F46F /* HBMutablePreset.m in Sources */,
+ A91CE2FA1C7DB96D0068F46F /* HBTreeNode.m in Sources */,
+ A91CE2B01C7DA9FB0068F46F /* HBUtilities.m in Sources */,
+ A91CE27D1C7DA7320068F46F /* HBCore.m in Sources */,
+ A91CE27F1C7DA7320068F46F /* HBTitle.m in Sources */,
+ A91CE2821C7DA7320068F46F /* HBJob.m in Sources */,
+ A91CE2841C7DA7320068F46F /* HBJob+HBJobConversion.m in Sources */,
+ A91CE2861C7DA7320068F46F /* HBRange.m in Sources */,
+ A91CE2881C7DA7320068F46F /* HBVideo.m in Sources */,
+ A91CE28A1C7DA7320068F46F /* HBPicture.m in Sources */,
+ A91CE28C1C7DA7320068F46F /* HBFilters.m in Sources */,
+ A91CE28E1C7DA7320068F46F /* HBChapter.m in Sources */,
+ A91CE2901C7DA7320068F46F /* HBAudio.m in Sources */,
+ A91CE2921C7DA7320068F46F /* HBAudioTrack.m in Sources */,
+ A91CE2941C7DA7320068F46F /* HBAudioDefaults.m in Sources */,
+ A91CE2961C7DA7320068F46F /* HBAudioTrackPreset.m in Sources */,
+ A91CE2981C7DA7320068F46F /* HBSubtitles.m in Sources */,
+ A91CE29A1C7DA7320068F46F /* HBSubtitlesTrack.m in Sources */,
+ A91CE29C1C7DA7320068F46F /* HBSubtitlesDefaults.m in Sources */,
+ A91CE29E1C7DA7320068F46F /* HBJob+UIAdditions.m in Sources */,
+ A91CE2A01C7DA7320068F46F /* HBRange+UIAdditions.m in Sources */,
+ A91CE2A21C7DA7320068F46F /* HBVideo+UIAdditions.m in Sources */,
+ A91CE2A41C7DA7320068F46F /* HBPicture+UIAdditions.m in Sources */,
+ A91119A61C7DD64A001C463C /* HBDistributedArray.m in Sources */,
+ A91CE2A61C7DA7320068F46F /* HBFilters+UIAdditions.m in Sources */,
+ A91CE2A81C7DA7320068F46F /* HBDVDDetector.m in Sources */,
+ A91CE2AA1C7DA7320068F46F /* HBCodingUtilities.m in Sources */,
+ A91CE2AD1C7DA7320068F46F /* HBStateFormatter.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ A9736F071C7DA5FE008F1D18 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ A94A98F51C858EFB004BA9BA /* HBDictTests.m in Sources */,
+ A9DF49271C884C4E008AC14A /* HBJobTests.m in Sources */,
+ A9DF49291C884C4E008AC14A /* HBMockTitle.m in Sources */,
+ A9DF49281C884C4E008AC14A /* HBJobUndoTests.m in Sources */,
+ A9DF492A1C884C4E008AC14A /* HBPresetsTests.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1312,15 +1485,25 @@
target = 273F216E14ADD2170021BE6D /* external */;
targetProxy = 273F217614ADD2580021BE6D /* PBXContainerItemProxy */;
};
- 2781697114B02B1B00A28B61 /* PBXTargetDependency */ = {
+ A91CE2AF1C7DA74D0068F46F /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 273F216E14ADD2170021BE6D /* external */;
- targetProxy = 2781697014B02B1B00A28B61 /* PBXContainerItemProxy */;
+ targetProxy = A91CE2AE1C7DA74D0068F46F /* PBXContainerItemProxy */;
};
- A95B8D9A1B09F16700F2F152 /* PBXTargetDependency */ = {
+ A91CE2EF1C7DB40D0068F46F /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = A9736F011C7DA5FE008F1D18 /* HandBrakeKit */;
+ targetProxy = A91CE2EE1C7DB40D0068F46F /* PBXContainerItemProxy */;
+ };
+ A91CE3001C7DBA2C0068F46F /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 273F203814ADBC200021BE6D /* HandBrake */;
- targetProxy = A95B8D991B09F16700F2F152 /* PBXContainerItemProxy */;
+ targetProxy = A91CE2FF1C7DBA2C0068F46F /* PBXContainerItemProxy */;
+ };
+ A9736F0E1C7DA5FE008F1D18 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = A9736F011C7DA5FE008F1D18 /* HandBrakeKit */;
+ targetProxy = A9736F0D1C7DA5FE008F1D18 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
@@ -1493,6 +1676,8 @@
baseConfigurationReference = 275916DA14B2AB27007211E9 /* native.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ENABLE_MODULES = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
@@ -1534,6 +1719,7 @@
OTHER_LDFLAGS = (
"-filelist",
"$(EXTERNAL_BUILD)/macosx/osl.filelist.txt",
+ "-lc++",
);
SDKROOT = macosx;
SHARED_PRECOMPS_DIR = "$(CONFIGURATION_TEMP_DIR)/PrecompiledHeaders";
@@ -1546,6 +1732,8 @@
baseConfigurationReference = 275916DA14B2AB27007211E9 /* native.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ENABLE_MODULES = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
@@ -1583,6 +1771,7 @@
OTHER_LDFLAGS = (
"-filelist",
"$(EXTERNAL_BUILD)/macosx/osl.filelist.txt",
+ "-lc++",
);
SDKROOT = macosx;
SHARED_PRECOMPS_DIR = "$(CONFIGURATION_TEMP_DIR)/PrecompiledHeaders";
@@ -1593,6 +1782,7 @@
273F200814ADAE950021BE6D /* debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ CLANG_ENABLE_MODULES = NO;
CLANG_WARN_BOOL_CONVERSION = NO;
CLANG_WARN_CONSTANT_CONVERSION = NO;
CLANG_WARN_ENUM_CONVERSION = NO;
@@ -1617,6 +1807,7 @@
273F200914ADAE950021BE6D /* release */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ CLANG_ENABLE_MODULES = NO;
CLANG_WARN_BOOL_CONVERSION = NO;
CLANG_WARN_CONSTANT_CONVERSION = NO;
CLANG_WARN_ENUM_CONVERSION = NO;
@@ -1642,8 +1833,10 @@
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER = YES;
+ CLANG_ANALYZER_SECURITY_INSECUREAPI_RAND = YES;
CLANG_ANALYZER_SECURITY_INSECUREAPI_STRCPY = YES;
CLANG_ENABLE_OBJC_ARC = YES;
+ CODE_SIGN_IDENTITY = "-";
COMBINE_HIDPI_IMAGES = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@@ -1655,7 +1848,7 @@
"\"$(EXTERNAL_BUILD)/contrib/include\"",
);
INFOPLIST_FILE = "$(EXTERNAL_BUILD)/macosx/Info.plist";
- LD_RUNPATH_SEARCH_PATHS = "@loader_path/../Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = "@loader_path/../Frameworks @executable_path/../Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(EXTERNAL_BUILD)/libhb\"",
@@ -1671,8 +1864,10 @@
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER = YES;
+ CLANG_ANALYZER_SECURITY_INSECUREAPI_RAND = YES;
CLANG_ANALYZER_SECURITY_INSECUREAPI_STRCPY = YES;
CLANG_ENABLE_OBJC_ARC = YES;
+ CODE_SIGN_IDENTITY = "-";
COMBINE_HIDPI_IMAGES = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@@ -1684,7 +1879,7 @@
"\"$(EXTERNAL_BUILD)/contrib/include\"",
);
INFOPLIST_FILE = "$(EXTERNAL_BUILD)/macosx/Info.plist";
- LD_RUNPATH_SEARCH_PATHS = "@loader_path/../Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = "@loader_path/../Frameworks @executable_path/../Frameworks";
LIBRARY_SEARCH_PATHS = (
"$(inherited)",
"\"$(EXTERNAL_BUILD)/libhb\"",
@@ -1710,14 +1905,11 @@
};
name = release;
};
- A95B8D9B1B09F16800F2F152 /* debug */ = {
+ A9736F191C7DA5FE008F1D18 /* debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
- BUNDLE_LOADER = "$(TEST_HOST)";
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
+ CLANG_ANALYZER_NONNULL = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
@@ -1728,14 +1920,137 @@
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ CODE_SIGN_IDENTITY = "-";
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = NO;
+ CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = dwarf;
+ DEFINES_MODULE = YES;
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
ENABLE_STRICT_OBJC_MSGSEND = YES;
- FRAMEWORK_SEARCH_PATHS = (
- "$(DEVELOPER_FRAMEWORKS_DIR)",
+ ENABLE_TESTABILITY = YES;
+ FRAMEWORK_VERSION = A;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
"$(inherited)",
);
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ HEADER_SEARCH_PATHS = (
+ "\"$(EXTERNAL_BUILD)/libhb\"",
+ "\"$(EXTERNAL_BUILD)/contrib/include\"",
+ );
+ INFOPLIST_FILE = HandBrakeKit/Info.plist;
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks";
+ LIBRARY_SEARCH_PATHS = (
+ "$(inherited)",
+ "\"$(EXTERNAL_BUILD)/libhb\"",
+ "\"$(EXTERNAL_BUILD)/contrib/lib\"",
+ );
+ MACOSX_DEPLOYMENT_TARGET = 10.7;
+ MTL_ENABLE_DEBUG_INFO = YES;
+ ONLY_ACTIVE_ARCH = YES;
+ PRODUCT_BUNDLE_IDENTIFIER = fr.handbrake.HandBrakeKit;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SDKROOT = macosx;
+ SKIP_INSTALL = YES;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = debug;
+ };
+ A9736F1A1C7DA5FE008F1D18 /* release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ CODE_SIGN_IDENTITY = "-";
+ COMBINE_HIDPI_IMAGES = YES;
+ COPY_PHASE_STRIP = NO;
+ CURRENT_PROJECT_VERSION = 1;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ DEFINES_MODULE = YES;
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ ENABLE_NS_ASSERTIONS = NO;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ FRAMEWORK_VERSION = A;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ HEADER_SEARCH_PATHS = (
+ "\"$(EXTERNAL_BUILD)/libhb\"\n",
+ "\"$(EXTERNAL_BUILD)/contrib/include\"",
+ );
+ INFOPLIST_FILE = HandBrakeKit/Info.plist;
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks";
+ LIBRARY_SEARCH_PATHS = (
+ "$(inherited)",
+ "\"$(EXTERNAL_BUILD)/libhb\"",
+ "\"$(EXTERNAL_BUILD)/contrib/lib\"",
+ );
+ MACOSX_DEPLOYMENT_TARGET = 10.7;
+ MTL_ENABLE_DEBUG_INFO = NO;
+ PRODUCT_BUNDLE_IDENTIFIER = fr.handbrake.HandBrakeKit;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SDKROOT = macosx;
+ SKIP_INSTALL = YES;
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = release;
+ };
+ A9736F1B1C7DA5FE008F1D18 /* debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ CODE_SIGN_IDENTITY = "-";
+ COMBINE_HIDPI_IMAGES = YES;
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
@@ -1744,33 +2059,35 @@
"DEBUG=1",
"$(inherited)",
);
- GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- INFOPLIST_FILE = "HandBrake Tests/Info.plist";
+ HEADER_SEARCH_PATHS = (
+ "\"$(EXTERNAL_BUILD)/libhb\"",
+ "\"$(EXTERNAL_BUILD)/contrib/include\"",
+ );
+ INFOPLIST_FILE = HandBrakeKitTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
- MACOSX_DEPLOYMENT_TARGET = 10.7;
+ MACOSX_DEPLOYMENT_TARGET = 10.11;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
- PRODUCT_BUNDLE_IDENTIFIER = "HB.$(PRODUCT_NAME:rfc1034identifier)";
+ PRODUCT_BUNDLE_IDENTIFIER = fr.handbrake.HandBrakeKitTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = macosx;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/HandBrake.app/Contents/MacOS/HandBrake";
};
name = debug;
};
- A95B8D9C1B09F16800F2F152 /* release */ = {
+ A9736F1C1C7DA5FE008F1D18 /* release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
- BUNDLE_LOADER = "$(TEST_HOST)";
+ CLANG_ANALYZER_NONNULL = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
@@ -1781,15 +2098,12 @@
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ CODE_SIGN_IDENTITY = "-";
COMBINE_HIDPI_IMAGES = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
- FRAMEWORK_SEARCH_PATHS = (
- "$(DEVELOPER_FRAMEWORKS_DIR)",
- "$(inherited)",
- );
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
@@ -1798,11 +2112,15 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- INFOPLIST_FILE = "HandBrake Tests/Info.plist";
+ HEADER_SEARCH_PATHS = (
+ "\"$(EXTERNAL_BUILD)/libhb\"",
+ "\"$(EXTERNAL_BUILD)/contrib/include\"",
+ );
+ INFOPLIST_FILE = HandBrakeKitTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
- MACOSX_DEPLOYMENT_TARGET = 10.7;
+ MACOSX_DEPLOYMENT_TARGET = 10.11;
MTL_ENABLE_DEBUG_INFO = NO;
- PRODUCT_BUNDLE_IDENTIFIER = "HB.$(PRODUCT_NAME:rfc1034identifier)";
+ PRODUCT_BUNDLE_IDENTIFIER = fr.handbrake.HandBrakeKitTests;
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = macosx;
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/HandBrake.app/Contents/MacOS/HandBrake";
@@ -1848,11 +2166,20 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = release;
};
- A95B8D9D1B09F16800F2F152 /* Build configuration list for PBXNativeTarget "HandBrake Tests" */ = {
+ A9736F1D1C7DA5FE008F1D18 /* Build configuration list for PBXNativeTarget "HandBrakeKit" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ A9736F191C7DA5FE008F1D18 /* debug */,
+ A9736F1A1C7DA5FE008F1D18 /* release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = release;
+ };
+ A9736F1E1C7DA5FE008F1D18 /* Build configuration list for PBXNativeTarget "HandBrakeKitTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
- A95B8D9B1B09F16800F2F152 /* debug */,
- A95B8D9C1B09F16800F2F152 /* release */,
+ A9736F1B1C7DA5FE008F1D18 /* debug */,
+ A9736F1C1C7DA5FE008F1D18 /* release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = release;
diff --git a/macosx/HandBrake.xcodeproj/xcshareddata/xcschemes/HandBrake [DEBUG].xcscheme b/macosx/HandBrake.xcodeproj/xcshareddata/xcschemes/HandBrake [DEBUG].xcscheme
index 5cb8429ea..29dd0e4d0 100644
--- a/macosx/HandBrake.xcodeproj/xcshareddata/xcschemes/HandBrake [DEBUG].xcscheme
+++ b/macosx/HandBrake.xcodeproj/xcshareddata/xcschemes/HandBrake [DEBUG].xcscheme
@@ -11,7 +11,8 @@
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
- buildForAnalyzing = "YES">
+ buildForAnalyzing = "YES"
+ hideIssues = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "273F203814ADBC200021BE6D"
@@ -25,7 +26,8 @@
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
- buildForAnalyzing = "YES">
+ buildForAnalyzing = "YES"
+ hideIssues = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "273F1FFE14ADAE950021BE6D"
@@ -34,20 +36,6 @@
ReferencedContainer = "container:HandBrake.xcodeproj">
</BuildableReference>
</BuildActionEntry>
- <BuildActionEntry
- buildForTesting = "YES"
- buildForRunning = "YES"
- buildForProfiling = "NO"
- buildForArchiving = "NO"
- buildForAnalyzing = "YES">
- <BuildableReference
- BuildableIdentifier = "primary"
- BlueprintIdentifier = "A95B8D921B09F16700F2F152"
- BuildableName = "HandBrake Tests.xctest"
- BlueprintName = "HandBrake Tests"
- ReferencedContainer = "container:HandBrake.xcodeproj">
- </BuildableReference>
- </BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
@@ -60,9 +48,9 @@
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
- BlueprintIdentifier = "A95B8D921B09F16700F2F152"
- BuildableName = "HandBrake Tests.xctest"
- BlueprintName = "HandBrake Tests"
+ BlueprintIdentifier = "A9736F0A1C7DA5FE008F1D18"
+ BuildableName = "HandBrakeKitTests.xctest"
+ BlueprintName = "HandBrakeKitTests"
ReferencedContainer = "container:HandBrake.xcodeproj">
</BuildableReference>
</TestableReference>
diff --git a/macosx/HandBrake.xcodeproj/xcshareddata/xcschemes/HandBrake [RELEASE].xcscheme b/macosx/HandBrake.xcodeproj/xcshareddata/xcschemes/HandBrake [RELEASE].xcscheme
index 60d62e5a4..91183912c 100644
--- a/macosx/HandBrake.xcodeproj/xcshareddata/xcschemes/HandBrake [RELEASE].xcscheme
+++ b/macosx/HandBrake.xcodeproj/xcshareddata/xcschemes/HandBrake [RELEASE].xcscheme
@@ -11,7 +11,8 @@
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
- buildForAnalyzing = "YES">
+ buildForAnalyzing = "YES"
+ hideIssues = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "273F203814ADBC200021BE6D"
@@ -25,7 +26,8 @@
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
- buildForAnalyzing = "YES">
+ buildForAnalyzing = "YES"
+ hideIssues = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "273F1FFE14ADAE950021BE6D"
@@ -36,15 +38,16 @@
</BuildActionEntry>
<BuildActionEntry
buildForTesting = "YES"
- buildForRunning = "YES"
+ buildForRunning = "NO"
buildForProfiling = "NO"
buildForArchiving = "NO"
- buildForAnalyzing = "YES">
+ buildForAnalyzing = "NO"
+ hideIssues = "NO">
<BuildableReference
BuildableIdentifier = "primary"
- BlueprintIdentifier = "A95B8D921B09F16700F2F152"
- BuildableName = "HandBrake Tests.xctest"
- BlueprintName = "HandBrake Tests"
+ BlueprintIdentifier = "A9736F0A1C7DA5FE008F1D18"
+ BuildableName = "HandBrakeKitTests.xctest"
+ BlueprintName = "HandBrakeKitTests"
ReferencedContainer = "container:HandBrake.xcodeproj">
</BuildableReference>
</BuildActionEntry>
@@ -60,9 +63,9 @@
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
- BlueprintIdentifier = "A95B8D921B09F16700F2F152"
- BuildableName = "HandBrake Tests.xctest"
- BlueprintName = "HandBrake Tests"
+ BlueprintIdentifier = "A9736F0A1C7DA5FE008F1D18"
+ BuildableName = "HandBrakeKitTests.xctest"
+ BlueprintName = "HandBrakeKitTests"
ReferencedContainer = "container:HandBrake.xcodeproj">
</BuildableReference>
</TestableReference>
diff --git a/macosx/HandBrakeKit/HandBrakeKit.h b/macosx/HandBrakeKit/HandBrakeKit.h
new file mode 100644
index 000000000..40d756e85
--- /dev/null
+++ b/macosx/HandBrakeKit/HandBrakeKit.h
@@ -0,0 +1,51 @@
+/* HandBrakeKit.h $
+
+ This file is part of the HandBrake source code.
+ Homepage: <http://handbrake.fr/>.
+ It may be used under the terms of the GNU General Public License. */
+
+#import <Foundation/Foundation.h>
+
+//! Project version number for HandBrakeKit.
+FOUNDATION_EXPORT double HandBrakeKitVersionNumber;
+
+//! Project version string for HandBrakeKit.
+FOUNDATION_EXPORT const unsigned char HandBrakeKitVersionString[];
+
+
+#import <HandBrakeKit/HBCore.h>
+#import <HandBrakeKit/HBTitle.h>
+#import <HandBrakeKit/HBJob.h>
+
+#import <HandBrakeKit/HBRange.h>
+#import <HandBrakeKit/HBChapter.h>
+
+#import <HandBrakeKit/HBVideo.h>
+#import <HandBrakeKit/HBPicture.h>
+#import <HandBrakeKit/HBFilters.h>
+
+#import <HandBrakeKit/HBAudio.h>
+#import <HandBrakeKit/HBAudioTrack.h>
+#import <HandBrakeKit/HBAudioDefaults.h>
+#import <HandBrakeKit/HBAudioTrackPreset.h>
+
+#import <HandBrakeKit/HBSubtitles.h>
+#import <HandBrakeKit/HBSubtitlesTrack.h>
+#import <HandBrakeKit/HBSubtitlesDefaults.h>
+
+#import <HandBrakeKit/HBDVDDetector.h>
+
+#import <HandBrakeKit/HBStateFormatter.h>
+#import <HandBrakeKit/HBDistributedArray.h>
+#import <HandBrakeKit/HBUtilities.h>
+
+#import <HandBrakeKit/HBPresetsManager.h>
+#import <HandBrakeKit/HBPreset.h>
+#import <HandBrakeKit/HBMutablePreset.h>
+#import <HandBrakeKit/HBPresetCoding.h>
+
+#import <HandBrakeKit/HBJob+UIAdditions.h>
+#import <HandBrakeKit/HBRange+UIAdditions.h>
+#import <HandBrakeKit/HBVideo+UIAdditions.h>
+#import <HandBrakeKit/HBPicture+UIAdditions.h>
+#import <HandBrakeKit/HBFilters+UIAdditions.h>
diff --git a/macosx/HandBrakeKit/Info.plist b/macosx/HandBrakeKit/Info.plist
new file mode 100644
index 000000000..d3de8eefb
--- /dev/null
+++ b/macosx/HandBrakeKit/Info.plist
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>en</string>
+ <key>CFBundleExecutable</key>
+ <string>$(EXECUTABLE_NAME)</string>
+ <key>CFBundleIdentifier</key>
+ <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundleName</key>
+ <string>$(PRODUCT_NAME)</string>
+ <key>CFBundlePackageType</key>
+ <string>FMWK</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>$(CURRENT_PROJECT_VERSION)</string>
+ <key>NSPrincipalClass</key>
+ <string></string>
+</dict>
+</plist>
diff --git a/macosx/HandBrakeKitTests/HBDictTests.m b/macosx/HandBrakeKitTests/HBDictTests.m
new file mode 100644
index 000000000..905426488
--- /dev/null
+++ b/macosx/HandBrakeKitTests/HBDictTests.m
@@ -0,0 +1,100 @@
+//
+// HBDictTests.m
+// HandBrake
+//
+// Created by Damiano Galassi on 01/03/16.
+//
+//
+
+#import <XCTest/XCTest.h>
+#import "NSDictionary+HBAdditions.h"
+#include "hb.h"
+
+@interface HBDictTests : XCTestCase
+
+@property (nonatomic, strong) NSDictionary *dict;
+
+@end
+
+@implementation HBDictTests
+
+- (void)setUp
+{
+ [super setUp];
+ self.dict = @{@"DoubleKey": @(20.3),
+ @"StringKey": @"miao",
+ @"BoolKey": @YES,
+ @"ArrayKey": @[@"First", @"Second", @20]};
+}
+
+- (void)tearDown
+{
+ self.dict = nil;
+ [super tearDown];
+}
+
+- (void)testNSDictionaryToHBDict
+{
+ hb_dict_t *hbdict = self.dict.hb_value;
+
+ double doubleValue = hb_value_get_double(hb_dict_get(hbdict, "DoubleKey"));
+ XCTAssertEqual(doubleValue, [self.dict[@"DoubleKey"] doubleValue]);
+
+ const char *stringValue = hb_value_get_string(hb_dict_get(hbdict, "StringKey"));
+ XCTAssertEqualObjects(@(stringValue), self.dict[@"StringKey"]);
+
+ BOOL boolValue = (BOOL)hb_value_get_bool(hb_dict_get(hbdict, "BoolKey"));
+ XCTAssertEqual(boolValue, [self.dict[@"BoolKey"] boolValue]);
+
+ hb_value_array_t *array = hb_dict_get(hbdict, "ArrayKey");
+
+ size_t count = hb_value_array_len(array);
+ XCTAssertEqual(count, [self.dict[@"ArrayKey"] count]);
+
+ const char *arrayString = hb_value_get_string(hb_value_array_get(array, 0));
+ XCTAssertEqualObjects(@(arrayString), self.dict[@"ArrayKey"][0]);
+
+ long long arrayInt = hb_value_get_int(hb_value_array_get(array, 2));
+ XCTAssertEqual(arrayInt, [self.dict[@"ArrayKey"][2] integerValue]);
+
+ hb_dict_free(&hbdict);
+}
+
+- (void)testNSDictionaryToHBDictToNSDictionary
+{
+ hb_dict_t *hbdict = self.dict.hb_value;
+ NSDictionary *result = [[NSDictionary alloc] initWithHBDict:hbdict];
+
+ XCTAssertEqualObjects(result[@"DoubleKey"], self.dict[@"DoubleKey"]);
+ XCTAssertEqualObjects(result[@"StringKey"], self.dict[@"StringKey"]);
+ XCTAssertEqualObjects(result[@"BoolKey"], self.dict[@"BoolKey"]);
+ XCTAssertEqualObjects(result[@"ArrayKey"], self.dict[@"ArrayKey"]);
+}
+
+- (void)testPerformanceHBDict
+{
+ NSDictionary *dict = self.dict;
+
+ [self measureBlock:^{
+ for (int i = 0; i < 10000; i++)
+ {
+ hb_dict_t *result = dict.hb_value;
+ hb_dict_free(&result);
+ }
+ }];
+}
+
+- (void)testPerformanceNSDictionary
+{
+ NSDictionary *dict = self.dict;
+ hb_dict_t *hbdict = dict.hb_value;
+
+ [self measureBlock:^{
+ for (int i = 0; i < 10000; i++)
+ {
+ __unused NSDictionary *result = [[NSDictionary alloc] initWithHBDict:hbdict];
+ }
+ }];
+}
+
+@end
diff --git a/macosx/HandBrake Tests/HBJobTests.m b/macosx/HandBrakeKitTests/HBJobTests.m
index ddcb28a86..55726deea 100644
--- a/macosx/HandBrake Tests/HBJobTests.m
+++ b/macosx/HandBrakeKitTests/HBJobTests.m
@@ -13,6 +13,7 @@
#import "HBJob+UIAdditions.h"
#import "HBPresetsManager.h"
#import "HBPreset.h"
+#import "HBMutablePreset.h"
@interface HBJobTests : XCTestCase
diff --git a/macosx/HandBrake Tests/HBJobUndoTests.m b/macosx/HandBrakeKitTests/HBJobUndoTests.m
index c62d4b1f3..c62d4b1f3 100644
--- a/macosx/HandBrake Tests/HBJobUndoTests.m
+++ b/macosx/HandBrakeKitTests/HBJobUndoTests.m
diff --git a/macosx/HandBrake Tests/HBMockTitle.h b/macosx/HandBrakeKitTests/HBMockTitle.h
index e83a13ad2..e83a13ad2 100644
--- a/macosx/HandBrake Tests/HBMockTitle.h
+++ b/macosx/HandBrakeKitTests/HBMockTitle.h
diff --git a/macosx/HandBrake Tests/HBMockTitle.m b/macosx/HandBrakeKitTests/HBMockTitle.m
index 217f56bfc..217f56bfc 100644
--- a/macosx/HandBrake Tests/HBMockTitle.m
+++ b/macosx/HandBrakeKitTests/HBMockTitle.m
diff --git a/macosx/HandBrake Tests/HBPresetsTests.m b/macosx/HandBrakeKitTests/HBPresetsTests.m
index af7e48ddd..af7e48ddd 100644
--- a/macosx/HandBrake Tests/HBPresetsTests.m
+++ b/macosx/HandBrakeKitTests/HBPresetsTests.m
diff --git a/macosx/HandBrake Tests/Info.plist b/macosx/HandBrakeKitTests/Info.plist
index ba72822e8..ba72822e8 100644
--- a/macosx/HandBrake Tests/Info.plist
+++ b/macosx/HandBrakeKitTests/Info.plist
diff --git a/macosx/NSArray+HBAdditions.h b/macosx/NSArray+HBAdditions.h
index b423e1e2b..7e7c8bce4 100644
--- a/macosx/NSArray+HBAdditions.h
+++ b/macosx/NSArray+HBAdditions.h
@@ -1,10 +1,8 @@
-//
-// NSArray+NSArray_HBArrayAdditions.h
-// HandBrake
-//
-// Created by Damiano Galassi on 22/07/15.
-//
-//
+/* NSArray+HBAdditions.h $
+
+ This file is part of the HandBrake source code.
+ Homepage: <http://handbrake.fr/>.
+ It may be used under the terms of the GNU General Public License. */
#import <Foundation/Foundation.h>
diff --git a/macosx/NSArray+HBAdditions.m b/macosx/NSArray+HBAdditions.m
index c54147098..cad90ba70 100644
--- a/macosx/NSArray+HBAdditions.m
+++ b/macosx/NSArray+HBAdditions.m
@@ -1,10 +1,8 @@
-//
-// NSArray+NSArray_HBArrayAdditions.m
-// HandBrake
-//
-// Created by Damiano Galassi on 22/07/15.
-//
-//
+/* NSArray+HBAdditions.m $
+
+ This file is part of the HandBrake source code.
+ Homepage: <http://handbrake.fr/>.
+ It may be used under the terms of the GNU General Public License. */
#import "NSArray+HBAdditions.h"