Package apple.avfoundation
Class AVCaptureDeviceFormat
- java.lang.Object
-
- org.moe.natj.general.NativeObject
-
- org.moe.natj.objc.ObjCObject
-
- apple.NSObject
-
- apple.avfoundation.AVCaptureDeviceFormat
-
- All Implemented Interfaces:
NSObject
public class AVCaptureDeviceFormat extends NSObject
AVCaptureDeviceFormat An AVCaptureDeviceFormat wraps a CMFormatDescription and other format-related information, such as min and max framerate. An AVCaptureDevice exposes an array of formats, and its current activeFormat may be queried. The payload for the formats property is an array of AVCaptureDeviceFormat objects and the activeFormat property payload is an AVCaptureDeviceFormat. AVCaptureDeviceFormat is a thin wrapper around a CMFormatDescription, and can carry associated device format information that doesn't go in a CMFormatDescription, such as min and max frame rate. An AVCaptureDeviceFormat object is immutable. Its values do not change for the life of the object.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class apple.NSObject
NSObject.Function_instanceMethodForSelector_ret, NSObject.Function_methodForSelector_ret
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedAVCaptureDeviceFormat(org.moe.natj.general.Pointer peer)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static booleanaccessInstanceVariablesDirectly()static AVCaptureDeviceFormatalloc()static java.lang.ObjectallocWithZone(org.moe.natj.general.ptr.VoidPtr zone)longautoFocusSystem()[@property] autoFocusSystem A property indicating the autofocus system.static booleanautomaticallyNotifiesObserversForKey(java.lang.String key)static voidcancelPreviousPerformRequestsWithTarget(java.lang.Object aTarget)static voidcancelPreviousPerformRequestsWithTargetSelectorObject(java.lang.Object aTarget, org.moe.natj.objc.SEL aSelector, java.lang.Object anArgument)static NSArray<java.lang.String>classFallbacksForKeyedArchiver()static org.moe.natj.objc.ClassclassForKeyedUnarchiver()static java.lang.StringdebugDescription_static()static java.lang.Stringdescription_static()CMFormatDescriptionRefformatDescription()[@property] formatDescription A CMFormatDescription describing an AVCaptureDevice active or supported format.floatgeometricDistortionCorrectedVideoFieldOfView()[@property] geometricDistortionCorrectedVideoFieldOfView A property indicating the format's horizontal field of view post geometric distortion correction.static longhash_static()CMVideoDimensionshighResolutionStillImageDimensions()[@property] highResolutionStillImageDimensions CMVideoDimensions indicating the highest resolution still image that can be produced by this format.AVCaptureDeviceFormatinit()static NSObject.Function_instanceMethodForSelector_retinstanceMethodForSelector(org.moe.natj.objc.SEL aSelector)static NSMethodSignatureinstanceMethodSignatureForSelector(org.moe.natj.objc.SEL aSelector)static booleaninstancesRespondToSelector(org.moe.natj.objc.SEL aSelector)booleanisGlobalToneMappingSupported()[@property] globalToneMappingSupported A property indicating whether the format supports global tone mapping.booleanisHighestPhotoQualitySupported()[@property] highestPhotoQualitySupported A boolean value specifying whether this format supports the highest possible photo quality that can be delivered on the current platform.booleanisMultiCamSupported()[@property] multiCamSupported A property indicating whether this format is supported in an AVCaptureMultiCamSession.booleanisPortraitEffectsMatteStillImageDeliverySupported()[@property] portraitEffectsMatteStillImageDeliverySupported Indicates whether this depth format supports the delivery of a portrait effects matte.static booleanisSubclassOfClass(org.moe.natj.objc.Class aClass)booleanisVideoBinned()[@property] videoBinned A property indicating whether the format is binned.booleanisVideoHDRSupported()[@property] videoHDRSupported A property indicating whether the format supports high dynamic range streaming.booleanisVideoStabilizationModeSupported(long videoStabilizationMode)isVideoStabilizationModeSupported Returns whether the format supports the given video stabilization mode.booleanisVideoStabilizationSupported()Deprecated.static NSSet<java.lang.String>keyPathsForValuesAffectingValueForKey(java.lang.String key)CMTimemaxExposureDuration()[@property] maxExposureDuration A CMTime indicating the maximum supported exposure duration.floatmaxISO()[@property] maxISO An float indicating the maximum supported exposure ISO value.java.lang.StringmediaType()[@property] mediaType An NSString describing the media type of an AVCaptureDevice active or supported format.CMTimeminExposureDuration()[@property] minExposureDuration A CMTime indicating the minimum supported exposure duration.floatminISO()[@property] minISO A float indicating the minimum supported exposure ISO value.static java.lang.Objectnew_objc()static booleanresolveClassMethod(org.moe.natj.objc.SEL sel)static booleanresolveInstanceMethod(org.moe.natj.objc.SEL sel)static voidsetVersion_static(long aVersion)static org.moe.natj.objc.Classsuperclass_static()NSArray<? extends NSNumber>supportedColorSpaces()[@property] supportedColorSpaces A property indicating the receiver's supported color spaces.NSArray<? extends AVCaptureDeviceFormat>supportedDepthDataFormats()[@property] supportedDepthDataFormats Indicates this format's companion depth data formats.NSArray<? extends org.moe.natj.objc.Class>unsupportedCaptureOutputClasses()[@property] unsupportedCaptureOutputClasses A property indicating AVCaptureOutput subclasses the receiver does not support.static longversion_static()floatvideoFieldOfView()[@property] videoFieldOfView A property indicating the format's horizontal field of view.doublevideoMaxZoomFactor()[@property] videoMaxZoomFactor Indicates the maximum zoom factor available for the AVCaptureDevice's videoZoomFactor property.doublevideoMaxZoomFactorForDepthDataDelivery()[@property] videoMaxZoomFactorForDepthDataDelivery Indicates the maximum zoom factor available for the AVCaptureDevice's videoZoomFactor property when delivering depth data to one or more outputs.doublevideoMinZoomFactorForDepthDataDelivery()[@property] videoMinZoomFactorForDepthDataDelivery Indicates the minimum zoom factor available for the AVCaptureDevice's videoZoomFactor property when delivering depth data to one or more outputs.NSArray<? extends AVFrameRateRange>videoSupportedFrameRateRanges()[@property] videoSupportedFrameRateRanges A property indicating the format's supported frame rate ranges.doublevideoZoomFactorUpscaleThreshold()[@property] videoZoomFactorUpscaleThreshold Indicates the value of AVCaptureDevice's videoZoomFactor property at which the image output begins to require upscaling.-
Methods inherited from class apple.NSObject
accessibilityActivate, accessibilityActivationPoint, accessibilityAssistiveTechnologyFocusedIdentifiers, accessibilityAttributedHint, accessibilityAttributedLabel, accessibilityAttributedUserInputLabels, accessibilityAttributedValue, accessibilityContainerType, accessibilityCustomActions, accessibilityCustomRotors, accessibilityDecrement, accessibilityDragSourceDescriptors, accessibilityDropPointDescriptors, accessibilityElementAtIndex, accessibilityElementCount, accessibilityElementDidBecomeFocused, accessibilityElementDidLoseFocus, accessibilityElementIsFocused, accessibilityElements, accessibilityElementsHidden, accessibilityFrame, accessibilityHint, accessibilityIncrement, accessibilityLabel, accessibilityLanguage, accessibilityNavigationStyle, accessibilityPath, accessibilityPerformEscape, accessibilityPerformMagicTap, accessibilityRespondsToUserInteraction, accessibilityScroll, accessibilityTextualContext, accessibilityTraits, accessibilityUserInputLabels, accessibilityValue, accessibilityViewIsModal, addObserverForKeyPathOptionsContext, attemptRecoveryFromErrorOptionIndex, attemptRecoveryFromErrorOptionIndexDelegateDidRecoverSelectorContextInfo, autoContentAccessingProxy, awakeAfterUsingCoder, awakeFromNib, class_objc, classForCoder, classForKeyedArchiver, copy, dealloc, debugDescription, description, dictionaryWithValuesForKeys, didChangeValueForKey, didChangeValueForKeyWithSetMutationUsingObjects, didChangeValuesAtIndexesForKey, doesNotRecognizeSelector, fileManagerShouldProceedAfterError, fileManagerWillProcessPath, finalize_objc, forwardingTargetForSelector, forwardInvocation, hash, indexOfAccessibilityElement, isAccessibilityElement, isEqual, isKindOfClass, isMemberOfClass, isProxy, methodForSelector, methodSignatureForSelector, mutableArrayValueForKey, mutableArrayValueForKeyPath, mutableCopy, mutableOrderedSetValueForKey, mutableOrderedSetValueForKeyPath, mutableSetValueForKey, mutableSetValueForKeyPath, observationInfo, observeValueForKeyPathOfObjectChangeContext, performSelector, performSelectorInBackgroundWithObject, performSelectorOnMainThreadWithObjectWaitUntilDone, performSelectorOnMainThreadWithObjectWaitUntilDoneModes, performSelectorOnThreadWithObjectWaitUntilDone, performSelectorOnThreadWithObjectWaitUntilDoneModes, performSelectorWithObject, performSelectorWithObjectAfterDelay, performSelectorWithObjectAfterDelayInModes, performSelectorWithObjectWithObject, prepareForInterfaceBuilder, provideImageDataBytesPerRowOrigin_Size_UserInfo, removeObserverForKeyPath, removeObserverForKeyPathContext, replacementObjectForCoder, replacementObjectForKeyedArchiver, respondsToSelector, self, setAccessibilityActivationPoint, setAccessibilityAttributedHint, setAccessibilityAttributedLabel, setAccessibilityAttributedUserInputLabels, setAccessibilityAttributedValue, setAccessibilityContainerType, setAccessibilityCustomActions, setAccessibilityCustomRotors, setAccessibilityDragSourceDescriptors, setAccessibilityDropPointDescriptors, setAccessibilityElements, setAccessibilityElementsHidden, setAccessibilityFrame, setAccessibilityHint, setAccessibilityLabel, setAccessibilityLanguage, setAccessibilityNavigationStyle, setAccessibilityPath, setAccessibilityRespondsToUserInteraction, setAccessibilityTextualContext, setAccessibilityTraits, setAccessibilityUserInputLabels, setAccessibilityValue, setAccessibilityViewIsModal, setIsAccessibilityElement, setNilValueForKey, setObservationInfo, setShouldGroupAccessibilityChildren, setValueForKey, setValueForKeyPath, setValueForUndefinedKey, setValuesForKeysWithDictionary, shouldGroupAccessibilityChildren, superclass, validateValueForKeyError, validateValueForKeyPathError, valueForKey, valueForKeyPath, valueForUndefinedKey, willChangeValueForKey, willChangeValueForKeyWithSetMutationUsingObjects, willChangeValuesAtIndexesForKey
-
-
-
-
Method Detail
-
accessInstanceVariablesDirectly
public static boolean accessInstanceVariablesDirectly()
-
alloc
public static AVCaptureDeviceFormat alloc()
-
allocWithZone
public static java.lang.Object allocWithZone(org.moe.natj.general.ptr.VoidPtr zone)
-
automaticallyNotifiesObserversForKey
public static boolean automaticallyNotifiesObserversForKey(java.lang.String key)
-
cancelPreviousPerformRequestsWithTarget
public static void cancelPreviousPerformRequestsWithTarget(java.lang.Object aTarget)
-
cancelPreviousPerformRequestsWithTargetSelectorObject
public static void cancelPreviousPerformRequestsWithTargetSelectorObject(java.lang.Object aTarget, org.moe.natj.objc.SEL aSelector, java.lang.Object anArgument)
-
classFallbacksForKeyedArchiver
public static NSArray<java.lang.String> classFallbacksForKeyedArchiver()
-
classForKeyedUnarchiver
public static org.moe.natj.objc.Class classForKeyedUnarchiver()
-
debugDescription_static
public static java.lang.String debugDescription_static()
-
description_static
public static java.lang.String description_static()
-
hash_static
public static long hash_static()
-
instanceMethodForSelector
public static NSObject.Function_instanceMethodForSelector_ret instanceMethodForSelector(org.moe.natj.objc.SEL aSelector)
-
instanceMethodSignatureForSelector
public static NSMethodSignature instanceMethodSignatureForSelector(org.moe.natj.objc.SEL aSelector)
-
instancesRespondToSelector
public static boolean instancesRespondToSelector(org.moe.natj.objc.SEL aSelector)
-
isSubclassOfClass
public static boolean isSubclassOfClass(org.moe.natj.objc.Class aClass)
-
keyPathsForValuesAffectingValueForKey
public static NSSet<java.lang.String> keyPathsForValuesAffectingValueForKey(java.lang.String key)
-
new_objc
public static java.lang.Object new_objc()
-
resolveClassMethod
public static boolean resolveClassMethod(org.moe.natj.objc.SEL sel)
-
resolveInstanceMethod
public static boolean resolveInstanceMethod(org.moe.natj.objc.SEL sel)
-
setVersion_static
public static void setVersion_static(long aVersion)
-
superclass_static
public static org.moe.natj.objc.Class superclass_static()
-
version_static
public static long version_static()
-
autoFocusSystem
public long autoFocusSystem()
[@property] autoFocusSystem A property indicating the autofocus system. This read-only property indicates the autofocus system.
-
formatDescription
public CMFormatDescriptionRef formatDescription()
[@property] formatDescription A CMFormatDescription describing an AVCaptureDevice active or supported format. A CMFormatDescription describing an AVCaptureDevice active or supported format. This is a read-only property. The caller assumes no ownership of the returned value and should not CFRelease it.
-
highResolutionStillImageDimensions
public CMVideoDimensions highResolutionStillImageDimensions()
[@property] highResolutionStillImageDimensions CMVideoDimensions indicating the highest resolution still image that can be produced by this format. By default, AVCapturePhotoOutput and AVCaptureStillImageOutput emit images with the same dimensions as their source AVCaptureDevice's activeFormat.formatDescription property. Some device formats support high resolution photo output. That is, they can stream video to an AVCaptureVideoDataOutput or AVCaptureMovieFileOutput at one resolution while outputting photos to AVCapturePhotoOutput at a higher resolution. You may query this property to discover a video format's supported high resolution still image dimensions. See -[AVCapturePhotoOutput highResolutionPhotoEnabled], -[AVCapturePhotoSettings highResolutionPhotoEnabled], and -[AVCaptureStillImageOutput highResolutionStillImageOutputEnabled]. AVCaptureDeviceFormats of type AVMediaTypeDepthData may also support the delivery of a higher resolution depth data map to an AVCapturePhotoOutput. Chief differences are: - Depth data accompanying still images is not supported by AVCaptureStillImageOutput. You must use AVCapturePhotoOutput. - By opting in for depth data ( -[AVCapturePhotoSettings setDepthDataDeliveryEnabled:YES] ), you implicitly opt in for high resolution depth data if it's available. You may query the -[AVCaptureDevice activeDepthDataFormat]'s highResolutionStillImageDimensions to discover the depth data resolution that will be delivered with captured photos.
-
init
public AVCaptureDeviceFormat init()
-
isVideoBinned
public boolean isVideoBinned()
[@property] videoBinned A property indicating whether the format is binned. videoBinned is a BOOL indicating whether the format is a binned format. Binning is a pixel-combining process which can result in greater low light sensitivity at the cost of reduced resolution.
-
isVideoHDRSupported
public boolean isVideoHDRSupported()
[@property] videoHDRSupported A property indicating whether the format supports high dynamic range streaming. videoHDRSupported is a BOOL indicating whether the format supports high dynamic range streaming, also known as Extended Dynamic Range (EDR). When enabled, the device streams at twice the published frame rate, capturing an under-exposed frame and correctly exposed frame for each frame time at the published rate. Portions of the under-exposed frame are combined with the correctly exposed frame to recover detail in darker areas of the scene. EDR is a separate and distinct feature from 10-bit HDR video (first seen in 2020 iPhones). 10-bit formats have greater dynamic range by virtue of their expanded bit depth and HLG BT2020 color space, and when captured in movies, contain Dolby Vision metadata. They are, in effect, "always on" HDR formats and thus their videoHDRSupported property is always NO, since HDR cannot be enabled or disabled. To enable videoHDR (EDR), set the AVCaptureDevice.videoHDREnabled property.
-
isVideoStabilizationModeSupported
public boolean isVideoStabilizationModeSupported(long videoStabilizationMode)
isVideoStabilizationModeSupported Returns whether the format supports the given video stabilization mode. isVideoStabilizationModeSupported: returns a boolean value indicating whether the format can be stabilized using the given mode with -[AVCaptureConnection setPreferredVideoStabilizationMode:].- Parameters:
videoStabilizationMode- An AVCaptureVideoStabilizationMode to be checked.
-
isVideoStabilizationSupported
@Deprecated public boolean isVideoStabilizationSupported()
Deprecated.[@property] videoStabilizationSupported A property indicating whether the format supports video stabilization. videoStabilizationSupported is a BOOL indicating whether the format can be stabilized using AVCaptureConnection -setEnablesVideoStabilizationWhenAvailable. This property is deprecated. Use isVideoStabilizationModeSupported: instead.
-
maxExposureDuration
public CMTime maxExposureDuration()
[@property] maxExposureDuration A CMTime indicating the maximum supported exposure duration. This read-only property indicates the maximum supported exposure duration.
-
maxISO
public float maxISO()
[@property] maxISO An float indicating the maximum supported exposure ISO value. This read-only property indicates the maximum supported exposure ISO value.
-
mediaType
public java.lang.String mediaType()
[@property] mediaType An NSString describing the media type of an AVCaptureDevice active or supported format. Supported mediaTypes are listed in AVMediaFormat.h. This is a read-only property. The caller assumes no ownership of the returned value and should not CFRelease it.
-
minExposureDuration
public CMTime minExposureDuration()
[@property] minExposureDuration A CMTime indicating the minimum supported exposure duration. This read-only property indicates the minimum supported exposure duration.
-
minISO
public float minISO()
[@property] minISO A float indicating the minimum supported exposure ISO value. This read-only property indicates the minimum supported exposure ISO value.
-
supportedColorSpaces
public NSArray<? extends NSNumber> supportedColorSpaces()
[@property] supportedColorSpaces A property indicating the receiver's supported color spaces. This read-only property indicates the receiver's supported color spaces as an array of AVCaptureColorSpace constants sorted from narrow to wide color.
-
videoFieldOfView
public float videoFieldOfView()
[@property] videoFieldOfView A property indicating the format's horizontal field of view. videoFieldOfView is a float value indicating the receiver's field of view in degrees. If field of view is unknown, a value of 0 is returned.
-
videoMaxZoomFactor
public double videoMaxZoomFactor()
[@property] videoMaxZoomFactor Indicates the maximum zoom factor available for the AVCaptureDevice's videoZoomFactor property. If the device's videoZoomFactor property is assigned a larger value, an NSRangeException will be thrown. A maximum zoom factor of 1 indicates no zoom is available.
-
videoSupportedFrameRateRanges
public NSArray<? extends AVFrameRateRange> videoSupportedFrameRateRanges()
[@property] videoSupportedFrameRateRanges A property indicating the format's supported frame rate ranges. videoSupportedFrameRateRanges is an array of AVFrameRateRange objects, one for each of the format's supported video frame rate ranges.
-
videoZoomFactorUpscaleThreshold
public double videoZoomFactorUpscaleThreshold()
[@property] videoZoomFactorUpscaleThreshold Indicates the value of AVCaptureDevice's videoZoomFactor property at which the image output begins to require upscaling. In some cases the image sensor's dimensions are larger than the dimensions reported by the video AVCaptureDeviceFormat. As long as the sensor crop is larger than the reported dimensions of the AVCaptureDeviceFormat, the image will be downscaled. Setting videoZoomFactor to the value of videoZoomFactorUpscalingThreshold will provide a center crop of the sensor image data without any scaling. If a greater zoom factor is used, then the sensor data will be upscaled to the device format's dimensions.
-
supportedDepthDataFormats
public NSArray<? extends AVCaptureDeviceFormat> supportedDepthDataFormats()
[@property] supportedDepthDataFormats Indicates this format's companion depth data formats. If no depth data formats are supported by the receiver, an empty array is returned. On virtual devices, the supportedDepthDataFormats list items always match the aspect ratio of their paired video format. When the receiver is set as the device's activeFormat, you may set the device's activeDepthDataFormat to one of these supported depth data formats.
-
unsupportedCaptureOutputClasses
public NSArray<? extends org.moe.natj.objc.Class> unsupportedCaptureOutputClasses()
[@property] unsupportedCaptureOutputClasses A property indicating AVCaptureOutput subclasses the receiver does not support. As a rule, AVCaptureDeviceFormats of a given mediaType are available for use with all AVCaptureOutputs that accept that media type, but there are exceptions. For instance, on apps linked against iOS versions earlier than 12.0, the photo resolution video formats may not be used as sources for AVCaptureMovieFileOutput due to bandwidth limitations. On DualCamera devices, AVCaptureDepthDataOutput is not supported when outputting full resolution (i.e. 12 MP) video due to bandwidth limitations. In order to stream depth data plus video data from a photo format, ensure that your AVCaptureVideoDataOutput's deliversPreviewSizedOutputBuffers property is set to YES. Likewise, to stream depth data while capturing video to a movie file using AVCaptureMovieFileOutput, call -[AVCaptureSession setSessionPreset:AVCaptureSessionPresetPhoto]. When using the photo preset, video is captured at preview resolution rather than the full sensor resolution.
-
videoMaxZoomFactorForDepthDataDelivery
public double videoMaxZoomFactorForDepthDataDelivery()
[@property] videoMaxZoomFactorForDepthDataDelivery Indicates the maximum zoom factor available for the AVCaptureDevice's videoZoomFactor property when delivering depth data to one or more outputs. Virtual devices support a limited zoom range when delivering depth data to any output. If this device format has no -supportedDepthDataFormats, this property returns videoMaxZoomFactor.
-
videoMinZoomFactorForDepthDataDelivery
public double videoMinZoomFactorForDepthDataDelivery()
[@property] videoMinZoomFactorForDepthDataDelivery Indicates the minimum zoom factor available for the AVCaptureDevice's videoZoomFactor property when delivering depth data to one or more outputs. Virtual devices support a limited zoom range when delivering depth data to any output. If this device format has no -supportedDepthDataFormats, this property returns 1.0.
-
geometricDistortionCorrectedVideoFieldOfView
public float geometricDistortionCorrectedVideoFieldOfView()
[@property] geometricDistortionCorrectedVideoFieldOfView A property indicating the format's horizontal field of view post geometric distortion correction. If the receiver's AVCaptureDevice does not support GDC, geometricDistortionCorrectedVideoFieldOfView matches the videoFieldOfView property.
-
isGlobalToneMappingSupported
public boolean isGlobalToneMappingSupported()
[@property] globalToneMappingSupported A property indicating whether the format supports global tone mapping. globalToneMappingSupported is a BOOL indicating whether the format supports global tone mapping. See AVCaptureDevice's globalToneMappingEnabled property.
-
isHighestPhotoQualitySupported
public boolean isHighestPhotoQualitySupported()
[@property] highestPhotoQualitySupported A boolean value specifying whether this format supports the highest possible photo quality that can be delivered on the current platform. Of the many formats supported by an AVCaptureDevice, only a few of them are designated as "photo" formats which can produce the highest possible quality, such as still image stabilization and Live Photos. If you intend to connect an AVCaptureDeviceInput to an AVCapturePhotoOutput and receive the best possible images, you should ensure that you are either using the AVCaptureSessionPresetPhoto as your preset, or if using the parallel AVCaptureDevice activeFormat API, select as your activeFormat one for which this property is YES.
-
isMultiCamSupported
public boolean isMultiCamSupported()
[@property] multiCamSupported A property indicating whether this format is supported in an AVCaptureMultiCamSession. When using an AVCaptureSession (single camera capture), any of the formats in the device's -formats array may be set as the -activeFormat. However, when used with an AVCaptureMultiCamSession, the device's -activeFormat may only be set to one of the formats for which multiCamSupported answers YES. This limited subset of capture formats are known to run sustainably in a multi camera capture scenario.
-
isPortraitEffectsMatteStillImageDeliverySupported
public boolean isPortraitEffectsMatteStillImageDeliverySupported()
[@property] portraitEffectsMatteStillImageDeliverySupported Indicates whether this depth format supports the delivery of a portrait effects matte. Some depth formats are capable of producing an auxiliary matting image (similar to an auxiliary depth image) tuned for high quality portrait effects rendering (see AVPortraitEffectsMatte.h). If this property's value is YES, you may request portrait effects matte delivery in your photos using the AVCapturePhotoOutput, provided this format is selected as the activeDepthDataFormat.
-
-