track.delegate = self;
}
- decodeObject(_defaults, HBAudioDefaults);
+ decodeObjectOrFail(_defaults, HBAudioDefaults);
return self;
+
+fail:
+ return nil;
}
#pragma mark - Presets
self = [super init];
decodeInteger(_trackSelectionBehavior);
- decodeObject(_trackSelectionLanguages, NSMutableArray);
+ decodeObjectOrFail(_trackSelectionLanguages, NSMutableArray);
decodeCollectionOfObjects(_tracksArray, NSMutableArray, HBAudioTrackPreset);
decodeBool(_secondaryEncoderMode);
return self;
+
+fail:
+ return nil;
}
#pragma mark KVC
if (version == 1 && (self = [self init]))
{
- decodeObject(_title, NSString);
- decodeObject(_duration, NSString);
+ decodeObjectOrFail(_title, NSString);
+ decodeObjectOrFail(_duration, NSString);
decodeInteger(_index);
return self;
}
-
+
+fail:
return nil;
}
#define decodeCollectionOfObjects3(x, cl, objectcl, objectcl2, objectcl3) x = [HBCodingUtilities decodeObjectOfClasses:[NSSet setWithObjects:[cl class], [objectcl class], [objectcl2 class], [objectcl3 class], nil] forKey:OBJC_STRINGIFY(x) decoder:decoder];
-#define decodeObjectOrFail(x, class) x = [HBCodingUtilities decodeObjectOfClass:class forKey:OBJC_STRINGIFY(x) decoder:decoder]; if (x == nil) {NSLog(@"Failed to decode: %@", OBJC_STRINGIFY(x)); goto fail;}
+#define decodeObjectOrFail(x, cl) x = [HBCodingUtilities decodeObjectOfClass:[cl class] forKey:OBJC_STRINGIFY(x) decoder:decoder]; if (x == nil) {NSLog(@"Failed to decode: %@", OBJC_STRINGIFY(x)); goto fail;}
NS_ASSUME_NONNULL_BEGIN
{
self = [super init];
- decodeObject(_detelecine, NSString);
- decodeObject(_detelecineCustomString, NSString);
+ decodeObjectOrFail(_detelecine, NSString);
+ decodeObjectOrFail(_detelecineCustomString, NSString);
- decodeObject(_combDetection, NSString);
- decodeObject(_combDetectionCustomString, NSString);
+ decodeObjectOrFail(_combDetection, NSString);
+ decodeObjectOrFail(_combDetectionCustomString, NSString);
- decodeObject(_deinterlace, NSString);
- decodeObject(_deinterlacePreset, NSString)
- decodeObject(_deinterlaceCustomString, NSString);
+ decodeObjectOrFail(_deinterlace, NSString);
+ decodeObjectOrFail(_deinterlacePreset, NSString)
+ decodeObjectOrFail(_deinterlaceCustomString, NSString);
- decodeObject(_denoise, NSString);
- decodeObject(_denoisePreset, NSString);
- decodeObject(_denoiseTune, NSString);
- decodeObject(_denoiseCustomString, NSString);
+ decodeObjectOrFail(_denoise, NSString);
+ decodeObjectOrFail(_denoisePreset, NSString);
+ decodeObjectOrFail(_denoiseTune, NSString);
+ decodeObjectOrFail(_denoiseCustomString, NSString);
decodeInt(_deblock);
decodeBool(_grayscale);
_notificationsEnabled = YES;
return self;
+
+fail:
+ return nil;
}
#pragma mark - Presets and queue
if (version == 3 && (self = [super init]))
{
decodeInt(_state);
- decodeObject(_name, NSString);
- decodeObject(_presetName, NSString);
+ decodeObjectOrFail(_name, NSString);
+ decodeObjectOrFail(_presetName, NSString);
decodeInt(_titleIdx);
- decodeObject(_uuid, NSString);
+ decodeObjectOrFail(_uuid, NSString);
#ifdef __SANDBOX_ENABLED__
_fileURLBookmark = [HBCodingUtilities decodeObjectOfClass:[NSData class] forKey:@"_fileURLBookmark" decoder:decoder];
decodeBool(_mp4HttpOptimize);
decodeBool(_mp4iPodCompatible);
- decodeObject(_range, HBRange);
- decodeObject(_video, HBVideo);
- decodeObject(_picture, HBPicture);
- decodeObject(_filters, HBFilters);
+ decodeObjectOrFail(_range, HBRange);
+ decodeObjectOrFail(_video, HBVideo);
+ decodeObjectOrFail(_picture, HBPicture);
+ decodeObjectOrFail(_filters, HBFilters);
_video.job = self;
- decodeObject(_audio, HBAudio);
- decodeObject(_subtitles, HBSubtitles);
+ decodeObjectOrFail(_audio, HBAudio);
+ decodeObjectOrFail(_subtitles, HBSubtitles);
_audio.job = self;
_video.job = self;
return self;
}
+fail:
return nil;
}
track.delegate = self;
}
- decodeObject(_defaults, HBSubtitlesDefaults);
+ decodeObjectOrFail(_defaults, HBSubtitlesDefaults);
return self;
+
+fail:
+ return nil;
}
#pragma mark - Presets
self = [super init];
decodeInteger(_trackSelectionBehavior);
- decodeObject(_trackSelectionLanguages, NSMutableArray);
+ decodeObjectOrFail(_trackSelectionLanguages, NSMutableArray);
decodeBool(_addForeignAudioSearch);
decodeBool(_addForeignAudioSubtitle);
decodeBool(_burnInBluraySubtitles);
return self;
+
+fail:
+ return nil;
}
decodeBool(_turboTwoPass);
decodeBool(_advancedOptions);
- decodeObject(_preset, NSString);
- decodeObject(_tune, NSString);
- decodeObject(_profile, NSString);
- decodeObject(_level, NSString);
+ decodeObjectOrFail(_preset, NSString);
+ decodeObjectOrFail(_tune, NSString);
+ decodeObjectOrFail(_profile, NSString);
+ decodeObjectOrFail(_level, NSString);
- decodeObject(_videoOptionExtra, NSString);
+ decodeObjectOrFail(_videoOptionExtra, NSString);
decodeBool(_fastDecode);
_notificationsEnabled = YES;
return self;
+
+fail:
+ return nil;
}
#pragma mark - Various conversion methods from dict/preset/queue/etc