/* HBPicture.h $ This file is part of the HandBrake source code. Homepage: . It may be used under the terms of the GNU General Public License. */ #import #import @class HBTitle; NS_ASSUME_NONNULL_BEGIN typedef NS_ENUM(NSUInteger, HBPictureCropMode) { HBPictureCropModeNone, HBPictureCropModeConservative, HBPictureCropModeAutomatic, HBPictureCropModeCustom }; typedef NS_ENUM(NSUInteger, HBPictureResolutionLimitMode) { HBPictureResolutionLimitModeNone, HBPictureResolutionLimitMode8K, HBPictureResolutionLimitMode4K, HBPictureResolutionLimitMode1440p, HBPictureResolutionLimitMode1080p, HBPictureResolutionLimitMode720p, HBPictureResolutionLimitMode576p, HBPictureResolutionLimitMode480p, HBPictureResolutionLimitModeCustom, }; typedef NS_ENUM(NSUInteger, HBPictureAnarmophicMode) { HBPictureAnarmophicModeNone, HBPictureAnarmophicModeStrict, HBPictureAnarmophicModeLoose, HBPictureAnarmophicModeCustom, HBPictureAnarmophicModeAuto }; typedef NS_ENUM(NSUInteger, HBPicturePadMode) { HBPicturePadModeNone, HBPicturePadModeFill, HBPicturePadModeFillHeight, HBPicturePadModeFillWidth, HBPicturePadModeCustom }; typedef NS_ENUM(NSUInteger, HBPicturePadColorMode) { HBPicturePadColorModeBlack, HBPicturePadColorModeDarkGray, HBPicturePadColorModeGray, HBPicturePadColorModeWhite, HBPicturePadColorModeCustom, }; extern NSString * const HBPictureChangedNotification; /** * HBPicture */ @interface HBPicture : NSObject /** * Source */ @property (nonatomic, readonly) int sourceWidth; @property (nonatomic, readonly) int sourceHeight; @property (nonatomic, readonly) int sourceParNum; @property (nonatomic, readonly) int sourceParDen; @property (nonatomic, readonly) int sourceDisplayWidth; /** * Rotate */ @property (nonatomic, readwrite) int angle; @property (nonatomic, readwrite) BOOL flip; /** * Crop */ @property (nonatomic, readwrite) HBPictureCropMode cropMode; @property (nonatomic, readwrite) int cropTop; @property (nonatomic, readwrite) int cropBottom; @property (nonatomic, readwrite) int cropLeft; @property (nonatomic, readwrite) int cropRight; /** * Size */ @property (nonatomic, readwrite) HBPictureResolutionLimitMode resolutionLimitMode; @property (nonatomic, readwrite) int maxWidth; @property (nonatomic, readwrite) int maxHeight; @property (nonatomic, readwrite) BOOL allowUpscaling; @property (nonatomic, readwrite) BOOL useMaximumSize; @property (nonatomic, readwrite) HBPictureAnarmophicMode anamorphicMode; @property (nonatomic, readwrite) int parNum; @property (nonatomic, readwrite) int parDen; @property (nonatomic, readwrite) int width; @property (nonatomic, readwrite) int height; /** * Pad */ @property (nonatomic, readwrite) HBPicturePadMode padMode; @property (nonatomic, readwrite) int padTop; @property (nonatomic, readwrite) int padBottom; @property (nonatomic, readwrite) int padLeft; @property (nonatomic, readwrite) int padRight; @property (nonatomic, readwrite) HBPicturePadColorMode padColorMode; @property (nonatomic, readwrite) NSString *padColorCustom; /** * Output sizes */ @property (nonatomic, readonly) int storageWidth; @property (nonatomic, readonly) int storageHeight; @property (nonatomic, readwrite) BOOL keepAspectRatio; @property (nonatomic, readwrite) int displayWidth; @property (nonatomic, readonly) int displayHeight; @property (nonatomic, readwrite, weak, nullable) NSUndoManager *undo; @end NS_ASSUME_NONNULL_END