Added support for non-h264 compressors. First addition: Apple ProRes.

Some rearrangement internally of configuration interfaces, compressor classes and how libavformat muxers are created.

Quicktime MOV muxing may still have some quirks...
This commit is contained in:
Zakk 2016-03-28 07:51:44 -04:00
parent 4952335ece
commit 71410c620a
49 changed files with 1205 additions and 740 deletions

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0710"
LastUpgradeVersion = "0720"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0710"
LastUpgradeVersion = "0720"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0710"
LastUpgradeVersion = "0720"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0710"
LastUpgradeVersion = "0720"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0710"
LastUpgradeVersion = "0720"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0710"
LastUpgradeVersion = "0720"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0710"
LastUpgradeVersion = "0720"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0710"
LastUpgradeVersion = "0720"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -48,6 +48,13 @@
34348C2A19BDBDC000A122C2 /* PluginManagerWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 34348C2819BDBDC000A122C2 /* PluginManagerWindowController.m */; };
34348C2B19BDBDC000A122C2 /* PluginManagerWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 34348C2919BDBDC000A122C2 /* PluginManagerWindowController.xib */; };
34348C3919BDC0D800A122C2 /* PluginManagerWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 34348C2819BDBDC000A122C2 /* PluginManagerWindowController.m */; };
3434CB281CA8615A001B3DF9 /* AppleProResCompressor.m in Sources */ = {isa = PBXBuildFile; fileRef = 3434CB271CA8615A001B3DF9 /* AppleProResCompressor.m */; };
3434CB2D1CA90D28001B3DF9 /* CSx264CompressorViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3434CB2B1CA90D28001B3DF9 /* CSx264CompressorViewController.m */; };
3434CB2E1CA90D28001B3DF9 /* CSx264CompressorViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3434CB2C1CA90D28001B3DF9 /* CSx264CompressorViewController.xib */; };
3434CB321CA91D99001B3DF9 /* CSAppleH264CompressorViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3434CB301CA91D99001B3DF9 /* CSAppleH264CompressorViewController.m */; };
3434CB331CA91D99001B3DF9 /* CSAppleH264CompressorViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3434CB311CA91D99001B3DF9 /* CSAppleH264CompressorViewController.xib */; };
3434CB381CA93BCD001B3DF9 /* CSAppleProResCompressorViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3434CB361CA93BCD001B3DF9 /* CSAppleProResCompressorViewController.m */; };
3434CB391CA93BCD001B3DF9 /* CSAppleProResCompressorViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 3434CB371CA93BCD001B3DF9 /* CSAppleProResCompressorViewController.xib */; };
3435E396188B902C0015CC01 /* 420v.fgsh in Resources */ = {isa = PBXBuildFile; fileRef = 3435E395188B902C0015CC01 /* 420v.fgsh */; };
3435E39B188B93150015CC01 /* passthrough.vtsh in Resources */ = {isa = PBXBuildFile; fileRef = 3435E39A188B93150015CC01 /* passthrough.vtsh */; };
3435E39D188BD8250015CC01 /* passthrough.fgsh in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3435E399188B90900015CC01 /* passthrough.fgsh */; };
@ -620,6 +627,18 @@
34348C2719BDBDC000A122C2 /* PluginManagerWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PluginManagerWindowController.h; sourceTree = "<group>"; };
34348C2819BDBDC000A122C2 /* PluginManagerWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PluginManagerWindowController.m; sourceTree = "<group>"; };
34348C2919BDBDC000A122C2 /* PluginManagerWindowController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = PluginManagerWindowController.xib; path = Interface/PluginManagerWindowController.xib; sourceTree = "<group>"; };
3434CB261CA8615A001B3DF9 /* AppleProResCompressor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppleProResCompressor.h; path = Compressor/AppleProResCompressor.h; sourceTree = "<group>"; };
3434CB271CA8615A001B3DF9 /* AppleProResCompressor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppleProResCompressor.m; path = Compressor/AppleProResCompressor.m; sourceTree = "<group>"; };
3434CB2A1CA90D28001B3DF9 /* CSx264CompressorViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CSx264CompressorViewController.h; path = Interface/CSx264CompressorViewController.h; sourceTree = "<group>"; };
3434CB2B1CA90D28001B3DF9 /* CSx264CompressorViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CSx264CompressorViewController.m; path = Interface/CSx264CompressorViewController.m; sourceTree = "<group>"; };
3434CB2C1CA90D28001B3DF9 /* CSx264CompressorViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = CSx264CompressorViewController.xib; path = Interface/CSx264CompressorViewController.xib; sourceTree = "<group>"; };
3434CB2F1CA91D99001B3DF9 /* CSAppleH264CompressorViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CSAppleH264CompressorViewController.h; path = Interface/CSAppleH264CompressorViewController.h; sourceTree = "<group>"; };
3434CB301CA91D99001B3DF9 /* CSAppleH264CompressorViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CSAppleH264CompressorViewController.m; path = Interface/CSAppleH264CompressorViewController.m; sourceTree = "<group>"; };
3434CB311CA91D99001B3DF9 /* CSAppleH264CompressorViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = CSAppleH264CompressorViewController.xib; path = Interface/CSAppleH264CompressorViewController.xib; sourceTree = "<group>"; };
3434CB341CA933B3001B3DF9 /* CSCompressorViewControllerProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CSCompressorViewControllerProtocol.h; path = Interface/CSCompressorViewControllerProtocol.h; sourceTree = "<group>"; };
3434CB351CA93BCD001B3DF9 /* CSAppleProResCompressorViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CSAppleProResCompressorViewController.h; path = Interface/CSAppleProResCompressorViewController.h; sourceTree = "<group>"; };
3434CB361CA93BCD001B3DF9 /* CSAppleProResCompressorViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CSAppleProResCompressorViewController.m; path = Interface/CSAppleProResCompressorViewController.m; sourceTree = "<group>"; };
3434CB371CA93BCD001B3DF9 /* CSAppleProResCompressorViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = CSAppleProResCompressorViewController.xib; path = Interface/CSAppleProResCompressorViewController.xib; sourceTree = "<group>"; };
3435E395188B902C0015CC01 /* 420v.fgsh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = 420v.fgsh; path = Shaders/420v.fgsh; sourceTree = "<group>"; };
3435E399188B90900015CC01 /* passthrough.fgsh */ = {isa = PBXFileReference; lastKnownFileType = text; name = passthrough.fgsh; path = Shaders/passthrough.fgsh; sourceTree = "<group>"; };
3435E39A188B93150015CC01 /* passthrough.vtsh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = passthrough.vtsh; path = Shaders/passthrough.vtsh; sourceTree = "<group>"; };
@ -914,7 +933,7 @@
34F5140F16FD6E4F00BA894D /* x264Compressor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = x264Compressor.m; path = Compressor/x264Compressor.m; sourceTree = "<group>"; };
34F5141016FD6E4F00BA894D /* AppleVTCompressor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppleVTCompressor.h; path = Compressor/AppleVTCompressor.h; sourceTree = "<group>"; };
34F5141116FD6E4F00BA894D /* AppleVTCompressor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppleVTCompressor.m; path = Compressor/AppleVTCompressor.m; sourceTree = "<group>"; };
34F5141416FD6E5D00BA894D /* h264Compressor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = h264Compressor.h; path = Compressor/h264Compressor.h; sourceTree = "<group>"; };
34F5141416FD6E5D00BA894D /* VideoCompressor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VideoCompressor.h; path = Compressor/VideoCompressor.h; sourceTree = "<group>"; };
34F52A241BC1CE2700662911 /* CSLayoutCollectionItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CSLayoutCollectionItem.h; path = Interface/CSLayoutCollectionItem.h; sourceTree = "<group>"; };
34F52A251BC1CE2700662911 /* CSLayoutCollectionItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = CSLayoutCollectionItem.m; path = Interface/CSLayoutCollectionItem.m; sourceTree = "<group>"; };
34F52A261BC1CE2700662911 /* CSLayoutCollectionItem.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = CSLayoutCollectionItem.xib; path = Interface/CSLayoutCollectionItem.xib; sourceTree = "<group>"; };
@ -1179,6 +1198,23 @@
name = "Supporting Files";
sourceTree = "<group>";
};
3434CB291CA90C3D001B3DF9 /* Compressor */ = {
isa = PBXGroup;
children = (
3434CB2A1CA90D28001B3DF9 /* CSx264CompressorViewController.h */,
3434CB2B1CA90D28001B3DF9 /* CSx264CompressorViewController.m */,
3434CB2C1CA90D28001B3DF9 /* CSx264CompressorViewController.xib */,
3434CB2F1CA91D99001B3DF9 /* CSAppleH264CompressorViewController.h */,
3434CB301CA91D99001B3DF9 /* CSAppleH264CompressorViewController.m */,
3434CB311CA91D99001B3DF9 /* CSAppleH264CompressorViewController.xib */,
3434CB341CA933B3001B3DF9 /* CSCompressorViewControllerProtocol.h */,
3434CB351CA93BCD001B3DF9 /* CSAppleProResCompressorViewController.h */,
3434CB361CA93BCD001B3DF9 /* CSAppleProResCompressorViewController.m */,
3434CB371CA93BCD001B3DF9 /* CSAppleProResCompressorViewController.xib */,
);
name = Compressor;
sourceTree = "<group>";
};
3435E398188B90610015CC01 /* Shaders */ = {
isa = PBXGroup;
children = (
@ -1202,13 +1238,15 @@
3441338C18667F280059B686 /* Compressor */ = {
isa = PBXGroup;
children = (
34F5141416FD6E5D00BA894D /* h264Compressor.h */,
34F5141416FD6E5D00BA894D /* VideoCompressor.h */,
34F5140E16FD6E4F00BA894D /* x264Compressor.h */,
34F5140F16FD6E4F00BA894D /* x264Compressor.m */,
34213E18196680880054E238 /* CompressorBase.h */,
34213E19196680880054E238 /* CompressorBase.m */,
34F5141016FD6E4F00BA894D /* AppleVTCompressor.h */,
34F5141116FD6E4F00BA894D /* AppleVTCompressor.m */,
3434CB261CA8615A001B3DF9 /* AppleProResCompressor.h */,
3434CB271CA8615A001B3DF9 /* AppleProResCompressor.m */,
);
name = Compressor;
sourceTree = "<group>";
@ -1225,6 +1263,7 @@
3441338E18667FE40059B686 /* Interface */ = {
isa = PBXGroup;
children = (
3434CB291CA90C3D001B3DF9 /* Compressor */,
34ABEF3B17C0C2CB00AA5E62 /* advancedPrefPanel.xib */,
344825E41B253D6900AF9EAC /* CAMultiAudioMatrixCell.h */,
344825E51B253D6900AF9EAC /* CAMultiAudioMatrixCell.m */,
@ -2072,14 +2111,17 @@
34F1EB931BCCA41F00B38E6C /* CSLayoutEditWindowController.xib in Resources */,
342B33B61980771200492CB7 /* line.vtsh in Resources */,
34938EEF1AE4D24200F3B1CF /* CSFilterChooserWindowController.xib in Resources */,
3434CB2E1CA90D28001B3DF9 /* CSx264CompressorViewController.xib in Resources */,
3435E39B188B93150015CC01 /* passthrough.vtsh in Resources */,
34B5FCE119BF1C3F00F67D19 /* CreateLayoutViewController.xib in Resources */,
3479A9971A9007DD00A524F0 /* CocoaSplit.sdef in Resources */,
340D8C971959C7C100BE5144 /* CompressionSettingsPanel.xib in Resources */,
3434CB331CA91D99001B3DF9 /* CSAppleH264CompressorViewController.xib in Resources */,
344988131893CF0500044259 /* LogWindow.xib in Resources */,
34D696FC1871B8F700B50EB6 /* Defaults.plist in Resources */,
34348C2B19BDBDC000A122C2 /* PluginManagerWindowController.xib in Resources */,
34ABEF3C17C0C2CB00AA5E62 /* advancedPrefPanel.xib in Resources */,
3434CB391CA93BCD001B3DF9 /* CSAppleProResCompressorViewController.xib in Resources */,
3435E396188B902C0015CC01 /* 420v.fgsh in Resources */,
343ED9421BCAC1C80061FC4B /* EditBuiltinLayoutView.xib in Resources */,
3415CED31AE257DA002F11F5 /* CSTextCaptureBaseView.xib in Resources */,
@ -2149,6 +2191,8 @@
34ED8C9D1B07371C002C0674 /* MIKMIDIProgramChangeCommand.m in Sources */,
34ED8C731B07371C002C0674 /* MIKMIDIMappingXMLParser.m in Sources */,
34BD1E631B2481C20015CBEC /* CAMultiAudioMatrixMixerWindowController.m in Sources */,
3434CB381CA93BCD001B3DF9 /* CSAppleProResCompressorViewController.m in Sources */,
3434CB321CA91D99001B3DF9 /* CSAppleH264CompressorViewController.m in Sources */,
34F52A271BC1CE2700662911 /* CSLayoutCollectionItem.m in Sources */,
347277FD1A5A2758008801A9 /* CSIOSurfaceLayer.m in Sources */,
344825E61B253D6900AF9EAC /* CAMultiAudioMatrixCell.m in Sources */,
@ -2165,6 +2209,7 @@
34ED8CBC1B07763F002C0674 /* CSMidiWrapper.m in Sources */,
34DA1D3E1BF823E700132486 /* CSNewOutputWindowController.m in Sources */,
34ED8C691B07371C002C0674 /* MIKMIDIInputPort.m in Sources */,
3434CB281CA8615A001B3DF9 /* AppleProResCompressor.m in Sources */,
34ED8C531B07371C002C0674 /* MIKMIDICommandThrottler.m in Sources */,
345F8B611A161552009A81E3 /* CAMultiAudioAVCapturePlayer.m in Sources */,
34ED8CAD1B07371C002C0674 /* MIKMIDIUtilities.m in Sources */,
@ -2210,6 +2255,7 @@
3498D94F1A9472BD00906532 /* CSAudioSwitchControl.m in Sources */,
3400A0621BD44DF0003E1828 /* CSInputLibraryItem.m in Sources */,
34ED8C831B07371C002C0674 /* MIKMIDIMetaSequenceEvent.m in Sources */,
3434CB2D1CA90D28001B3DF9 /* CSx264CompressorViewController.m in Sources */,
34ED8C6D1B07371C002C0674 /* MIKMIDIMapping.m in Sources */,
34F1EB921BCCA41F00B38E6C /* CSLayoutEditWindowController.m in Sources */,
34ED8CA31B07371C002C0674 /* MIKMIDISourceEndpoint.m in Sources */,

View file

@ -32,10 +32,11 @@
#import "CSInputLibraryItem.h"
#import "CSNewOutputWindowController.h"
#import "CompressionSettingsPanelController.h"
#import "AppleProResCompressor.h"
@class FFMpegTask;
@protocol h264Compressor;
@protocol VideoCompressor;
@class OutputDestination;
@class InputSource;
@class SourceLayout;

View file

@ -1130,14 +1130,14 @@
-(void) migrateDefaultCompressor:(NSMutableDictionary *)saveRoot
{
if (self.compressors[@"x264"] && self.compressors[@"AppleVT"])
if (self.compressors[@"x264"] && self.compressors[@"AppleVT"] && self.compressors[@"AppleProRes"])
{
//We already migrated, or the user did it for us?
return;
}
id <h264Compressor> defaultCompressor = self.compressors[@"default"];
id <VideoCompressor> defaultCompressor = self.compressors[@"default"];
if (defaultCompressor)
{
[self.compressors removeObjectForKey:@"default"];
@ -1174,6 +1174,16 @@
self.compressors[@"AppleVT"] = newCompressor;
[[NSNotificationCenter defaultCenter] postNotificationName:CSNotificationCompressorAdded object:newCompressor];
}
if (!self.compressors[@"AppleProRes"])
{
AppleProResCompressor *newCompressor = [[AppleProResCompressor alloc] init];
newCompressor.name = @"AppleProRes".mutableCopy;
self.compressors[@"AppleProRes"] = newCompressor;
[[NSNotificationCenter defaultCenter] postNotificationName:CSNotificationCompressorAdded object:newCompressor];
}
}
@ -1599,7 +1609,7 @@
for (id cKey in self.compressors)
{
id <h264Compressor> tmpcomp = self.compressors[cKey];
id <VideoCompressor> tmpcomp = self.compressors[cKey];
tmpcomp.settingsController = self;
}
@ -1698,7 +1708,7 @@
for (id cKey in self.compressors)
{
id <h264Compressor> ctmp = self.compressors[cKey];
id <VideoCompressor> ctmp = self.compressors[cKey];
if (ctmp)
{
[ctmp reset];
@ -1796,7 +1806,7 @@
for(id cKey in self.compressors)
{
id <h264Compressor> compressor;
id <VideoCompressor> compressor;
compressor = self.compressors[cKey];
[compressor addAudioData:sampleBuffer];
@ -2191,7 +2201,7 @@
newFrameData.frameTime = _frame_time;
newFrameData.videoFrame = videoFrame;
id <h264Compressor> compressor;
id <VideoCompressor> compressor;
compressor = self.compressors[cKey];
[compressor compressFrame:newFrameData];

View file

@ -0,0 +1,33 @@
//
// AppleProResCompressor.h
// CocoaSplit
//
// Created by Zakk on 3/27/16.
// Copyright © 2016 Zakk. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "CaptureController.h"
#import "CompressorBase.h"
#import <VideoToolbox/VideoToolbox.h>
#import <VideoToolbox/VTVideoEncoderList.h>
@interface AppleProResCompressor : CompressorBase <VideoCompressor, NSCoding>
{
VTCompressionSessionRef _compression_session;
VTPixelTransferSessionRef _vtpt_ref;
}
//@property (strong) id<ControllerProtocol> settingsController;
//@property (strong) id<ControllerProtocol> outputDelegate;
@property (strong) NSNumber *proResType;
-(bool)compressFrame:(CapturedFrameData *)frameData;
@end

View file

@ -0,0 +1,315 @@
//
// AppleProResCompressor.m
// CocoaSplit
//
// Created by Zakk on 3/27/16.
// Copyright © 2016 Zakk. All rights reserved.
//
#import "AppleProResCompressor.h"
#import "OutputDestination.h"
#import "CSAppleProResCompressorViewController.h"
@implementation AppleProResCompressor
- (id)copyWithZone:(NSZone *)zone
{
AppleProResCompressor *copy = [[[self class] allocWithZone:zone] init];
copy.settingsController = self.settingsController;
copy.isNew = self.isNew;
copy.name = self.name;
copy.compressorType = self.compressorType;
copy.width = self.width;
copy.height = self.height;
copy.working_width = self.width;
copy.working_height = self.height;
copy.resolutionOption = self.resolutionOption;
copy.proResType = self.proResType;
return copy;
}
-(void) encodeWithCoder:(NSCoder *)aCoder
{
[aCoder encodeObject:self.name forKey:@"name"];
[aCoder encodeInteger:self.width forKey:@"videoWidth"];
[aCoder encodeInteger:self.height forKey:@"videoHeight"];
[aCoder encodeObject:self.resolutionOption forKey:@"resolutionOption"];
[aCoder encodeObject:self.proResType forKey:@"proResType"];
}
-(id) initWithCoder:(NSCoder *)aDecoder
{
if (self = [self init])
{
self.name = [aDecoder decodeObjectForKey:@"name"];
self.width = (int)[aDecoder decodeIntegerForKey:@"videoWidth"];
self.height = (int)[aDecoder decodeIntegerForKey:@"videoHeight"];
if ([aDecoder containsValueForKey:@"resolutionOption"])
{
self.resolutionOption = [aDecoder decodeObjectForKey:@"resolutionOption"];
}
self.proResType = [aDecoder decodeObjectForKey:@"proResType"];
if (!self.proResType)
{
self.proResType = @(kCMVideoCodecType_AppleProRes422);
}
}
return self;
}
-(id)init
{
if (self = [super init])
{
self.compressorType = @"AppleProResCompressor";
self.codec_id = AV_CODEC_ID_PRORES;
self.proResType = @(kCMVideoCodecType_AppleProRes422);
}
return self;
}
-(void) reset
{
self.errored = NO;
VTCompressionSessionInvalidate(_compression_session);
if (_compression_session)
{
CFRelease(_compression_session);
}
_compression_session = nil;
}
- (void) dealloc
{
[self reset];
}
-(NSString *)description
{
return @"Apple ProRes Compressor";
}
void __ProResPixelBufferRelease( void *releaseRefCon, const void *baseAddress )
{
free((int *)baseAddress);
}
-(bool)compressFrame:(CapturedFrameData *)frameData
{
if (![self hasOutputs])
{
return NO;
}
if (!_compression_session)
{
if (![self setupCompressor:frameData.videoFrame])
{
return NO;
}
return NO;
}
CFMutableDictionaryRef frameProperties;
/*
if (isKeyFrame)
{
frameProperties = CFDictionaryCreateMutable(NULL, 0, &kCFCopyStringDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
CFDictionaryAddValue(frameProperties, kVTEncodeFrameOptionKey_ForceKeyFrame, kCFBooleanTrue);
} else {
*/
frameProperties = NULL;
//}
if (!_vtpt_ref)
{
VTPixelTransferSessionCreate(kCFAllocatorDefault, &_vtpt_ref);
VTSessionSetProperty(_vtpt_ref, kVTPixelTransferPropertyKey_ScalingMode, kVTScalingMode_Letterbox);
}
CVPixelBufferRef converted_frame;
CVImageBufferRef imageBuffer = frameData.videoFrame;
CVPixelBufferRetain(imageBuffer);
CVPixelBufferCreate(kCFAllocatorDefault, self.working_width, self.working_height, kCVPixelFormatType_420YpCbCr8Planar, 0, &converted_frame);
VTPixelTransferSessionTransferImage(_vtpt_ref, imageBuffer, converted_frame);
//set it to nil since this is our private copy and this will force the frameData instance to release the video data
frameData.videoFrame = nil;
frameData.encoderData = converted_frame;
CVPixelBufferRelease(imageBuffer);
[self setAudioData:frameData syncObj:self];
VTCompressionSessionEncodeFrame(_compression_session, converted_frame, frameData.videoPTS, frameData.videoDuration, frameProperties, (__bridge_retained void *)(frameData), NULL);
if (frameProperties)
{
CFRelease(frameProperties);
}
return YES;
}
- (bool)setupCompressor:(CVPixelBufferRef)videoFrame
{
OSStatus status;
if (!self.settingsController)
{
return NO;
}
[self setupResolution:videoFrame];
if (!self.working_height || !self.working_width)
{
self.errored = YES;
return NO;
}
NSDictionary *encoderSpec = @{
};
_compression_session = NULL;
NSLog(@"PRORES TYPE %@", self.proResType);
status = VTCompressionSessionCreate(NULL, self.working_width, self.working_height, self.proResType.intValue, (__bridge CFDictionaryRef)encoderSpec, NULL, NULL, __ProResVideoCompressorReceiveFrame, (__bridge void *)self, &_compression_session);
//CFDictionaryRef props;
//VTCompressionSessionCopySupportedPropertyDictionary(_compression_session, &props);
if (status != noErr || !_compression_session)
{
NSLog(@"COMPRESSOR SETUP ERROR");
self.errored = YES;
return NO;
}
_audioBuffer = [[NSMutableArray alloc] init];
return YES;
}
void __ProResVideoCompressorReceiveFrame(void *VTref, void *VTFrameRef, OSStatus status, VTEncodeInfoFlags infoFlags, CMSampleBufferRef sampleBuffer)
{
/*
if (VTFrameRef)
{
CVPixelBufferRelease(VTFrameRef);
}
*/
//@autoreleasepool {
if(!sampleBuffer)
return;
CFRetain(sampleBuffer);
CapturedFrameData *frameData;
frameData = (__bridge_transfer CapturedFrameData *)(VTFrameRef);
if (!frameData)
{
//What?
return;
}
CVPixelBufferRelease(frameData.encoderData);
//frameData.videoFrame = nil;
frameData.encodedSampleBuffer = sampleBuffer;
AppleVTCompressor *selfobj = (__bridge AppleVTCompressor *)VTref;
for (id dKey in selfobj.outputs)
{
OutputDestination *dest = selfobj.outputs[dKey];
[dest writeEncodedData:frameData];
}
CFRelease(sampleBuffer);
//}
}
-(id <CSCompressorViewControllerProtocol>)getConfigurationView
{
return [[CSAppleProResCompressorViewController alloc] init];
}
@end

View file

@ -13,7 +13,7 @@
#import <VideoToolbox/VideoToolbox.h>
#import <VideoToolbox/VTVideoEncoderList.h>
@interface AppleVTCompressor : CompressorBase <h264Compressor, NSCoding>
@interface AppleVTCompressor : CompressorBase <VideoCompressor, NSCoding>
{
VTCompressionSessionRef _compression_session;

View file

@ -8,6 +8,7 @@
#import "AppleVTCompressor.h"
#import "OutputDestination.h"
#import "CSAppleH264CompressorViewController.h"
OSStatus VTCompressionSessionCopySupportedPropertyDictionary(VTCompressionSessionRef, CFDictionaryRef *);
@ -443,5 +444,10 @@ void VideoCompressorReceiveFrame(void *VTref, void *VTFrameRef, OSStatus status,
//}
}
-(id <CSCompressorViewControllerProtocol>)getConfigurationView
{
return [[CSAppleH264CompressorViewController alloc] init];
}
@end

View file

@ -7,12 +7,13 @@
//
#import <Foundation/Foundation.h>
#import "h264Compressor.h"
#import "VideoCompressor.h"
#import "CSCompressorViewControllerProtocol.h"
@class captureController;
@interface CompressorBase : NSObject <h264Compressor, NSCoding>
@interface CompressorBase : NSObject <VideoCompressor, NSCoding>
{
NSMutableArray *_audioBuffer;
}
@ -38,6 +39,7 @@
@property (strong) NSMutableString *name;
@property (assign) bool errored;
@property (assign) bool active;
@property (assign) enum AVCodecID codec_id;
@ -46,6 +48,7 @@
-(BOOL) setupResolution:(CVImageBufferRef)withFrame;
-(void) addAudioData:(CMSampleBufferRef)audioData;
-(void) setAudioData:(CapturedFrameData *)forFrame syncObj:(id)syncObj;
-(id <CSCompressorViewControllerProtocol>)getConfigurationView;

View file

@ -26,6 +26,8 @@
self.resolutionOption = @"Use Source";
self.codec_id = AV_CODEC_ID_H264;
self.outputs = [[NSMutableDictionary alloc] init];
_audioBuffer = [[NSMutableArray alloc] init];
@ -132,11 +134,13 @@
-(id) initWithCoder:(NSCoder *)aDecoder
{
self.codec_id = AV_CODEC_ID_H264;
return self;
}
-(bool) compressFrame:(CapturedFrameData *)imageBuffer
{
return YES;
@ -217,6 +221,10 @@
return YES;
}
-(id <CSCompressorViewControllerProtocol>)getConfigurationView
{
return nil;
}
@end

View file

@ -1,5 +1,5 @@
//
// h264Compressor.h
// VideoCompressor.h
// streamOutput
//
// Created by Zakk on 3/17/13.
@ -9,6 +9,8 @@
#import <Foundation/Foundation.h>
#import <CoreMedia/CoreMedia.h>
#import "CapturedFrameData.h"
#import "libavformat/avformat.h"
#import "CSCompressorViewControllerProtocol.h"
//#import "OutputDestination.h"
@ -18,7 +20,7 @@
@protocol ControllerProtocol;
@protocol h264Compressor <NSObject,NSCoding,NSCopying>
@protocol VideoCompressor <NSObject,NSCoding,NSCopying>
//compressFrame is expected to be non-blocking. Create a serial dispatch queue if the underlying compressor
//is blocking
@ -40,6 +42,7 @@
@property (strong) NSString *resolutionOption;
@property (assign) bool errored;
@property (assign) bool active;
@property (assign) enum AVCodecID codec_id;
-(void) addOutput:(id)destination;
-(void) removeOutput:(id)destination;
@ -47,6 +50,7 @@
-(void) reset;
-(bool) validate:(NSError **)therror;
-(void) addAudioData:(CMSampleBufferRef)audioData;
-(id <CSCompressorViewControllerProtocol>)getConfigurationView;

View file

@ -11,7 +11,7 @@
#import "libavcodec/avcodec.h"
#import "libswscale/swscale.h"
#import <CoreVideo/CoreVideo.h>
#import "h264Compressor.h"
#import "VideoCompressor.h"
#import "CaptureController.h"
#import <VideoToolbox/VideoToolbox.h>
#import "CapturedFrameData.h"

View file

@ -9,6 +9,7 @@
#import "x264Compressor.h"
#import "OutputDestination.h"
#import <libavutil/opt.h>
#import "CSx264CompressorViewController.h"
@ -562,6 +563,10 @@
[super setNilValueForKey:key];
}
-(id <CSCompressorViewControllerProtocol>)getConfigurationView
{
return [[CSx264CompressorViewController alloc] init];
}
@end

View file

@ -10,7 +10,7 @@
#import "libavformat/avformat.h"
#import "CapturedFrameData.h"
#import <AppKit/AppKit.h>
#import "h264Compressor.h"
#import "VideoCompressor.h"
#import "InputSource.h"
@ -26,7 +26,7 @@
@property (assign) int maxOutputPending;
@property (assign) int maxOutputDropped;
@property (strong) id <h264Compressor> selectedCompressor;
@property (strong) id <VideoCompressor> selectedCompressor;
@property (strong) NSMutableDictionary *compressors;

View file

@ -11,6 +11,8 @@
#import "libavformat/avformat.h"
#import "CapturedFrameData.h"
#import "CaptureController.h"
#import "libavutil/opt.h"
@ -75,6 +77,8 @@
@property (assign) double output_bitrate;
@property (assign) int dropped_frame_count;
@property (assign) BOOL errored;
@property (assign) enum AVCodecID video_codec_id;
@property (strong) CaptureController *settingsController;

View file

@ -278,6 +278,24 @@ void getAudioExtradata(char *cookie, char **buffer, size_t *size)
}
}
-(void) setVideoFormatOptions:(AVFormatContext *)ctx
{
AVOutputFormat *ofmt = ctx->oformat;
if (!ofmt)
{
return;
}
const char *fmt_name = ofmt->name;
if (!strcasecmp(fmt_name, "mov"))
{
av_opt_set_int(ctx->priv_data, "frag_duration", 10000000, 0);
}
}
-(bool) createAVFormatOut:(CMSampleBufferRef)theBuffer codec_ctx:(AVCodecContext *)codec_ctx
{
@ -299,7 +317,10 @@ void getAudioExtradata(char *cookie, char **buffer, size_t *size)
}
[self setVideoFormatOptions:_av_fmt_ctx];
av_out_fmt = _av_fmt_ctx->oformat;
_av_video_stream = avformat_new_stream(_av_fmt_ctx, 0);
if (!_av_video_stream)
@ -312,7 +333,7 @@ void getAudioExtradata(char *cookie, char **buffer, size_t *size)
AVCodecContext *c_ctx = _av_video_stream->codec;
c_ctx->codec_type = AVMEDIA_TYPE_VIDEO;
c_ctx->codec_id = AV_CODEC_ID_H264;
c_ctx->codec_id = self.video_codec_id;
_av_video_stream->time_base.num = 1000000;
_av_video_stream->time_base.den = self.framerate*1000000;
@ -332,8 +353,8 @@ void getAudioExtradata(char *cookie, char **buffer, size_t *size)
a_ctx->codec_type = AVMEDIA_TYPE_AUDIO;
a_ctx->codec_id = AV_CODEC_ID_AAC;
_av_audio_stream->time_base.num = 1000000;
_av_audio_stream->time_base.den = self.framerate*1000000;
_av_audio_stream->time_base.num = 100000;
_av_audio_stream->time_base.den = self.framerate*100000;
a_ctx->sample_rate = _samplerate;
a_ctx->bit_rate = _audio_bitrate;
a_ctx->channels = 2;
@ -360,14 +381,16 @@ void getAudioExtradata(char *cookie, char **buffer, size_t *size)
atoms = CMFormatDescriptionGetExtension(fmt, kCMFormatDescriptionExtension_SampleDescriptionExtensionAtoms);
avccKey = CFSTR("avcC");
NSLog(@"ATOMS %@", atoms);
avcc_data = CFDictionaryGetValue(atoms, avccKey);
avcc_size = CFDataGetLength(avcc_data);
c_ctx->extradata = malloc(avcc_size);
if (atoms)
{
avcc_data = CFDictionaryGetValue(atoms, avccKey);
avcc_size = CFDataGetLength(avcc_data);
c_ctx->extradata = malloc(avcc_size);
CFDataGetBytes(avcc_data, CFRangeMake(0,avcc_size), c_ctx->extradata);
CFDataGetBytes(avcc_data, CFRangeMake(0,avcc_size), c_ctx->extradata);
c_ctx->extradata_size = (int)avcc_size;
c_ctx->extradata_size = (int)avcc_size;
}
} else if (codec_ctx) {
self.width = codec_ctx->width;
self.height = codec_ctx->height;
@ -536,7 +559,6 @@ void getAudioExtradata(char *cookie, char **buffer, size_t *size)
NSLog(@"INTERLEAVED WRITE FRAME FAILED FOR %@ frame number %lld", self.stream_output, frameData.frameNumber);
}
//av_free_packet(p);
//av_free(p);
_output_framecnt++;
@ -652,6 +674,7 @@ void getAudioExtradata(char *cookie, char **buffer, size_t *size)
pkt.size = (int)buffer_length;
pkt.dts = av_rescale_q(CMSampleBufferGetDecodeTimeStamp(theBuffer).value, (AVRational) {1.0, CMSampleBufferGetDecodeTimeStamp(theBuffer).timescale}, _av_video_stream->time_base);
pkt.pts = av_rescale_q(CMSampleBufferGetPresentationTimeStamp(theBuffer).value, (AVRational) {1.0, CMSampleBufferGetPresentationTimeStamp(theBuffer).timescale}, _av_video_stream->time_base);
@ -672,22 +695,23 @@ void getAudioExtradata(char *cookie, char **buffer, size_t *size)
}
if (av_interleaved_write_frame(_av_fmt_ctx, &pkt) < 0)
{
NSLog(@"VIDEO WRITE FRAME failed for %@", self.stream_output);
//[self stopProcess];
}
_output_framecnt++;
_output_bytes += pkt.size;
_output_bytes += buffer_length;
//CMSampleBufferInvalidate(theBuffer);
CFRelease(theBuffer);
@synchronized(self)
{
_pending_frame_count--;
_pending_frame_size -= pkt.size;
_pending_frame_size -= buffer_length;
}
});

View file

@ -0,0 +1,19 @@
//
// CSAppleH264CompressorViewController.h
// CocoaSplit
//
// Created by Zakk on 3/28/16.
// Copyright © 2016 Zakk. All rights reserved.
//
#import <Cocoa/Cocoa.h>
#import "AppleVTCompressor.h"
#import "CSCompressorViewControllerProtocol.h"
@interface CSAppleH264CompressorViewController : NSViewController <CSCompressorViewControllerProtocol>
@property (strong) AppleVTCompressor *compressor;
@property (strong) NSObjectController *compressorController;
@property (strong) NSArray *profiles;
@end

View file

@ -0,0 +1,23 @@
//
// CSAppleH264CompressorViewController.m
// CocoaSplit
//
// Created by Zakk on 3/28/16.
// Copyright © 2016 Zakk. All rights reserved.
//
#import "CSAppleH264CompressorViewController.h"
@interface CSAppleH264CompressorViewController ()
@end
@implementation CSAppleH264CompressorViewController
- (void)viewDidLoad {
self.profiles = @[[NSNull null], @"Baseline", @"Main", @"High"];
[super viewDidLoad];
// Do view setup here.
}
@end

View file

@ -0,0 +1,138 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="9532" systemVersion="15E65" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<dependencies>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9532"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="CSAppleH264CompressorViewController">
<connections>
<outlet property="view" destination="Hz6-mo-xeY" id="0bl-1N-x8E"/>
</connections>
</customObject>
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
<customView id="Hz6-mo-xeY">
<rect key="frame" x="0.0" y="0.0" width="499" height="304"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<subviews>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="i6H-NQ-OLu">
<rect key="frame" x="-2" y="268" width="73" height="14"/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Avg Bitrate" id="g0w-Hc-Je6">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="vfh-gp-gJT">
<rect key="frame" x="-2" y="243" width="75" height="14"/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Max Bitrate" id="L5k-eu-J1g">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="7bI-b1-MNc">
<rect key="frame" x="-2" y="218" width="101" height="14"/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Keyframe every" id="QtW-dt-3MN">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="K3q-nW-Ceo">
<rect key="frame" x="-2" y="193" width="44" height="14"/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Profile" id="Sey-eY-Shp">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="9Wa-2k-JSA">
<rect key="frame" x="105" y="215" width="46" height="19"/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="ZPd-6G-YY8">
<numberFormatter key="formatter" formatterBehavior="custom10_4" positiveFormat="#" negativeFormat="#" numberStyle="decimal" allowsFloats="NO" usesGroupingSeparator="NO" paddingCharacter="*" groupingSize="0" minimumIntegerDigits="0" maximumIntegerDigits="309" decimalSeparator="." groupingSeparator="," currencyDecimalSeparator="." plusSign="+" minusSign="-" notANumberSymbol="NaN" perMillSymbol="‰" percentSymbol="%" exponentSymbol="E" positivePrefix="" positiveSuffix="" negativePrefix="-" negativeSuffix="" id="F8d-oR-7Hg"/>
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<connections>
<binding destination="-2" name="value" keyPath="self.compressorController.selection.keyframe_interval" id="vCS-cB-gqn"/>
</connections>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="c5j-Mh-UNF">
<rect key="frame" x="105" y="240" width="46" height="19"/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="kZi-vQ-EOe">
<numberFormatter key="formatter" formatterBehavior="custom10_4" positiveFormat="#" negativeFormat="#" numberStyle="decimal" allowsFloats="NO" usesGroupingSeparator="NO" paddingCharacter="*" groupingSize="0" minimumIntegerDigits="0" maximumIntegerDigits="309" decimalSeparator="." groupingSeparator="," currencyDecimalSeparator="." plusSign="+" minusSign="-" notANumberSymbol="NaN" perMillSymbol="‰" percentSymbol="%" exponentSymbol="E" positivePrefix="" positiveSuffix="" negativePrefix="-" negativeSuffix="" id="Irb-z3-J1I"/>
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<connections>
<binding destination="-2" name="value" keyPath="self.compressorController.selection.max_bitrate" id="LIY-2O-fqA"/>
</connections>
</textField>
<textField verticalHuggingPriority="750" ambiguous="YES" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="2wx-Bv-8Iz">
<rect key="frame" x="105" y="265" width="46" height="19"/>
<constraints>
<constraint firstAttribute="width" constant="46" id="DQy-WC-zzj"/>
</constraints>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="di5-Ib-WHU">
<numberFormatter key="formatter" formatterBehavior="custom10_4" positiveFormat="#" negativeFormat="#" allowsFloats="NO" usesGroupingSeparator="NO" paddingCharacter="*" groupingSize="0" minimumIntegerDigits="0" maximumIntegerDigits="42" decimalSeparator="." groupingSeparator="," currencyDecimalSeparator="." plusSign="+" minusSign="-" notANumberSymbol="NaN" perMillSymbol="‰" percentSymbol="%" exponentSymbol="E" positivePrefix="" positiveSuffix="" negativePrefix="-" negativeSuffix="" id="wTi-6K-IrG"/>
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<connections>
<binding destination="-2" name="value" keyPath="self.compressorController.selection.average_bitrate" id="5xv-0r-yQh"/>
</connections>
</textField>
<popUpButton verticalHuggingPriority="750" ambiguous="YES" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="bHp-jA-429">
<rect key="frame" x="102" y="188" width="101" height="22"/>
<constraints>
<constraint firstAttribute="width" constant="95" id="XkB-xB-TvJ"/>
</constraints>
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" controlSize="small" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="Aoj-Uw-GVX" id="tf3-Ku-jyf">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
<menu key="menu" title="OtherViews" id="lGM-Gr-3o1">
<items>
<menuItem title="Item 1" state="on" id="Aoj-Uw-GVX"/>
<menuItem title="Item 2" id="SJs-un-qra"/>
<menuItem title="Item 3" id="XJf-Uc-OXs"/>
</items>
</menu>
</popUpButtonCell>
<connections>
<binding destination="yzO-XB-Oba" name="content" keyPath="arrangedObjects" id="Dur-Dk-H6Z"/>
<binding destination="-2" name="selectedObject" keyPath="self.compressorController.selection.profile" previousBinding="Dur-Dk-H6Z" id="6L0-ML-xbm"/>
</connections>
</popUpButton>
<button fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Z92-Fj-1ta">
<rect key="frame" x="-3" y="168" width="113" height="20"/>
<buttonCell key="cell" type="check" title="Use CBR Mode" bezelStyle="regularSquare" imagePosition="left" controlSize="small" state="on" inset="2" id="0bQ-qK-hZe">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="smallSystem"/>
</buttonCell>
<connections>
<binding destination="-2" name="value" keyPath="self.compressorController.selection.use_cbr" id="xpt-Tf-XI4"/>
</connections>
</button>
<button toolTip="Bitrate is set to 'Avg Bitrate'. 'Max Bitrate' is ignored." horizontalHuggingPriority="750" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ia2-W3-v0j">
<rect key="frame" x="116" y="165" width="25" height="25"/>
<buttonCell key="cell" type="help" bezelStyle="helpButton" alignment="center" controlSize="small" enabled="NO" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="AOS-sj-oLL">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
</buttonCell>
</button>
</subviews>
<point key="canvasLocation" x="398.5" y="367"/>
</customView>
<arrayController id="yzO-XB-Oba" userLabel="Profiles Controller">
<connections>
<binding destination="-2" name="contentArray" keyPath="self.profiles" id="6mZ-fM-RCE"/>
</connections>
</arrayController>
<userDefaultsController representsSharedInstance="YES" id="ioE-gz-bGa"/>
</objects>
</document>

View file

@ -0,0 +1,19 @@
//
// CSAppleProResCompressorViewController.h
// CocoaSplit
//
// Created by Zakk on 3/28/16.
// Copyright © 2016 Zakk. All rights reserved.
//
#import <Cocoa/Cocoa.h>
#import "AppleProResCompressor.h"
#import "CSCompressorViewControllerProtocol.h"
@interface CSAppleProResCompressorViewController : NSViewController <CSCompressorViewControllerProtocol>
@property (strong) NSObjectController *compressorController;
@property (strong) NSDictionary *compressorTypes;
@end

View file

@ -0,0 +1,32 @@
//
// CSAppleProResCompressorViewController.m
// CocoaSplit
//
// Created by Zakk on 3/28/16.
// Copyright © 2016 Zakk. All rights reserved.
//
#import "CSAppleProResCompressorViewController.h"
@interface CSAppleProResCompressorViewController ()
@end
@implementation CSAppleProResCompressorViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do view setup here.
self.compressorTypes = @{@"ProRes 4444": @(kCMVideoCodecType_AppleProRes4444),
@"ProRes 422": @(kCMVideoCodecType_AppleProRes422),
@"ProRes 422HQ": @(kCMVideoCodecType_AppleProRes422HQ),
@"ProRes 422LT": @(kCMVideoCodecType_AppleProRes422LT),
@"ProRes 422Proxy": @(kCMVideoCodecType_AppleProRes422Proxy),
};
}
@end

View file

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="9532" systemVersion="15E65" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<dependencies>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9532"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="CSAppleProResCompressorViewController">
<connections>
<outlet property="view" destination="Hz6-mo-xeY" id="0bl-1N-x8E"/>
</connections>
</customObject>
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
<customView id="Hz6-mo-xeY">
<rect key="frame" x="0.0" y="0.0" width="480" height="272"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<subviews>
<popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Gj9-S2-gEQ">
<rect key="frame" x="44" y="231" width="163" height="22"/>
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" controlSize="small" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="qoG-nO-1YX" id="4Xe-Al-1C9">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
<menu key="menu" id="G3H-Li-kb6">
<items>
<menuItem title="Item 1" state="on" id="qoG-nO-1YX"/>
<menuItem title="Item 2" id="UNL-KT-j2w"/>
<menuItem title="Item 3" id="uUE-z1-Fjp"/>
</items>
</menu>
</popUpButtonCell>
<connections>
<binding destination="0RV-3I-M34" name="content" keyPath="arrangedObjects" id="bUg-0w-Wr7"/>
<binding destination="0RV-3I-M34" name="contentObjects" keyPath="arrangedObjects.value" previousBinding="bUg-0w-Wr7" id="FTU-7B-qzP"/>
<binding destination="0RV-3I-M34" name="contentValues" keyPath="arrangedObjects.key" previousBinding="FTU-7B-qzP" id="JTm-um-h9X"/>
<binding destination="-2" name="selectedObject" keyPath="self.compressorController.selection.proResType" previousBinding="JTm-um-h9X" id="Od3-JX-fy6"/>
</connections>
</popUpButton>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="LuU-bB-Mgf">
<rect key="frame" x="-2" y="236" width="34" height="14"/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Type" id="lhy-vF-975">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
</subviews>
</customView>
<userDefaultsController representsSharedInstance="YES" id="Ryh-C1-fgr"/>
<dictionaryController objectClassName="_NSDictionaryControllerKeyValuePair" id="0RV-3I-M34" userLabel="Compressor Types Controller">
<connections>
<binding destination="-2" name="contentDictionary" keyPath="self.compressorTypes" id="oJS-cd-mws"/>
</connections>
</dictionaryController>
</objects>
</document>

View file

@ -0,0 +1,17 @@
//
// CSCompressorViewControllerProtocol.h
// CocoaSplit
//
// Created by Zakk on 3/28/16.
// Copyright © 2016 Zakk. All rights reserved.
//
#import <Foundation/Foundation.h>
#import <Cocoa/Cocoa.h>
@protocol CSCompressorViewControllerProtocol <NSObject>
@property (strong) NSObjectController *compressorController;
@end

View file

@ -25,7 +25,7 @@
@property (strong) NSString *selectedOutputType;
@property (strong) NSObject<CSStreamServiceProtocol>*streamServiceObject;
@property (strong) NSArray *outputTypes;
@property (weak) IBOutlet NSView *serviceConfigView;
@property (strong) IBOutlet NSView *serviceConfigView;
@property (strong) NSViewController *pluginViewController;
@property (strong) NSMutableDictionary *compressors;
@property (strong) CompressionSettingsPanelController *compressionPanelController;

View file

@ -45,7 +45,7 @@
if (self.outputDestination.compressor_name)
{
id<h264Compressor> oCompressor = self.compressors[self.outputDestination.compressor_name];
id<VideoCompressor> oCompressor = self.compressors[self.outputDestination.compressor_name];
if (!oCompressor)
{
self.outputDestination.compressor_name = nil;
@ -62,6 +62,13 @@
-(void)setupServiceView
{
if (!self.serviceConfigView)
{
return;
}
if (!self.streamServiceObject)
{
if (self.pluginViewController)
@ -124,7 +131,11 @@
- (void)windowDidLoad {
[super windowDidLoad];
[self setupServiceView];
dispatch_async(dispatch_get_main_queue(), ^{
[self setupServiceView];
});
// Implement this method to handle any initialization after your window controller's window has been loaded from its nib file.
}
@ -147,7 +158,7 @@
- (IBAction)openCompressorEdit:(id)sender
{
NSObject <h264Compressor>*editCompressor;
NSObject <VideoCompressor>*editCompressor;
if (!self.outputDestination.compressor_name)
{

View file

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="9060" systemVersion="15D21" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="9532" systemVersion="15E65" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<dependencies>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9060"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9532"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="CSNewOutputWindowController">
@ -25,7 +25,6 @@
<subviews>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="X1Y-aS-wPk">
<rect key="frame" x="18" y="319" width="80" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Output Type" id="mtq-3G-zIa">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@ -34,7 +33,6 @@
</textField>
<popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="49U-P3-kb4">
<rect key="frame" x="101" y="313" width="127" height="22"/>
<animations/>
<popUpButtonCell key="cell" type="push" bezelStyle="rounded" alignment="left" controlSize="small" lineBreakMode="truncatingTail" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" id="o4G-X4-boY">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
@ -54,7 +52,6 @@
</popUpButton>
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="sHW-AN-BMN">
<rect key="frame" x="14" y="13" width="65" height="32"/>
<animations/>
<buttonCell key="cell" type="push" title="Add" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="z3X-JA-gdY">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="system"/>
@ -66,7 +63,6 @@
</button>
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="hIE-y0-gxF">
<rect key="frame" x="79" y="13" width="82" height="32"/>
<animations/>
<buttonCell key="cell" type="push" title="Cancel" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="xgY-lu-8JD">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="system"/>
@ -80,7 +76,6 @@ Gw
</button>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Mcc-vH-D71">
<rect key="frame" x="18" y="346" width="40" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Name" id="rH8-ko-Oa4">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@ -89,7 +84,6 @@ Gw
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="t5O-yx-msN">
<rect key="frame" x="104" y="344" width="121" height="19"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="rb0-vM-a1K">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
@ -101,11 +95,9 @@ Gw
</textField>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="qkq-wQ-53P">
<rect key="frame" x="20" y="61" width="559" height="225"/>
<animations/>
</customView>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="cQ4-po-jZY">
<rect key="frame" x="231" y="346" width="38" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Delay" id="X2V-vD-yFT">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@ -114,7 +106,6 @@ Gw
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="wSQ-MU-931">
<rect key="frame" x="231" y="318" width="78" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Compressor" id="IYE-t9-Wmz">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@ -123,7 +114,6 @@ Gw
</textField>
<popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ATx-Ew-doP">
<rect key="frame" x="312" y="312" width="106" height="22"/>
<animations/>
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" controlSize="small" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="Vea-CP-5AF" id="FRp-3g-z5P">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
@ -143,7 +133,6 @@ Gw
</popUpButton>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="7Ib-9M-LVb">
<rect key="frame" x="315" y="344" width="100" height="19"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="8PL-wV-7SC">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
@ -155,7 +144,6 @@ Gw
</textField>
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="oiD-3K-QjB">
<rect key="frame" x="423" y="313" width="14" height="22"/>
<animations/>
<buttonCell key="cell" type="bevel" bezelStyle="rounded" image="NSActionTemplate" imagePosition="overlaps" alignment="center" controlSize="small" imageScaling="proportionallyDown" inset="2" id="6Ac-00-ICZ">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
@ -166,7 +154,6 @@ Gw
</button>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="0Kx-WA-7Un">
<rect key="frame" x="18" y="294" width="80" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Force Format" id="11G-VZ-1w4">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@ -175,7 +162,6 @@ Gw
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="kIY-tB-Hgd">
<rect key="frame" x="104" y="291" width="51" height="19"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="7qz-on-mHJ">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
@ -186,7 +172,6 @@ Gw
</connections>
</textField>
</subviews>
<animations/>
</view>
<connections>
<outlet property="delegate" destination="-2" id="0bl-1N-AYu"/>

View file

@ -0,0 +1,19 @@
//
// CSx264CompressorViewController.h
// CocoaSplit
//
// Created by Zakk on 3/28/16.
// Copyright © 2016 Zakk. All rights reserved.
//
#import <Cocoa/Cocoa.h>
#import "x264Compressor.h"
#import "CSCompressorViewControllerProtocol.h"
@interface CSx264CompressorViewController : NSViewController <CSCompressorViewControllerProtocol>
@property (strong) x264Compressor *compressor;
@property (strong) NSObjectController *compressorController;
@end

View file

@ -0,0 +1,24 @@
//
// CSx264CompressorViewController.m
// CocoaSplit
//
// Created by Zakk on 3/28/16.
// Copyright © 2016 Zakk. All rights reserved.
//
#import "CSx264CompressorViewController.h"
@interface CSx264CompressorViewController ()
@end
@implementation CSx264CompressorViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do view setup here.
}
@end

View file

@ -0,0 +1,253 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="9532" systemVersion="15E65" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<dependencies>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9532"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="CSx264CompressorViewController">
<connections>
<outlet property="view" destination="Hz6-mo-xeY" id="0bl-1N-x8E"/>
</connections>
</customObject>
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
<customView id="Hz6-mo-xeY">
<rect key="frame" x="0.0" y="0.0" width="533" height="348"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<subviews>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="nKa-2B-bMK">
<rect key="frame" x="-2" y="312" width="42" height="14"/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Preset" id="bAX-4u-pXF">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="IT6-op-Ik2">
<rect key="frame" x="-2" y="287" width="35" height="14"/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Tune" id="cWL-Ak-vsF">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="f3k-aK-Akj">
<rect key="frame" x="-2" y="262" width="44" height="14"/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Profile" id="evU-ym-ukU">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Sel-dT-BWl">
<rect key="frame" x="-2" y="237" width="83" height="14"/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="VBV Maxrate" id="Zzh-oB-vKt">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="zDa-NV-GVB">
<rect key="frame" x="-2" y="212" width="70" height="14"/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="VBV Buffer" id="m9q-E7-c10">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="GsM-Tg-znB">
<rect key="frame" x="-2" y="187" width="101" height="14"/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Keyframe every" id="x1N-pK-BT3">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="m3C-EO-kx9">
<rect key="frame" x="-2" y="162" width="29" height="14"/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="CRF" id="o5v-ge-7Yt">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="9YB-iC-AyD">
<rect key="frame" x="105" y="184" width="46" height="19"/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="GtC-Sn-Rj8">
<numberFormatter key="formatter" formatterBehavior="custom10_4" positiveFormat="#" negativeFormat="#" numberStyle="decimal" allowsFloats="NO" usesGroupingSeparator="NO" paddingCharacter="*" groupingSize="0" minimumIntegerDigits="0" maximumIntegerDigits="309" decimalSeparator="." groupingSeparator="," currencyDecimalSeparator="." plusSign="+" minusSign="-" notANumberSymbol="NaN" perMillSymbol="‰" percentSymbol="%" exponentSymbol="E" positivePrefix="" positiveSuffix="" negativePrefix="-" negativeSuffix="" id="v2R-7J-VHo"/>
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<connections>
<binding destination="-2" name="enabled" keyPath="self.compressorController.selection.active" id="shJ-UV-YtZ">
<dictionary key="options">
<string key="NSValueTransformerName">NSNegateBoolean</string>
</dictionary>
</binding>
<binding destination="-2" name="value" keyPath="self.compressorController.selection.keyframe_interval" id="Nzo-za-9fp"/>
</connections>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="OWE-ei-jNL">
<rect key="frame" x="105" y="159" width="46" height="19"/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="9Pe-YC-FDX">
<numberFormatter key="formatter" formatterBehavior="custom10_4" positiveFormat="#" negativeFormat="#" numberStyle="decimal" allowsFloats="NO" usesGroupingSeparator="NO" paddingCharacter="*" groupingSize="0" minimumIntegerDigits="0" maximumIntegerDigits="309" decimalSeparator="." groupingSeparator="," currencyDecimalSeparator="." plusSign="+" minusSign="-" notANumberSymbol="NaN" perMillSymbol="‰" percentSymbol="%" exponentSymbol="E" positivePrefix="" positiveSuffix="" negativePrefix="-" negativeSuffix="" id="o3U-Gs-Q20"/>
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<connections>
<binding destination="-2" name="enabled" keyPath="self.compressorController.selection.use_cbr" id="LWl-QU-O3y">
<dictionary key="options">
<string key="NSValueTransformerName">NSNegateBoolean</string>
</dictionary>
</binding>
<binding destination="-2" name="value" keyPath="self.compressorController.selection.crf" id="c2k-gh-zpo"/>
</connections>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="SkS-1t-Y4E">
<rect key="frame" x="105" y="209" width="46" height="19"/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="63s-HY-Pwg">
<numberFormatter key="formatter" formatterBehavior="custom10_4" positiveFormat="#" negativeFormat="#" numberStyle="decimal" allowsFloats="NO" usesGroupingSeparator="NO" paddingCharacter="*" groupingSize="0" minimumIntegerDigits="0" maximumIntegerDigits="309" decimalSeparator="." groupingSeparator="," currencyDecimalSeparator="." plusSign="+" minusSign="-" notANumberSymbol="NaN" perMillSymbol="‰" percentSymbol="%" exponentSymbol="E" positivePrefix="" positiveSuffix="" negativePrefix="-" negativeSuffix="" id="rch-MS-UqI"/>
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<connections>
<binding destination="-2" name="value" keyPath="self.compressorController.selection.vbv_buffer" id="Vmt-Ef-XAk"/>
</connections>
</textField>
<textField verticalHuggingPriority="750" ambiguous="YES" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="njD-6E-RqM">
<rect key="frame" x="105" y="234" width="46" height="19"/>
<constraints>
<constraint firstAttribute="width" constant="46" id="cue-D3-ehc"/>
</constraints>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="tjD-NZ-hYO">
<numberFormatter key="formatter" formatterBehavior="custom10_4" positiveFormat="#" negativeFormat="#" allowsFloats="NO" usesGroupingSeparator="NO" paddingCharacter="*" groupingSize="0" minimumIntegerDigits="0" maximumIntegerDigits="42" decimalSeparator="." groupingSeparator="," currencyDecimalSeparator="." plusSign="+" minusSign="-" notANumberSymbol="NaN" perMillSymbol="‰" percentSymbol="%" exponentSymbol="E" positivePrefix="" positiveSuffix="" negativePrefix="-" negativeSuffix="" id="qe6-xs-Rgb"/>
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<connections>
<binding destination="-2" name="value" keyPath="self.compressorController.selection.vbv_maxrate" id="fCC-sT-2cL"/>
</connections>
</textField>
<popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Vte-yo-2IC">
<rect key="frame" x="102" y="257" width="101" height="22"/>
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" controlSize="small" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" id="bhV-zT-vph">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
<menu key="menu" title="OtherViews" id="3AX-UY-VJX">
<items>
<menuItem title="Item 1" state="on" id="QKn-V5-QfV"/>
<menuItem title="Item 2" id="roI-oG-QHF"/>
<menuItem title="Item 3" id="vZh-HH-Zvf"/>
</items>
</menu>
</popUpButtonCell>
<connections>
<binding destination="w29-j1-KJi" name="content" keyPath="arrangedObjects" id="hcE-GV-vaN"/>
<binding destination="-2" name="enabled" keyPath="self.compressorController.selection.active" id="PzQ-xg-qiE">
<dictionary key="options">
<string key="NSValueTransformerName">NSNegateBoolean</string>
</dictionary>
</binding>
<binding destination="-2" name="selectedObject" keyPath="self.compressorController.selection.profile" previousBinding="hcE-GV-vaN" id="QAs-nk-AyT"/>
</connections>
</popUpButton>
<popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="AAu-to-WOU">
<rect key="frame" x="102" y="282" width="101" height="22"/>
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" controlSize="small" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="tPK-AQ-xp0" id="c9N-Vh-XH1">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
<menu key="menu" title="OtherViews" id="sgL-CM-cIq">
<items>
<menuItem title="Item 1" state="on" id="tPK-AQ-xp0"/>
<menuItem title="Item 2" id="8MP-8a-pmP"/>
<menuItem title="Item 3" id="k0i-Y4-fSY"/>
</items>
</menu>
</popUpButtonCell>
<connections>
<binding destination="NEK-SK-A60" name="content" keyPath="arrangedObjects" id="tDP-Ko-Tpc"/>
<binding destination="-2" name="enabled" keyPath="self.compressorController.selection.active" id="qab-FQ-c7Y">
<dictionary key="options">
<string key="NSValueTransformerName">NSNegateBoolean</string>
</dictionary>
</binding>
<binding destination="-2" name="selectedObject" keyPath="self.compressorController.selection.tune" previousBinding="tDP-Ko-Tpc" id="5g3-ht-gNI"/>
</connections>
</popUpButton>
<popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="6TU-Te-Jyv">
<rect key="frame" x="102" y="307" width="101" height="22"/>
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" controlSize="small" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="vX9-Aj-ByB" id="134-Hf-FOS">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
<menu key="menu" title="OtherViews" id="kex-c4-kR8">
<items>
<menuItem title="Item 1" state="on" id="vX9-Aj-ByB"/>
<menuItem title="Item 2" id="4Sc-BG-q8H"/>
<menuItem title="Item 3" id="cWs-kt-jic"/>
</items>
</menu>
</popUpButtonCell>
<connections>
<binding destination="EFf-5k-yA0" name="content" keyPath="arrangedObjects" id="GTb-Kg-qXB"/>
<binding destination="-2" name="enabled" keyPath="self.compressorController.selection.active" id="P7n-7A-eFO">
<dictionary key="options">
<string key="NSValueTransformerName">NSNegateBoolean</string>
</dictionary>
</binding>
<binding destination="-2" name="selectedObject" keyPath="self.compressorController.selection.preset" previousBinding="GTb-Kg-qXB" id="f9k-gg-wvi"/>
</connections>
</popUpButton>
<button fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="fR1-ea-GMl">
<rect key="frame" x="-3" y="137" width="113" height="20"/>
<buttonCell key="cell" type="check" title="Use CBR Mode" bezelStyle="regularSquare" imagePosition="left" controlSize="small" state="on" inset="2" id="9n0-Af-nHS">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="smallSystem"/>
</buttonCell>
<connections>
<binding destination="-2" name="value" keyPath="self.compressorController.selection.use_cbr" id="xYX-7W-eu4"/>
</connections>
</button>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="6gD-nL-fMv">
<rect key="frame" x="344" y="212" width="66" height="14"/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Advanced" id="1y1-7Y-Yn2">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Jmt-SK-Ho8">
<rect key="frame" x="254" y="126" width="246" height="78"/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="MMg-TF-8F4">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<connections>
<binding destination="-2" name="value" keyPath="self.compressorController.selection.advancedSettings" id="8Nn-7p-tpG"/>
</connections>
</textField>
</subviews>
<point key="canvasLocation" x="355.5" y="360"/>
</customView>
<arrayController id="EFf-5k-yA0" userLabel="x264PresetsController">
<connections>
<binding destination="-2" name="contentArray" keyPath="self.compressorController.selection.x264presets" id="rIv-ME-pcQ"/>
</connections>
</arrayController>
<arrayController id="NEK-SK-A60" userLabel="x264TunesController">
<connections>
<binding destination="-2" name="contentArray" keyPath="self.compressorController.selection.x264tunes" id="gOm-SD-xhp"/>
</connections>
</arrayController>
<arrayController id="w29-j1-KJi" userLabel="x264ProfilesController">
<connections>
<binding destination="-2" name="contentArray" keyPath="self.compressorController.selection.x264profiles" id="huG-qX-5FZ"/>
</connections>
</arrayController>
</objects>
</document>

View file

@ -1,14 +1,15 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="9060" systemVersion="15D21" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="9532" systemVersion="15E65" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<dependencies>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9060"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9532"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="CompressionSettingsPanelController">
<connections>
<outlet property="baseObjectController" destination="7Hy-q1-EZG" id="mxe-gH-2Z2"/>
<outlet property="compressorObjectController" destination="TZe-4D-nmN" id="juT-BX-clP"/>
<outlet property="compressorSettingsView" destination="ep3-e5-f7d" id="yxP-kq-3GE"/>
<outlet property="window" destination="QvC-M9-y7g" id="a8h-bj-2SS"/>
</connections>
</customObject>
@ -25,7 +26,6 @@
<subviews>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="DvW-XY-xoh">
<rect key="frame" x="18" y="386" width="34" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Type" id="aQN-xz-V04">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
@ -34,7 +34,6 @@
</textField>
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="CaQ-qD-j6F">
<rect key="frame" x="17" y="14" width="56" height="28"/>
<animations/>
<buttonCell key="cell" type="push" title="Ok" bezelStyle="rounded" alignment="center" controlSize="small" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="e9p-FR-hyA">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
@ -49,7 +48,6 @@
</button>
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="iCf-Vp-KaJ">
<rect key="frame" x="71" y="14" width="79" height="28"/>
<animations/>
<buttonCell key="cell" type="push" title="Delete" bezelStyle="rounded" alignment="center" controlSize="small" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="z42-Rz-RFR">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
@ -69,7 +67,6 @@
</button>
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="EJC-JR-4GB">
<rect key="frame" x="152" y="14" width="80" height="28"/>
<animations/>
<buttonCell key="cell" type="push" title="Cancel" bezelStyle="rounded" alignment="center" controlSize="small" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="EQL-Yv-yZr">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
@ -87,7 +84,6 @@ Gw
</button>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="IHG-Lp-sax">
<rect key="frame" x="20" y="361" width="70" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Resolution" id="hc1-mx-lew">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
@ -96,7 +92,6 @@ Gw
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="jyB-75-sNE">
<rect key="frame" x="96" y="358" width="39" height="19"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="i95-zA-5QN">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
@ -108,7 +103,6 @@ Gw
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="h4u-di-ZHD">
<rect key="frame" x="162" y="358" width="39" height="19"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="LRY-oa-SSg">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
@ -120,7 +114,6 @@ Gw
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="dtW-FE-cv6">
<rect key="frame" x="141" y="361" width="12" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="x" id="Ggl-Pt-mGd">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
@ -129,7 +122,6 @@ Gw
</textField>
<popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="XtC-X5-1ot">
<rect key="frame" x="206" y="356" width="76" height="22"/>
<animations/>
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" controlSize="small" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="VXd-MX-rYJ" id="gwL-xf-AiW">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
@ -153,7 +145,6 @@ Gw
</popUpButton>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="xhw-97-4Bh">
<rect key="frame" x="94" y="386" width="109" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Label" id="UVP-e5-vnT">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@ -165,7 +156,6 @@ Gw
</textField>
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="l5F-oK-OdK">
<rect key="frame" x="230" y="14" width="102" height="28"/>
<animations/>
<buttonCell key="cell" type="push" title="Save to Profile" bezelStyle="rounded" alignment="center" controlSize="small" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="6AF-Q8-ZU0">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
@ -176,7 +166,6 @@ Gw
</button>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="tAo-lz-AE8">
<rect key="frame" x="335" y="20" width="96" height="19"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="4Ll-Zc-aMr">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
@ -186,550 +175,34 @@ Gw
<binding destination="7Hy-q1-EZG" name="value" keyPath="selection.saveProfileName" id="QGZ-WW-i7O"/>
</connections>
</textField>
<tabView fixedFrame="YES" drawsBackground="NO" controlSize="small" initialItem="gyg-eG-YlU" translatesAutoresizingMaskIntoConstraints="NO" id="EJA-Rc-sIZ">
<rect key="frame" x="14" y="56" width="566" height="277"/>
<animations/>
<tabViewItems>
<tabViewItem label="None" identifier="" id="gyg-eG-YlU">
<view key="view" ambiguous="YES" id="lRi-Ns-JYI">
<rect key="frame" x="10" y="25" width="161" height="0.0"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<animations/>
</view>
</tabViewItem>
<tabViewItem label="x264" identifier="1" id="I6I-nX-nIi">
<view key="view" id="AiJ-YZ-cX2">
<rect key="frame" x="10" y="25" width="560" height="252"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="pTs-Nw-pDR">
<rect key="frame" x="15" y="205" width="42" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Preset" id="7Pv-xf-f1B">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="9Lo-yP-Gxg">
<rect key="frame" x="15" y="180" width="35" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Tune" id="Wde-Y8-yjc">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="VfV-tz-qXn">
<rect key="frame" x="15" y="155" width="44" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Profile" id="Y3A-cg-eIq">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="6AI-RQ-Ci6">
<rect key="frame" x="15" y="130" width="83" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="VBV Maxrate" id="mA7-EM-qSX">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Lvr-jo-frR">
<rect key="frame" x="15" y="105" width="70" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="VBV Buffer" id="pf5-D9-DXk">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="9Ii-DO-WXh">
<rect key="frame" x="15" y="80" width="101" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Keyframe every" id="bG3-Uh-UIG">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="2Dp-w8-B2f">
<rect key="frame" x="15" y="55" width="29" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="CRF" id="V2K-4U-Y1S">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="C8M-ea-3sm">
<rect key="frame" x="122" y="77" width="46" height="19"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="8kd-R7-qc4">
<numberFormatter key="formatter" formatterBehavior="custom10_4" positiveFormat="#" negativeFormat="#" numberStyle="decimal" allowsFloats="NO" usesGroupingSeparator="NO" paddingCharacter="*" groupingSize="0" minimumIntegerDigits="0" maximumIntegerDigits="309" decimalSeparator="." groupingSeparator="," currencyDecimalSeparator="." plusSign="+" minusSign="-" notANumberSymbol="NaN" perMillSymbol="‰" percentSymbol="%" exponentSymbol="E" positivePrefix="" positiveSuffix="" negativePrefix="-" negativeSuffix="" id="ATI-2b-lju"/>
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<connections>
<binding destination="TZe-4D-nmN" name="enabled" keyPath="selection.active" id="Uco-xa-mvd">
<dictionary key="options">
<string key="NSValueTransformerName">NSNegateBoolean</string>
</dictionary>
</binding>
<binding destination="TZe-4D-nmN" name="value" keyPath="selection.keyframe_interval" id="xWa-nf-itU">
<dictionary key="options">
<bool key="NSRaisesForNotApplicableKeys" value="NO"/>
</dictionary>
</binding>
</connections>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Mrd-j9-Vau">
<rect key="frame" x="122" y="52" width="46" height="19"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="5ZU-gJ-Hdm">
<numberFormatter key="formatter" formatterBehavior="custom10_4" positiveFormat="#" negativeFormat="#" numberStyle="decimal" allowsFloats="NO" usesGroupingSeparator="NO" paddingCharacter="*" groupingSize="0" minimumIntegerDigits="0" maximumIntegerDigits="309" decimalSeparator="." groupingSeparator="," currencyDecimalSeparator="." plusSign="+" minusSign="-" notANumberSymbol="NaN" perMillSymbol="‰" percentSymbol="%" exponentSymbol="E" positivePrefix="" positiveSuffix="" negativePrefix="-" negativeSuffix="" id="Q6D-l0-e9y"/>
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<connections>
<binding destination="TZe-4D-nmN" name="value" keyPath="selection.crf" id="xEV-u0-L4J">
<dictionary key="options">
<integer key="NSNullPlaceholder" value="0"/>
<bool key="NSRaisesForNotApplicableKeys" value="NO"/>
</dictionary>
</binding>
<binding destination="TZe-4D-nmN" name="enabled" keyPath="selection.use_cbr" id="z4t-yD-nTr">
<dictionary key="options">
<string key="NSValueTransformerName">NSNegateBoolean</string>
</dictionary>
</binding>
</connections>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="hnh-Ur-lnw">
<rect key="frame" x="122" y="102" width="46" height="19"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="U2r-Dm-H5f">
<numberFormatter key="formatter" formatterBehavior="custom10_4" positiveFormat="#" negativeFormat="#" numberStyle="decimal" allowsFloats="NO" usesGroupingSeparator="NO" paddingCharacter="*" groupingSize="0" minimumIntegerDigits="0" maximumIntegerDigits="309" decimalSeparator="." groupingSeparator="," currencyDecimalSeparator="." plusSign="+" minusSign="-" notANumberSymbol="NaN" perMillSymbol="‰" percentSymbol="%" exponentSymbol="E" positivePrefix="" positiveSuffix="" negativePrefix="-" negativeSuffix="" id="WJJ-ij-OI8"/>
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<connections>
<binding destination="TZe-4D-nmN" name="value" keyPath="selection.vbv_buffer" id="oVO-iP-11f">
<dictionary key="options">
<bool key="NSRaisesForNotApplicableKeys" value="NO"/>
</dictionary>
</binding>
</connections>
</textField>
<textField verticalHuggingPriority="750" ambiguous="YES" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="bVx-zD-QAw">
<rect key="frame" x="122" y="127" width="46" height="19"/>
<constraints>
<constraint firstAttribute="width" constant="46" id="xHh-9V-Yds"/>
</constraints>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="ArZ-85-ukI">
<numberFormatter key="formatter" formatterBehavior="custom10_4" positiveFormat="#" negativeFormat="#" allowsFloats="NO" usesGroupingSeparator="NO" paddingCharacter="*" groupingSize="0" minimumIntegerDigits="0" maximumIntegerDigits="42" decimalSeparator="." groupingSeparator="," currencyDecimalSeparator="." plusSign="+" minusSign="-" notANumberSymbol="NaN" perMillSymbol="‰" percentSymbol="%" exponentSymbol="E" positivePrefix="" positiveSuffix="" negativePrefix="-" negativeSuffix="" id="ZAq-EV-heT"/>
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<connections>
<binding destination="TZe-4D-nmN" name="value" keyPath="selection.vbv_maxrate" id="pIp-DY-RbN">
<dictionary key="options">
<bool key="NSRaisesForNotApplicableKeys" value="NO"/>
</dictionary>
</binding>
</connections>
</textField>
<popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="9TP-kQ-Qdg">
<rect key="frame" x="119" y="150" width="101" height="22"/>
<animations/>
<popUpButtonCell key="cell" type="push" bezelStyle="rounded" alignment="left" controlSize="small" lineBreakMode="truncatingTail" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" id="zr8-iK-sWw">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
<menu key="menu" title="OtherViews" id="w20-Ph-Imn">
<items>
<menuItem title="Item 1" id="hhd-hw-xpk"/>
<menuItem title="Item 2" id="tq1-Cf-OmP"/>
<menuItem title="Item 3" id="ttf-nX-Tqt"/>
</items>
</menu>
</popUpButtonCell>
<connections>
<binding destination="8jM-xj-6eG" name="content" keyPath="arrangedObjects" id="grA-Ik-mBv">
<dictionary key="options">
<bool key="NSInsertsNullPlaceholder" value="YES"/>
</dictionary>
</binding>
<binding destination="TZe-4D-nmN" name="enabled" keyPath="selection.active" id="9US-Hw-ffd">
<dictionary key="options">
<string key="NSValueTransformerName">NSNegateBoolean</string>
</dictionary>
</binding>
<binding destination="TZe-4D-nmN" name="selectedObject" keyPath="selection.profile" previousBinding="grA-Ik-mBv" id="mNL-it-lep">
<dictionary key="options">
<bool key="NSRaisesForNotApplicableKeys" value="NO"/>
</dictionary>
</binding>
</connections>
</popUpButton>
<popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="LdZ-gp-IPX">
<rect key="frame" x="119" y="175" width="101" height="22"/>
<animations/>
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" controlSize="small" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="Aay-q2-fLb" id="JEa-Kb-0eq">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
<menu key="menu" title="OtherViews" id="mcc-0A-Zvy">
<items>
<menuItem title="Item 1" state="on" id="Aay-q2-fLb"/>
<menuItem title="Item 2" id="qW4-H1-H7W"/>
<menuItem title="Item 3" id="Pud-DL-KtF"/>
</items>
</menu>
</popUpButtonCell>
<connections>
<binding destination="qsl-yE-r3J" name="content" keyPath="arrangedObjects" id="Wec-QQ-BBv">
<dictionary key="options">
<bool key="NSInsertsNullPlaceholder" value="YES"/>
<string key="NSNullPlaceholder">No Value</string>
</dictionary>
</binding>
<binding destination="TZe-4D-nmN" name="enabled" keyPath="selection.active" id="hKK-o4-jJe">
<dictionary key="options">
<string key="NSValueTransformerName">NSNegateBoolean</string>
</dictionary>
</binding>
<binding destination="TZe-4D-nmN" name="selectedObject" keyPath="selection.tune" previousBinding="Wec-QQ-BBv" id="Tzg-jo-xal">
<dictionary key="options">
<bool key="NSRaisesForNotApplicableKeys" value="NO"/>
</dictionary>
</binding>
</connections>
</popUpButton>
<popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="HRX-AI-IV1">
<rect key="frame" x="119" y="200" width="101" height="22"/>
<animations/>
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" controlSize="small" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="Hh2-0H-T1O" id="u2T-nK-ZHa">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
<menu key="menu" title="OtherViews" id="dqi-gU-5ID">
<items>
<menuItem title="Item 1" state="on" id="Hh2-0H-T1O"/>
<menuItem title="Item 2" id="7rn-KG-HYs"/>
<menuItem title="Item 3" id="9rF-2C-pH7"/>
</items>
</menu>
</popUpButtonCell>
<connections>
<binding destination="R45-ki-5Yf" name="content" keyPath="arrangedObjects" id="762-i8-cu8">
<dictionary key="options">
<bool key="NSInsertsNullPlaceholder" value="YES"/>
<string key="NSNullPlaceholder">No Value</string>
</dictionary>
</binding>
<binding destination="TZe-4D-nmN" name="enabled" keyPath="selection.active" id="tdA-Cc-UR5">
<dictionary key="options">
<string key="NSValueTransformerName">NSNegateBoolean</string>
</dictionary>
</binding>
<binding destination="TZe-4D-nmN" name="selectedObject" keyPath="selection.preset" previousBinding="762-i8-cu8" id="U1T-Nh-n2O">
<dictionary key="options">
<bool key="NSRaisesForNotApplicableKeys" value="NO"/>
</dictionary>
</binding>
</connections>
</popUpButton>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="zcL-cj-J2t">
<rect key="frame" x="174" y="80" width="55" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="seconds" id="66F-gX-HKW">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<button fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="BJS-Ym-qhX">
<rect key="frame" x="14" y="30" width="113" height="20"/>
<animations/>
<buttonCell key="cell" type="check" title="Use CBR Mode" bezelStyle="regularSquare" imagePosition="left" controlSize="small" state="on" inset="2" id="8hA-E7-5Qr">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="smallSystem"/>
</buttonCell>
<connections>
<binding destination="TZe-4D-nmN" name="value" keyPath="selection.use_cbr" id="vy7-fH-obh">
<dictionary key="options">
<bool key="NSRaisesForNotApplicableKeys" value="NO"/>
</dictionary>
</binding>
</connections>
</button>
<button toolTip="Bitrate is set to value of 'VBV Maxrate'. 'VBV Buffer' is ignored and calculated based on fps and Maxrate. CRF is ignored." horizontalHuggingPriority="750" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="7JK-UJ-uXM">
<rect key="frame" x="135" y="30" width="25" height="25"/>
<animations/>
<buttonCell key="cell" type="help" bezelStyle="helpButton" alignment="center" controlSize="small" enabled="NO" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="0yh-VG-kgz">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
</buttonCell>
</button>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="j1E-1Z-43E">
<rect key="frame" x="15" y="230" width="41" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Name" id="h7S-GC-LRO">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="dCi-HU-R17">
<rect key="frame" x="121" y="227" width="96" height="19"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="yAP-a1-yWl">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<connections>
<binding destination="TZe-4D-nmN" name="enabled" keyPath="selection.active" id="iLc-iv-JxS">
<dictionary key="options">
<string key="NSValueTransformerName">NSNegateBoolean</string>
</dictionary>
</binding>
<binding destination="TZe-4D-nmN" name="value" keyPath="selection.name" id="gZ5-Cw-Fuh">
<dictionary key="options">
<bool key="NSRaisesForNotApplicableKeys" value="NO"/>
</dictionary>
</binding>
</connections>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="mkc-Ve-Fm7">
<rect key="frame" x="361" y="105" width="66" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Advanced" id="g2O-hw-6od">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ESX-nq-ivO">
<rect key="frame" x="271" y="19" width="246" height="78"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="JUv-0t-wCP">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<connections>
<binding destination="TZe-4D-nmN" name="value" keyPath="selection.advancedSettings" id="aAI-ZE-YLd">
<dictionary key="options">
<bool key="NSRaisesForNotApplicableKeys" value="NO"/>
</dictionary>
</binding>
</connections>
</textField>
</subviews>
<animations/>
</view>
</tabViewItem>
<tabViewItem label="AppleVTCompressor" identifier="2" id="dyD-Zy-azw">
<view key="view" id="XTV-kv-85u">
<rect key="frame" x="10" y="25" width="560" height="252"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="hMc-cR-pkG">
<rect key="frame" x="15" y="164" width="73" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Avg Bitrate" id="OcA-AP-hoB">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Lc6-5w-yhu">
<rect key="frame" x="15" y="139" width="75" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Max Bitrate" id="NU6-XV-diA">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="7U9-Mo-vul">
<rect key="frame" x="15" y="114" width="101" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Keyframe every" id="pJr-bc-og0">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="zgw-Jj-MGG">
<rect key="frame" x="15" y="89" width="44" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Profile" id="hMW-qq-kZx">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="hoO-Kk-D8d">
<rect key="frame" x="122" y="111" width="46" height="19"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="1cM-DD-1Ll">
<numberFormatter key="formatter" formatterBehavior="custom10_4" positiveFormat="#" negativeFormat="#" numberStyle="decimal" allowsFloats="NO" usesGroupingSeparator="NO" paddingCharacter="*" groupingSize="0" minimumIntegerDigits="0" maximumIntegerDigits="309" decimalSeparator="." groupingSeparator="," currencyDecimalSeparator="." plusSign="+" minusSign="-" notANumberSymbol="NaN" perMillSymbol="‰" percentSymbol="%" exponentSymbol="E" positivePrefix="" positiveSuffix="" negativePrefix="-" negativeSuffix="" id="yyS-tE-xrm"/>
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<connections>
<binding destination="TZe-4D-nmN" name="value" keyPath="selection.keyframe_interval" id="e1j-VP-q6W">
<dictionary key="options">
<bool key="NSRaisesForNotApplicableKeys" value="NO"/>
</dictionary>
</binding>
</connections>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="nRC-Eo-rgj">
<rect key="frame" x="122" y="136" width="46" height="19"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="vZZ-4U-Tuf">
<numberFormatter key="formatter" formatterBehavior="custom10_4" positiveFormat="#" negativeFormat="#" numberStyle="decimal" allowsFloats="NO" usesGroupingSeparator="NO" paddingCharacter="*" groupingSize="0" minimumIntegerDigits="0" maximumIntegerDigits="309" decimalSeparator="." groupingSeparator="," currencyDecimalSeparator="." plusSign="+" minusSign="-" notANumberSymbol="NaN" perMillSymbol="‰" percentSymbol="%" exponentSymbol="E" positivePrefix="" positiveSuffix="" negativePrefix="-" negativeSuffix="" id="zhy-bK-1KE"/>
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<connections>
<binding destination="TZe-4D-nmN" name="value" keyPath="selection.max_bitrate" id="Tdz-EZ-iRa">
<dictionary key="options">
<bool key="NSRaisesForNotApplicableKeys" value="NO"/>
</dictionary>
</binding>
</connections>
</textField>
<textField verticalHuggingPriority="750" ambiguous="YES" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="HSo-TK-ey0">
<rect key="frame" x="122" y="161" width="46" height="19"/>
<constraints>
<constraint firstAttribute="width" constant="46" id="Ame-MS-sCd"/>
</constraints>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="dks-7G-28O">
<numberFormatter key="formatter" formatterBehavior="custom10_4" positiveFormat="#" negativeFormat="#" allowsFloats="NO" usesGroupingSeparator="NO" paddingCharacter="*" groupingSize="0" minimumIntegerDigits="0" maximumIntegerDigits="42" decimalSeparator="." groupingSeparator="," currencyDecimalSeparator="." plusSign="+" minusSign="-" notANumberSymbol="NaN" perMillSymbol="‰" percentSymbol="%" exponentSymbol="E" positivePrefix="" positiveSuffix="" negativePrefix="-" negativeSuffix="" id="GYq-M9-Dao"/>
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<connections>
<binding destination="TZe-4D-nmN" name="value" keyPath="selection.average_bitrate" id="5hC-XX-4ol">
<dictionary key="options">
<bool key="NSRaisesForNotApplicableKeys" value="NO"/>
</dictionary>
</binding>
</connections>
</textField>
<popUpButton verticalHuggingPriority="750" ambiguous="YES" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="nAv-AT-Pjr">
<rect key="frame" x="119" y="84" width="101" height="22"/>
<constraints>
<constraint firstAttribute="width" constant="95" id="zj5-vk-3yq"/>
</constraints>
<animations/>
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" controlSize="small" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="Fwt-rU-p9C" id="9su-cy-gN6">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
<menu key="menu" title="OtherViews" id="85F-4D-3Dl">
<items>
<menuItem title="Item 1" state="on" id="Fwt-rU-p9C"/>
<menuItem title="Item 2" id="liN-Wp-m2N"/>
<menuItem title="Item 3" id="xGW-w0-CQf"/>
</items>
</menu>
</popUpButtonCell>
<connections>
<binding destination="Fq1-6t-ESc" name="content" keyPath="arrangedObjects" id="3xC-wD-R6H"/>
<binding destination="TZe-4D-nmN" name="selectedObject" keyPath="selection.profile" previousBinding="3xC-wD-R6H" id="6a2-d2-Thf">
<dictionary key="options">
<bool key="NSRaisesForNotApplicableKeys" value="NO"/>
</dictionary>
</binding>
</connections>
</popUpButton>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="72H-Xv-84L">
<rect key="frame" x="169" y="114" width="55" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="seconds" id="B1s-Nl-eIo">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<button fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="oXO-2P-jSr">
<rect key="frame" x="14" y="64" width="113" height="20"/>
<animations/>
<buttonCell key="cell" type="check" title="Use CBR Mode" bezelStyle="regularSquare" imagePosition="left" controlSize="small" state="on" inset="2" id="Fgq-LX-zJa">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="smallSystem"/>
</buttonCell>
<connections>
<binding destination="TZe-4D-nmN" name="value" keyPath="selection.use_cbr" id="nEe-20-Ok6">
<dictionary key="options">
<bool key="NSRaisesForNotApplicableKeys" value="NO"/>
</dictionary>
</binding>
</connections>
</button>
<button toolTip="Bitrate is set to 'Avg Bitrate'. 'Max Bitrate' is ignored." horizontalHuggingPriority="750" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ze1-e4-lAf">
<rect key="frame" x="133" y="61" width="25" height="25"/>
<animations/>
<buttonCell key="cell" type="help" bezelStyle="helpButton" alignment="center" controlSize="small" enabled="NO" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="v14-Mm-4Kg">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
</buttonCell>
</button>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="OOx-9o-RVx">
<rect key="frame" x="15" y="189" width="41" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Name" id="gYB-Cm-wn3">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="orx-IN-DtI">
<rect key="frame" x="121" y="186" width="96" height="19"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="Os9-Ps-RyE">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<connections>
<binding destination="TZe-4D-nmN" name="enabled" keyPath="selection.active" id="hPm-UC-RCr">
<dictionary key="options">
<string key="NSValueTransformerName">NSNegateBoolean</string>
</dictionary>
</binding>
<binding destination="TZe-4D-nmN" name="value" keyPath="selection.name" id="gLq-F6-G8b">
<dictionary key="options">
<bool key="NSRaisesForNotApplicableKeys" value="NO"/>
</dictionary>
</binding>
</connections>
</textField>
</subviews>
<animations/>
</view>
</tabViewItem>
</tabViewItems>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ep3-e5-f7d">
<rect key="frame" x="20" y="47" width="540" height="279"/>
</customView>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="A6J-tk-goi">
<rect key="frame" x="96" y="334" width="183" height="19"/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="P6o-v7-OgE">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<connections>
<binding destination="TZe-4D-nmN" name="selectedLabel" keyPath="selection.compressorType" id="wWu-mV-PFx"/>
<binding destination="TZe-4D-nmN" name="enabled" keyPath="selection.active" id="gGQ-5o-9tx">
<dictionary key="options">
<string key="NSValueTransformerName">NSNegateBoolean</string>
</dictionary>
</binding>
<binding destination="TZe-4D-nmN" name="value" keyPath="selection.name" id="ClB-V6-md4"/>
</connections>
</tabView>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="0AR-sV-zha">
<rect key="frame" x="20" y="337" width="37" height="14"/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Name" id="6Lz-Jx-YD7">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
</subviews>
<animations/>
</view>
<connections>
<outlet property="delegate" destination="-2" id="eVt-IZ-DN1"/>

View file

@ -7,13 +7,18 @@
//
#import <Cocoa/Cocoa.h>
#import "h264Compressor.h"
#import "VideoCompressor.h"
#import "CSCompressorViewControllerProtocol.h"
@interface CompressionSettingsPanelController : NSWindowController
@property (weak) IBOutlet NSView *compressorSettingsView;
@property (strong) NSViewController *compressorViewController;
@property (strong) IBOutlet NSObjectController *compressorObjectController;
@property (strong) id <h264Compressor> compressor;
@property (strong) id <VideoCompressor> compressor;
@property (strong) NSArray *compressorTypes;
@property (strong) NSString *selectedCompressorType;
@property (strong) NSString *saveProfileName;

View file

@ -18,7 +18,7 @@
{
if (self = [self initWithWindowNibName:@"CompressionSettingsPanel"])
{
self.compressorTypes = @[@"x264", @"AppleVTCompressor", @"None"];
self.compressorTypes = @[@"x264", @"AppleVTCompressor", @"AppleProResCompressor", @"None"];
}
return self;
@ -26,11 +26,43 @@
- (void)windowDidLoad {
[super windowDidLoad];
[self setupCompressorView];
// Implement this method to handle any initialization after your window controller's window has been loaded from its nib file.
}
-(void)setupCompressorView
{
if (!self.compressorSettingsView)
{
return;
}
if (!self.compressor)
{
if (self.compressorViewController)
{
[self.compressorViewController.view removeFromSuperview];
self.compressorViewController = nil;
}
} else {
id<CSCompressorViewControllerProtocol> compressorConfigView = [self.compressor getConfigurationView];
if (compressorConfigView)
{
compressorConfigView.compressorController = self.compressorObjectController;
[self.compressorSettingsView addSubview:((NSViewController *)compressorConfigView).view];
[((NSViewController *)compressorConfigView).view setFrameOrigin:NSMakePoint(0, self.compressorSettingsView.frame.size.height - ((NSViewController *)compressorConfigView).view.frame.size.height)];
self.compressorViewController = (NSViewController *)compressorConfigView;
}
}
}
-(void)saveCompressPanel
{
[self.compressorObjectController commitEditing];

View file

@ -8,7 +8,7 @@
#import <Foundation/Foundation.h>
#import <AppKit/AppKit.h>
#import "h264Compressor.h"
#import "VideoCompressor.h"
#import "CaptureController.h"
@ -53,7 +53,7 @@
@property (assign) int dropped_frame_count;
@property (assign) double output_framerate;
@property (assign) double output_bitrate;
@property (strong) NSObject <h264Compressor> *compressor;
@property (strong) NSObject <VideoCompressor> *compressor;
@property (strong) NSString *compressor_name;

View file

@ -232,7 +232,7 @@
-(void)compressorDeleted:(NSNotification *)notification
{
id <h264Compressor> compressor = notification.object;
id <VideoCompressor> compressor = notification.object;
if (self.compressor_name && [self.compressor_name isEqualToString:compressor.name])
{
@ -248,7 +248,7 @@
NSDictionary *infoDict = notification.object;
NSString *oldName = infoDict[@"oldName"];
id <h264Compressor> compressor = infoDict[@"compressor"];
id <VideoCompressor> compressor = infoDict[@"compressor"];
if (self.compressor_name && [self.compressor_name isEqualToString:oldName])
{
@ -281,7 +281,7 @@
}
*/
newout.video_codec_id = self.compressor.codec_id;
newout.framerate = self.settingsController.captureFPS;
newout.stream_output = [self.destination stringByStandardizingPath];
newout.stream_format = self.output_format;
@ -308,7 +308,7 @@
return;
}
NSObject <h264Compressor> *old_compressor = self.compressor;
NSObject <VideoCompressor> *old_compressor = self.compressor;
if (self.compressor_name)
{

View file

@ -32,7 +32,7 @@
_uuidMap = [NSMutableDictionary dictionary];
_animationQueue = dispatch_queue_create("CSAnimationQueue", NULL);
_containedLayouts = [NSMutableArray array];
_containedLayouts = [[NSMutableArray alloc] init];
_noSceneTransactions = NO;
self.rootLayer = [self newRootLayer];
@ -359,7 +359,7 @@
if ([aDecoder containsValueForKey:@"containedLayouts"])
{
self.containedLayouts = [aDecoder decodeObjectForKey:@"containedLayouts"];
self.containedLayouts = [[aDecoder decodeObjectForKey:@"containedLayouts"] mutableCopy];
//set live/staging status for each layout
}
@ -546,20 +546,21 @@
}
//Only run animations that aren't already in the layout
NSMutableArray *runAnimations = [NSMutableArray array];
NSMutableArray *runAnimations = [[NSMutableArray alloc] init];
for (CSAnimationItem *anim in layout.animationList)
{
if (![self animationForUUID:anim.uuid] && anim.onLive)
{
[runAnimations addObject:anim.uuid];
}
}
[self.animationList removeAllObjects];
//If an input exists in both lists, only remove it if the new one is different/changed
NSMutableArray *rList = [NSMutableArray array];
NSMutableArray *rList = [[NSMutableArray alloc] init];
for (InputSource *src in self.sourceList)
{
InputSource *nSrc = [layout inputForUUID:src.uuid];

View file

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="9060" systemVersion="15D21" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="9532" systemVersion="15E65" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<dependencies>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9060"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9532"/>
<capability name="Alignment constraints to the first baseline" minToolsVersion="6.0"/>
<capability name="Alignment constraints with different attributes" minToolsVersion="5.1"/>
</dependencies>
@ -323,15 +323,12 @@
<customView fixedFrame="YES" id="4Vq-5w-Nt7" customClass="PreviewView">
<rect key="frame" x="0.0" y="0.0" width="439" height="277"/>
<autoresizingMask key="autoresizingMask"/>
<animations/>
</customView>
<customView fixedFrame="YES" id="79f-hz-x80" customClass="PreviewView">
<rect key="frame" x="440" y="0.0" width="434" height="277"/>
<autoresizingMask key="autoresizingMask"/>
<animations/>
</customView>
</subviews>
<animations/>
<holdingPriorities>
<real value="250"/>
<real value="250"/>
@ -344,7 +341,6 @@
<constraint firstItem="EvN-9x-8Di" firstAttribute="top" secondItem="2411" secondAttribute="top" constant="196" id="fVW-ll-H60"/>
<constraint firstAttribute="bottom" secondItem="EvN-9x-8Di" secondAttribute="bottom" constant="157" id="scr-pu-Ecw"/>
</constraints>
<animations/>
</view>
</subviews>
<constraints>
@ -353,7 +349,6 @@
<constraint firstItem="2411" firstAttribute="top" secondItem="2369" secondAttribute="top" constant="-189" id="Wld-8d-sRz"/>
<constraint firstItem="2411" firstAttribute="leading" secondItem="2369" secondAttribute="leading" constant="-33" id="x6e-sH-Szi"/>
</constraints>
<animations/>
</customView>
<customView id="2370">
<rect key="frame" x="0.0" y="288" width="886" height="409"/>
@ -364,7 +359,6 @@
<constraints>
<constraint firstAttribute="width" constant="279" id="Gh3-RP-Kb9"/>
</constraints>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Label" id="8gh-9A-nvZ">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
@ -379,7 +373,6 @@
<constraints>
<constraint firstAttribute="width" constant="70" id="v52-Ns-lA5"/>
</constraints>
<animations/>
<buttonCell key="cell" type="push" title="Stream!" alternateTitle="Stop!" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="598">
<behavior key="behavior" pushIn="YES" changeContents="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
@ -390,7 +383,6 @@
</button>
<tabView initialItem="3287" translatesAutoresizingMaskIntoConstraints="NO" id="3286">
<rect key="frame" x="13" y="35" width="860" height="360"/>
<animations/>
<font key="font" metaFont="system"/>
<tabViewItems>
<tabViewItem label="Video" identifier="1" id="3287">
@ -406,7 +398,6 @@
<constraints>
<constraint firstAttribute="width" constant="37" id="xEB-k3-LPy"/>
</constraints>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="jdW-O6-xJB">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
@ -421,7 +412,6 @@
<constraints>
<constraint firstAttribute="height" constant="17" id="9QE-Uw-naT"/>
</constraints>
<animations/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Transition" id="EEs-Ap-dp5">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@ -433,7 +423,6 @@
<constraints>
<constraint firstAttribute="width" constant="70" id="9um-FF-WzG"/>
</constraints>
<animations/>
<buttonCell key="cell" type="push" title="Configure" bezelStyle="rounded" alignment="center" controlSize="small" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="2mF-In-QLx">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
@ -449,7 +438,6 @@
</button>
<popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="PXK-Bm-Fua">
<rect key="frame" x="73" y="74" width="101" height="22"/>
<animations/>
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" controlSize="small" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="Svc-mp-puA" id="Uqx-ai-jSo">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
@ -482,7 +470,6 @@
</popUpButton>
<popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="OgS-Yl-xu8">
<rect key="frame" x="73" y="45" width="101" height="22"/>
<animations/>
<popUpButtonCell key="cell" type="push" bezelStyle="rounded" alignment="left" controlSize="small" lineBreakMode="truncatingTail" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" id="U9w-Ld-Wpk">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
@ -506,7 +493,6 @@
</popUpButton>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="eJN-jc-tix">
<rect key="frame" x="18" y="22" width="49" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Duration" id="Dcv-Mu-4bD">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@ -518,7 +504,6 @@
<constraints>
<constraint firstAttribute="width" constant="25" id="xs6-1R-nZI"/>
</constraints>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Type" id="KS2-ym-OXG">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@ -530,14 +515,12 @@
<constraints>
<constraint firstAttribute="height" constant="1" id="MHy-0o-BGB"/>
</constraints>
<animations/>
<color key="borderColor" white="0.0" alpha="0.41999999999999998" colorSpace="calibratedWhite"/>
<color key="fillColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
<font key="titleFont" metaFont="system"/>
</box>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="2d4-aU-LWX">
<rect key="frame" x="18" y="50" width="52" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Direction" id="AZy-vu-UC4">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@ -553,7 +536,6 @@
</textField>
<button translatesAutoresizingMaskIntoConstraints="NO" id="u3O-a8-VKl">
<rect key="frame" x="118" y="19" width="61" height="20"/>
<animations/>
<buttonCell key="cell" type="check" title="Layout" bezelStyle="regularSquare" imagePosition="left" controlSize="small" state="on" inset="2" id="Rfa-au-neY">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="smallSystem"/>
@ -594,14 +576,12 @@
<constraint firstItem="OgS-Yl-xu8" firstAttribute="leading" secondItem="NfO-T5-aJZ" secondAttribute="leading" id="tFh-0u-LCl"/>
<constraint firstItem="wwd-Bm-G7P" firstAttribute="leading" secondItem="6mG-LN-iRu" secondAttribute="leading" constant="20" symbolic="YES" id="wAc-ib-RGL"/>
</constraints>
<animations/>
</customView>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="CRm-nK-baf">
<rect key="frame" x="12" y="287" width="95" height="28"/>
<constraints>
<constraint firstAttribute="width" constant="85" id="c6K-yl-ECN"/>
</constraints>
<animations/>
<buttonCell key="cell" type="push" title="New Source" bezelStyle="rounded" alignment="center" controlSize="small" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="NS1-x6-L1C">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
@ -616,7 +596,6 @@
</button>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="84m-c0-kOj">
<rect key="frame" x="105" y="287" width="85" height="28"/>
<animations/>
<buttonCell key="cell" type="push" title="New layout" bezelStyle="rounded" alignment="center" controlSize="small" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="qt9-wK-gDI">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
@ -630,7 +609,6 @@
<constraints>
<constraint firstAttribute="width" constant="116" id="nFC-YW-KvA"/>
</constraints>
<animations/>
<buttonCell key="cell" type="push" title="Go Live" bezelStyle="rounded" alignment="center" controlSize="small" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="tpA-PI-4UQ">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
@ -654,7 +632,6 @@
<collectionView selectable="YES" id="MEg-xk-wZF">
<rect key="frame" x="0.0" y="0.0" width="625" height="266"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<animations/>
<color key="primaryBackgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
<connections>
<binding destination="816" name="content" keyPath="self.sourceLayouts" id="b0p-yC-YlM"/>
@ -663,18 +640,14 @@
</connections>
</collectionView>
</subviews>
<animations/>
</clipView>
<animations/>
<scroller key="horizontalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="YES" id="ASK-SC-h3C">
<rect key="frame" x="1" y="144" width="233" height="15"/>
<autoresizingMask key="autoresizingMask"/>
<animations/>
</scroller>
<scroller key="verticalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" doubleValue="1" horizontal="NO" id="gMp-8O-OKM">
<rect key="frame" x="234" y="1" width="15" height="143"/>
<autoresizingMask key="autoresizingMask"/>
<animations/>
</scroller>
<connections>
<outlet property="menu" destination="Wwr-bS-1EX" id="3mz-6W-mQM"/>
@ -682,7 +655,6 @@
</scrollView>
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="rzE-ZM-Eom">
<rect key="frame" x="684" y="233" width="126" height="28"/>
<animations/>
<buttonCell key="cell" type="push" title="Swap" bezelStyle="rounded" alignment="center" controlSize="small" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="XZO-uo-5LB">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
@ -710,7 +682,6 @@
<constraint firstItem="6mG-LN-iRu" firstAttribute="leading" secondItem="b93-ds-aBr" secondAttribute="trailing" constant="8" symbolic="YES" id="q2M-CJ-2w9"/>
<constraint firstAttribute="bottom" secondItem="6mG-LN-iRu" secondAttribute="bottom" constant="77" id="way-tT-oOH"/>
</constraints>
<animations/>
</view>
</tabViewItem>
<tabViewItem label="Audio" identifier="" id="nO2-6S-J3v">
@ -720,7 +691,6 @@
<subviews>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="8z2-2h-blY">
<rect key="frame" x="15" y="176" width="84" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Stream Volume" id="Fic-Vj-b0r">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@ -729,7 +699,6 @@
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="7eO-0V-OAu">
<rect key="frame" x="14" y="135" width="87" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Preview volume" id="R8F-rq-pKt">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@ -738,7 +707,6 @@
</textField>
<slider verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="mEf-SF-t25">
<rect key="frame" x="16" y="111" width="92" height="17"/>
<animations/>
<sliderCell key="cell" controlSize="small" continuous="YES" state="on" alignment="left" maxValue="1" doubleValue="0.5" tickMarkPosition="above" sliderType="linear" id="qhJ-M4-Rv1"/>
<connections>
<binding destination="816" name="value" keyPath="self.multiAudioEngine.previewMixer.volume" id="JG2-6Y-yrP"/>
@ -746,7 +714,6 @@
</slider>
<slider verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="blc-sB-dVi">
<rect key="frame" x="17" y="156" width="92" height="17"/>
<animations/>
<sliderCell key="cell" controlSize="small" continuous="YES" alignment="left" maxValue="1" doubleValue="1" tickMarkPosition="above" sliderType="linear" id="fuA-ef-yBA"/>
<connections>
<binding destination="816" name="value" keyPath="self.multiAudioEngine.encodeMixer.volume" id="Lmz-wA-ZZd"/>
@ -757,7 +724,6 @@
<constraints>
<constraint firstAttribute="width" constant="57" id="G9E-RB-sPe"/>
</constraints>
<animations/>
<buttonCell key="cell" type="check" title="Muted" bezelStyle="regularSquare" imagePosition="left" controlSize="small" state="on" inset="2" id="o7r-bQ-Qqy">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="smallSystem"/>
@ -772,7 +738,6 @@
<constraint firstAttribute="height" constant="14" id="Frx-1d-RFB"/>
<constraint firstAttribute="width" constant="57" id="xYm-Er-5Ig"/>
</constraints>
<animations/>
<buttonCell key="cell" type="check" title="Muted" bezelStyle="regularSquare" imagePosition="left" controlSize="small" state="on" inset="2" id="i7y-Rf-ynJ">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="smallSystem"/>
@ -783,7 +748,6 @@
</button>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="eC5-ZX-z3f">
<rect key="frame" x="14" y="249" width="65" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Samplerate" id="dk0-JE-bAT">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@ -792,7 +756,6 @@
</textField>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="GCy-xm-MVO">
<rect key="frame" x="87" y="269" width="45" height="19"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="0nl-IF-HNa">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
@ -811,7 +774,6 @@
</textField>
<popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="1qG-l7-UUY">
<rect key="frame" x="84" y="244" width="101" height="22"/>
<animations/>
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" controlSize="small" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="TT4-Wl-D3E" id="uza-iq-Ej1">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
@ -838,7 +800,6 @@
</popUpButton>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="clM-yO-jZl">
<rect key="frame" x="137" y="271" width="62" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="kbits/sec" id="LNI-bR-1os">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
@ -847,7 +808,6 @@
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Ncg-Wx-BAa">
<rect key="frame" x="14" y="227" width="63" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Audio Shift" id="cHe-hY-Ujl">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@ -856,7 +816,6 @@
</textField>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="0LS-he-41I">
<rect key="frame" x="87" y="225" width="45" height="19"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="FkJ-Kb-aYH">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
@ -868,7 +827,6 @@
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ve7-71-NBJ">
<rect key="frame" x="139" y="227" width="49" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="seconds" id="saE-hK-v10">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@ -880,7 +838,6 @@
<constraints>
<constraint firstAttribute="width" constant="36" id="oF6-WM-3Nl"/>
</constraints>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Bitrate" id="hXD-qo-7FX">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@ -889,7 +846,6 @@
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="n1b-v9-0FC">
<rect key="frame" x="14" y="90" width="80" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Output Device" id="Tci-6R-edk">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@ -898,7 +854,6 @@
</textField>
<popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="pZ4-nu-zTv">
<rect key="frame" x="14" y="61" width="101" height="22"/>
<animations/>
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" controlSize="small" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="D6P-GH-mjq" id="DsM-J0-Z1J">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
@ -933,7 +888,6 @@
<collectionView maxNumberOfRows="1" id="pHn-OI-FOF">
<rect key="frame" x="0.0" y="0.0" width="248" height="158"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<animations/>
<color key="primaryBackgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
<connections>
<binding destination="FkZ-gD-QUB" name="content" keyPath="arrangedObjects" id="12z-Qn-fYH"/>
@ -941,18 +895,14 @@
</connections>
</collectionView>
</subviews>
<animations/>
</clipView>
<animations/>
<scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="YES" id="53x-1T-SIJ">
<rect key="frame" x="1" y="144" width="233" height="15"/>
<autoresizingMask key="autoresizingMask"/>
<animations/>
</scroller>
<scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" doubleValue="1" horizontal="NO" id="eV0-IY-hvO">
<rect key="frame" x="234" y="1" width="15" height="143"/>
<autoresizingMask key="autoresizingMask"/>
<animations/>
</scroller>
</scrollView>
</subviews>
@ -1005,7 +955,6 @@
<constraint firstItem="1qG-l7-UUY" firstAttribute="leading" secondItem="GCy-xm-MVO" secondAttribute="leading" id="ziN-C8-UrP"/>
<constraint firstItem="M5T-fS-508" firstAttribute="leading" secondItem="uCc-DQ-QYH" secondAttribute="leading" constant="17" id="zq9-UL-7aX"/>
</constraints>
<animations/>
</view>
</tabViewItem>
<tabViewItem label="Outputs" identifier="2" id="3288">
@ -1015,7 +964,6 @@
<subviews>
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="cb9-2E-pZ7">
<rect key="frame" x="1" y="287" width="63" height="28"/>
<animations/>
<buttonCell key="cell" type="push" title="New" bezelStyle="rounded" alignment="center" controlSize="small" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="kd9-jQ-cgF">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
@ -1029,7 +977,6 @@
<constraints>
<constraint firstAttribute="width" constant="69" id="ABg-xE-OPT"/>
</constraints>
<animations/>
<buttonCell key="cell" type="push" title="Remove" bezelStyle="rounded" alignment="center" controlSize="small" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="jbc-Ox-5BI">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
@ -1047,7 +994,6 @@
<tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="none" columnReordering="NO" multipleSelection="NO" emptySelection="NO" autosaveColumns="NO" typeSelect="NO" headerView="2261" id="2213">
<rect key="frame" x="0.0" y="0.0" width="835" height="253"/>
<autoresizingMask key="autoresizingMask"/>
<animations/>
<size key="intercellSpacing" width="3" height="2"/>
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
<color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
@ -1228,23 +1174,18 @@
</connections>
</tableView>
</subviews>
<animations/>
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
</clipView>
<animations/>
<scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="YES" id="2214">
<autoresizingMask key="autoresizingMask"/>
<animations/>
</scroller>
<scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="NO" id="2216">
<rect key="frame" x="830" y="23" width="15" height="0.0"/>
<autoresizingMask key="autoresizingMask"/>
<animations/>
</scroller>
<tableHeaderView key="headerView" id="2261">
<rect key="frame" x="0.0" y="0.0" width="835" height="23"/>
<autoresizingMask key="autoresizingMask"/>
<animations/>
</tableHeaderView>
</scrollView>
</subviews>
@ -1253,7 +1194,6 @@
<constraint firstItem="2212" firstAttribute="leading" secondItem="3289" secondAttribute="leading" constant="-3" id="69Q-DG-ZT4"/>
<constraint firstAttribute="trailing" secondItem="2212" secondAttribute="trailing" constant="-3" id="zp6-4k-2l9"/>
</constraints>
<animations/>
</view>
</tabViewItem>
<tabViewItem label="Animate" identifier="" id="0YY-u3-82e">
@ -1269,7 +1209,6 @@
<constraints>
<constraint firstAttribute="width" constant="70" id="der-Yn-Th6"/>
</constraints>
<animations/>
<buttonCell key="cell" type="push" title="Add" bezelStyle="rounded" alignment="center" controlSize="small" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="3Td-xt-1lJ">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
@ -1283,7 +1222,6 @@
<constraints>
<constraint firstAttribute="width" constant="60" id="XYx-wi-a1k"/>
</constraints>
<animations/>
<buttonCell key="cell" type="push" title="Animate" bezelStyle="rounded" alignment="center" controlSize="small" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="4Mc-CH-UUi">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
@ -1298,7 +1236,6 @@
</button>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="9kG-7c-4JT">
<rect key="frame" x="18" y="300" width="45" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Staging" id="BeZ-O6-XB3">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@ -1307,7 +1244,6 @@
</textField>
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="LTd-v8-sVD">
<rect key="frame" x="136" y="236" width="80" height="28"/>
<animations/>
<buttonCell key="cell" type="push" title="Delete" bezelStyle="rounded" alignment="center" controlSize="small" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="h93-32-Yxb">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
@ -1329,7 +1265,6 @@
<tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" columnSelection="YES" multipleSelection="NO" autosaveColumns="NO" rowHeight="22" viewBased="YES" id="4PG-g3-ePP">
<rect key="frame" x="0.0" y="0.0" width="238" height="0.0"/>
<autoresizingMask key="autoresizingMask"/>
<animations/>
<size key="intercellSpacing" width="3" height="2"/>
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
<color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
@ -1353,7 +1288,6 @@
<subviews>
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="Aez-Zd-F7F">
<rect key="frame" x="1" y="1" width="116" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="7Kx-iK-MM2">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
@ -1369,7 +1303,6 @@
<constraint firstItem="Aez-Zd-F7F" firstAttribute="leading" secondItem="8xZ-Xl-gto" secondAttribute="leading" constant="3" id="jHH-VT-KsW"/>
<constraint firstAttribute="trailing" secondItem="Aez-Zd-F7F" secondAttribute="trailing" constant="1" id="pGq-zt-EMh"/>
</constraints>
<animations/>
<connections>
<outlet property="textField" destination="Aez-Zd-F7F" id="OeD-n3-NZM"/>
</connections>
@ -1395,7 +1328,6 @@
<subviews>
<popUpButton translatesAutoresizingMaskIntoConstraints="NO" id="bHZ-AM-hIc">
<rect key="frame" x="0.0" y="5" width="99" height="18"/>
<animations/>
<popUpButtonCell key="cell" type="check" bezelStyle="regularSquare" imagePosition="left" alignment="left" controlSize="small" lineBreakMode="truncatingTail" inset="2" id="qaC-da-nMr">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="smallSystem"/>
@ -1419,7 +1351,6 @@
<constraint firstItem="bHZ-AM-hIc" firstAttribute="top" secondItem="M8o-XP-qs3" secondAttribute="top" constant="3" id="lWa-8a-KKa"/>
<constraint firstAttribute="trailing" secondItem="bHZ-AM-hIc" secondAttribute="trailing" constant="19" id="m7g-mk-rff"/>
</constraints>
<animations/>
</tableCellView>
<tableCellView identifier="InputParamView" id="qsn-PR-XYt">
<rect key="frame" x="120" y="26" width="116" height="24"/>
@ -1430,7 +1361,6 @@
<constraints>
<constraint firstAttribute="height" constant="18" id="4qj-r9-MgA"/>
</constraints>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="77L-6K-SLe">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
@ -1446,7 +1376,6 @@
<constraint firstItem="RoY-BQ-Evq" firstAttribute="centerX" secondItem="qsn-PR-XYt" secondAttribute="centerX" id="Sls-vH-iDZ"/>
<constraint firstItem="RoY-BQ-Evq" firstAttribute="top" secondItem="qsn-PR-XYt" secondAttribute="top" constant="3" id="mx8-5H-07E"/>
</constraints>
<animations/>
</tableCellView>
<tableCellView identifier="InputBoolView" id="4b6-Et-Xqe">
<rect key="frame" x="120" y="52" width="116" height="17"/>
@ -1454,7 +1383,6 @@
<subviews>
<button translatesAutoresizingMaskIntoConstraints="NO" id="a5i-Xe-jtT">
<rect key="frame" x="89" y="-5" width="26" height="28"/>
<animations/>
<buttonCell key="cell" type="check" title="Check" bezelStyle="regularSquare" imagePosition="only" controlSize="mini" state="on" inset="2" id="xfn-0A-lKJ">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="miniSystem"/>
@ -1470,7 +1398,6 @@
<constraint firstItem="a5i-Xe-jtT" firstAttribute="top" secondItem="4b6-Et-Xqe" secondAttribute="top" constant="-1" id="cVc-Sb-n5D"/>
<constraint firstItem="a5i-Xe-jtT" firstAttribute="centerY" secondItem="4b6-Et-Xqe" secondAttribute="centerY" id="wf6-4t-RsM"/>
</constraints>
<animations/>
</tableCellView>
</prototypeCellViews>
</tableColumn>
@ -1481,19 +1408,15 @@
</connections>
</tableView>
</subviews>
<animations/>
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
</clipView>
<animations/>
<scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="YES" id="iio-3e-VF6">
<rect key="frame" x="1" y="-14" width="0.0" height="15"/>
<autoresizingMask key="autoresizingMask"/>
<animations/>
</scroller>
<scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="NO" id="ti4-ev-grI">
<rect key="frame" x="224" y="17" width="15" height="102"/>
<autoresizingMask key="autoresizingMask"/>
<animations/>
</scroller>
</scrollView>
<scrollView autohidesScrollers="YES" horizontalLineScroll="16" horizontalPageScroll="10" verticalLineScroll="16" verticalPageScroll="10" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qei-nK-1Al">
@ -1505,7 +1428,6 @@
<tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="none" columnSelection="YES" autosaveColumns="NO" rowHeight="14" id="H3k-dU-KZ9">
<rect key="frame" x="0.0" y="0.0" width="216" height="16"/>
<autoresizingMask key="autoresizingMask"/>
<animations/>
<size key="intercellSpacing" width="3" height="2"/>
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
<color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
@ -1533,19 +1455,15 @@
</connections>
</tableView>
</subviews>
<animations/>
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
</clipView>
<animations/>
<scroller key="horizontalScroller" verticalHuggingPriority="750" horizontal="YES" id="lhn-Yb-bwG">
<rect key="frame" x="1" y="114" width="106" height="15"/>
<autoresizingMask key="autoresizingMask"/>
<animations/>
</scroller>
<scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="NO" id="Qxp-g3-yYs">
<rect key="frame" x="-14" y="1" width="15" height="0.0"/>
<autoresizingMask key="autoresizingMask"/>
<animations/>
</scroller>
</scrollView>
</subviews>
@ -1568,7 +1486,6 @@
<constraint firstItem="eYy-bt-k7V" firstAttribute="leading" secondItem="LTd-v8-sVD" secondAttribute="leading" id="qSK-0d-FIY"/>
<constraint firstItem="eYy-bt-k7V" firstAttribute="leading" secondItem="qei-nK-1Al" secondAttribute="trailing" constant="13" id="tvy-h2-Sl4"/>
</constraints>
<animations/>
</customView>
<customView translatesAutoresizingMaskIntoConstraints="NO" id="cdu-gf-7vZ">
<rect key="frame" x="531" y="114" width="312" height="196"/>
@ -1582,7 +1499,6 @@
<tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="none" columnSelection="YES" autosaveColumns="NO" rowHeight="14" id="x1C-dJ-oRx">
<rect key="frame" x="0.0" y="0.0" width="216" height="16"/>
<autoresizingMask key="autoresizingMask"/>
<animations/>
<size key="intercellSpacing" width="3" height="2"/>
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
<color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
@ -1610,24 +1526,19 @@
</connections>
</tableView>
</subviews>
<animations/>
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
</clipView>
<animations/>
<scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="YES" id="Hmb-Y1-bvC">
<rect key="frame" x="1" y="107" width="211" height="15"/>
<autoresizingMask key="autoresizingMask"/>
<animations/>
</scroller>
<scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="NO" id="jys-4L-vdR">
<rect key="frame" x="224" y="17" width="15" height="102"/>
<autoresizingMask key="autoresizingMask"/>
<animations/>
</scroller>
</scrollView>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Joi-iR-nWv">
<rect key="frame" x="268" y="182" width="26" height="14"/>
<animations/>
<textFieldCell key="cell" controlSize="small" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Live" id="FYE-cJ-eNy">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@ -1639,7 +1550,6 @@
<constraints>
<constraint firstAttribute="width" constant="60" id="Qom-ym-iMZ"/>
</constraints>
<animations/>
<buttonCell key="cell" type="push" title="Animate" bezelStyle="rounded" alignment="center" controlSize="small" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="xo8-Pv-r2j">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="smallSystem"/>
@ -1663,7 +1573,6 @@
<constraint firstAttribute="bottom" secondItem="qQL-Ws-GNI" secondAttribute="bottom" constant="20" symbolic="YES" id="hFk-N3-na3"/>
<constraint firstItem="qQL-Ws-GNI" firstAttribute="top" secondItem="Q57-Lg-UOf" secondAttribute="bottom" constant="8" symbolic="YES" id="zJo-U2-MTH"/>
</constraints>
<animations/>
<connections>
<binding destination="816" name="hidden" keyPath="self.stagingHidden" id="2v1-rh-lYN"/>
</connections>
@ -1679,7 +1588,6 @@
<constraint firstItem="jA8-yc-8qt" firstAttribute="leading" secondItem="mGF-tq-Byw" secondAttribute="leading" constant="-3" id="llk-GV-gPa"/>
<constraint firstItem="jA8-yc-8qt" firstAttribute="top" secondItem="mGF-tq-Byw" secondAttribute="top" constant="-17" id="q3T-Kf-m1J"/>
</constraints>
<animations/>
</view>
</tabViewItem>
</tabViewItems>
@ -1700,10 +1608,8 @@
<constraint firstItem="3286" firstAttribute="top" secondItem="2370" secondAttribute="top" constant="20" id="qId-D0-oWK"/>
<constraint firstItem="597" firstAttribute="baseline" secondItem="Rb5-R9-Aqy" secondAttribute="baseline" id="zaa-dy-GDp"/>
</constraints>
<animations/>
</customView>
</subviews>
<animations/>
<holdingPriorities>
<real value="250"/>
<real value="250"/>
@ -1716,7 +1622,6 @@
<constraint firstItem="2368" firstAttribute="leading" secondItem="372" secondAttribute="leading" id="Jhu-YX-rml"/>
<constraint firstAttribute="bottom" secondItem="2368" secondAttribute="bottom" constant="29" id="hpi-4p-8U9"/>
</constraints>
<animations/>
</view>
<point key="canvasLocation" x="1252.5" y="875"/>
</window>
@ -1836,7 +1741,6 @@
<subviews>
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" setsMaxLayoutWidthAtFirstLayout="YES" translatesAutoresizingMaskIntoConstraints="NO" id="QXC-Xu-cG7">
<rect key="frame" x="2" y="265" width="63" height="34"/>
<animations/>
<textFieldCell key="cell" controlSize="mini" sendsActionOnEndEditing="YES" title="Multiline Label" id="noH-td-Qwc">
<font key="font" metaFont="miniSystem"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@ -1849,7 +1753,6 @@
</textField>
<slider horizontalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="uW4-9L-JyQ">
<rect key="frame" x="20" y="49" width="15" height="219"/>
<animations/>
<sliderCell key="cell" controlSize="mini" continuous="YES" alignment="left" maxValue="1" doubleValue="1" tickMarkPosition="right" sliderType="linear" id="DtI-hV-J01"/>
<connections>
<binding destination="93b-Or-H22" name="value" keyPath="representedObject.volume" id="aQo-34-mNT"/>
@ -1887,7 +1790,6 @@ MgA3AEEARwBQAFcAXABkAHkAewB9AH8AgQCLAJAAlQCgAKMApQCnAKkArgC5AMIAygDNANYA2wDoAOwA
</segmentedControl>
<levelIndicator verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="bcO-wt-LMF">
<rect key="frame" x="6" y="24" width="43" height="18"/>
<animations/>
<levelIndicatorCell key="cell" controlSize="mini" continuous="YES" alignment="left" doubleValue="-60" maxValue="7" warningValue="4" criticalValue="6" id="pGs-Hw-JOp"/>
<connections>
<binding destination="93b-Or-H22" name="value" keyPath="self.representedObject.powerLevel" id="bbg-mo-Rk2"/>
@ -1895,7 +1797,6 @@ MgA3AEEARwBQAFcAXABkAHkAewB9AH8AgQCLAJAAlQCgAKMApQCnAKkArgC5AMIAygDNANYA2wDoAOwA
</levelIndicator>
<button horizontalHuggingPriority="750" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="6KB-9R-g3x">
<rect key="frame" x="35" y="50" width="14" height="29"/>
<animations/>
<buttonCell key="cell" type="squareTextured" bezelStyle="texturedSquare" image="NSActionTemplate" imagePosition="above" alignment="left" controlSize="mini" imageScaling="proportionallyDown" inset="2" id="bUL-4P-VX8">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="miniSystem"/>
@ -1909,7 +1810,6 @@ MgA3AEEARwBQAFcAXABkAHkAewB9AH8AgQCLAJAAlQCgAKMApQCnAKkArgC5AMIAygDNANYA2wDoAOwA
</connections>
</button>
</subviews>
<animations/>
<point key="canvasLocation" x="610.5" y="475.5"/>
</view>
<collectionViewItem id="yDQ-rG-Cjn" userLabel="LayoutCollectionViewItem" customClass="CSLayoutCollectionItem"/>

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0710"
LastUpgradeVersion = "0720"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0710"
LastUpgradeVersion = "0720"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0710"
LastUpgradeVersion = "0720"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View file

@ -13,7 +13,7 @@
@property bool isReady;
@property (assign) NSString *fileName;
@property (strong) NSString *fileName;

View file

@ -1,7 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="5056" systemVersion="13E28" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="9532" systemVersion="15E65" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="5056"/>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9532"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="FileStreamServiceViewController">
@ -11,14 +12,13 @@
</connections>
</customObject>
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<customObject id="-3" userLabel="Application"/>
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
<customView id="Hz6-mo-xeY">
<rect key="frame" x="0.0" y="0.0" width="480" height="272"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<subviews>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="rYP-7V-KUS">
<rect key="frame" x="18" y="235" width="76" height="17"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Destination" id="Wle-vJ-Btf">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
@ -27,7 +27,6 @@
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="qk4-1f-aeS">
<rect key="frame" x="100" y="232" width="360" height="22"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="BlJ-C5-Byy">
<font key="font" metaFont="system"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0710"
LastUpgradeVersion = "0720"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"