Class AVCaptureConnection

  • All Implemented Interfaces:
    NSObject

    public class AVCaptureConnection
    extends NSObject
    AVCaptureConnection AVCaptureConnection represents a connection between an AVCaptureInputPort or ports, and an AVCaptureOutput or AVCaptureVideoPreviewLayer present in an AVCaptureSession. AVCaptureInputs have one or more AVCaptureInputPorts. AVCaptureOutputs can accept data from one or more sources (example - an AVCaptureMovieFileOutput accepts both video and audio data). AVCaptureVideoPreviewLayers can accept data from one AVCaptureInputPort whose mediaType is AVMediaTypeVideo. When an input or output is added to a session, or a video preview layer is associated with a session, the session greedily forms connections between all the compatible AVCaptureInputs' ports and AVCaptureOutputs or AVCaptureVideoPreviewLayers. Iterating through an output's connections or a video preview layer's sole connection, a client may enable or disable the flow of data from a given input to a given output or preview layer. Connections involving audio expose an array of AVCaptureAudioChannel objects, which can be used for monitoring levels. Connections involving video expose video specific properties, such as videoMirrored and videoOrientation.
    • Constructor Detail

      • AVCaptureConnection

        protected AVCaptureConnection​(org.moe.natj.general.Pointer peer)
    • Method Detail

      • accessInstanceVariablesDirectly

        public static boolean accessInstanceVariablesDirectly()
      • 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()
      • connectionWithInputPortVideoPreviewLayer

        public static AVCaptureConnection connectionWithInputPortVideoPreviewLayer​(AVCaptureInputPort port,
                                                                                   AVCaptureVideoPreviewLayer layer)
        connectionWithInputPort:videoPreviewLayer: Returns an AVCaptureConnection instance describing a connection between the specified inputPort and the specified AVCaptureVideoPreviewLayer instance. This method returns an instance of AVCaptureConnection that may be subsequently added to an AVCaptureSession instance using AVCaptureSession's -addConnection: method. When using AVCaptureVideoPreviewLayer's -initWithSession: or -setSession:, a connection is formed between the first compatible input port and the video preview layer automatically. You do not need to manually create and add connections to the session unless you use AVCaptureVideoPreviewLayer's primitive -initWithSessionWithNoConnection: or -setSessionWithNoConnection: methods.
        Parameters:
        port - An AVCaptureInputPort object associated with an AVCaptureInput object.
        layer - An AVCaptureVideoPreviewLayer object.
        Returns:
        An AVCaptureConnection instance joining the specified inputPort to the specified video preview layer.
      • connectionWithInputPortsOutput

        public static AVCaptureConnection connectionWithInputPortsOutput​(NSArray<? extends AVCaptureInputPort> ports,
                                                                         AVCaptureOutput output)
        connectionWithInputPorts:output: Returns an AVCaptureConnection instance describing a connection between the specified inputPorts and the specified output. This method returns an instance of AVCaptureConnection that may be subsequently added to an AVCaptureSession instance using AVCaptureSession's -addConnection: method. When using -addInput: or -addOutput:, connections are formed between all compatible inputs and outputs automatically. You do not need to manually create and add connections to the session unless you use the primitive -addInputWithNoConnections: or -addOutputWithNoConnections: methods.
        Parameters:
        ports - An array of AVCaptureInputPort objects associated with AVCaptureInput objects.
        output - An AVCaptureOutput object.
        Returns:
        An AVCaptureConnection instance joining the specified inputPorts to the specified output port.
      • 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()
      • 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()
      • activeVideoStabilizationMode

        public long activeVideoStabilizationMode()
        [@property] activeVideoStabilizationMode Indicates the stabilization mode currently being applied to video flowing through the receiver. This property is only applicable to AVCaptureConnection instances involving video. On devices where the video stabilization feature is supported, only a subset of available source formats may be stabilized. The activeVideoStabilizationMode property returns a value other than AVCaptureVideoStabilizationModeOff if video stabilization is currently in use. This property never returns AVCaptureVideoStabilizationModeAuto. This property is key-value observable.
      • audioChannels

        public NSArray<? extends AVCaptureAudioChannel> audioChannels()
        [@property] audioChannels An array of AVCaptureAudioChannel objects representing individual channels of audio data flowing through the connection. This property is only applicable to AVCaptureConnection instances involving audio. In such connections, the audioChannels array contains one AVCaptureAudioChannel object for each channel of audio data flowing through this connection.
      • automaticallyAdjustsVideoMirroring

        public boolean automaticallyAdjustsVideoMirroring()
        [@property] automaticallyAdjustsVideoMirroring Specifies whether or not the value of @"videoMirrored" can change based on configuration of the session. For some session configurations, video data flowing through the connection will be mirrored by default. When the value of this property is YES, the value of @"videoMirrored" may change depending on the configuration of the session, for example after switching to a different AVCaptureDeviceInput. The default value is YES.
      • enablesVideoStabilizationWhenAvailable

        @Deprecated
        public boolean enablesVideoStabilizationWhenAvailable()
        Deprecated.
        [@property] enablesVideoStabilizationWhenAvailable Indicates whether stabilization should be applied to video flowing through the receiver when the feature is available. This property is only applicable to AVCaptureConnection instances involving video. On devices where the video stabilization feature is supported, only a subset of available source formats and resolutions may be available for stabilization. By setting the enablesVideoStabilizationWhenAvailable property to YES, video flowing through the receiver is stabilized when available. Enabling video stabilization may introduce additional latency into the video capture pipeline. Clients may key-value observe the videoStabilizationEnabled property to know when stabilization is in use or not. The default value is NO. For apps linked before iOS 6.0, the default value is YES for a video connection attached to an AVCaptureMovieFileOutput instance. For apps linked on or after iOS 6.0, the default value is always NO. This property is deprecated. Use preferredVideoStabilizationMode instead.
      • initWithInputPortVideoPreviewLayer

        public AVCaptureConnection initWithInputPortVideoPreviewLayer​(AVCaptureInputPort port,
                                                                      AVCaptureVideoPreviewLayer layer)
        initWithInputPort:videoPreviewLayer: Returns an AVCaptureConnection instance describing a connection between the specified inputPort and the specified AVCaptureVideoPreviewLayer instance. This method returns an instance of AVCaptureConnection that may be subsequently added to an AVCaptureSession instance using AVCaptureSession's -addConnection: method. When using AVCaptureVideoPreviewLayer's -initWithSession: or -setSession:, a connection is formed between the first compatible input port and the video preview layer automatically. You do not need to manually create and add connections to the session unless you use AVCaptureVideoPreviewLayer's primitive -initWithSessionWithNoConnection: or -setSessionWithNoConnection: methods.
        Parameters:
        port - An AVCaptureInputPort object associated with an AVCaptureInput object.
        layer - An AVCaptureVideoPreviewLayer object.
        Returns:
        An AVCaptureConnection instance joining the specified inputPort to the specified video preview layer.
      • initWithInputPortsOutput

        public AVCaptureConnection initWithInputPortsOutput​(NSArray<? extends AVCaptureInputPort> ports,
                                                            AVCaptureOutput output)
        initWithInputPorts:output: Returns an AVCaptureConnection instance describing a connection between the specified inputPorts and the specified output. This method returns an instance of AVCaptureConnection that may be subsequently added to an AVCaptureSession instance using AVCaptureSession's -addConnection: method. When using -addInput: or -addOutput:, connections are formed between all compatible inputs and outputs automatically. You do not need to manually create and add connections to the session unless you use the primitive -addInputWithNoConnections: or -addOutputWithNoConnections: methods.
        Parameters:
        ports - An array of AVCaptureInputPort objects associated with AVCaptureInput objects.
        output - An AVCaptureOutput object.
        Returns:
        An AVCaptureConnection instance joining the specified inputPorts to the specified output port.
      • inputPorts

        public NSArray<? extends AVCaptureInputPort> inputPorts()
        [@property] inputPorts An array of AVCaptureInputPort instances providing data through this connection. An AVCaptureConnection may involve one or more AVCaptureInputPorts producing data to the connection's AVCaptureOutput. This property is read-only. An AVCaptureConnection's inputPorts remain static for the life of the object.
      • isActive

        public boolean isActive()
        [@property] active Indicates whether the receiver's output is currently capable of consuming data through this connection. The value of this property is a BOOL that determines whether the receiver's output can consume data provided through this connection. This property is read-only. Clients may key-value observe this property to know when a session's configuration forces a connection to become inactive. The default value is YES. Prior to iOS 11, the audio connection feeding an AVCaptureAudioDataOutput is made inactive when using AVCaptureSessionPresetPhoto or the equivalent photo format using -[AVCaptureDevice activeFormat]. On iOS 11 and later, the audio connection feeding AVCaptureAudioDataOutput is active for all presets and device formats.
      • isEnabled

        public boolean isEnabled()
        [@property] enabled Indicates whether the connection's output should consume data. The value of this property is a BOOL that determines whether the receiver's output should consume data from its connected inputPorts when a session is running. Clients can set this property to stop the flow of data to a given output during capture. The default value is YES.
      • setEnabled

        public void setEnabled​(boolean value)
        [@property] enabled Indicates whether the connection's output should consume data. The value of this property is a BOOL that determines whether the receiver's output should consume data from its connected inputPorts when a session is running. Clients can set this property to stop the flow of data to a given output during capture. The default value is YES.
      • isVideoMaxFrameDurationSupported

        @Deprecated
        public boolean isVideoMaxFrameDurationSupported()
        Deprecated.
        [@property] supportsVideoMaxFrameDuration Indicates whether the connection supports setting the videoMaxFrameDuration property. This property is only applicable to AVCaptureConnection instances involving video. In such connections, the videoMaxFrameDuration property may only be set if -isVideoMaxFrameDurationSupported returns YES. This property is deprecated on iOS, where min and max frame rate adjustments are applied exclusively at the AVCaptureDevice using the activeVideoMinFrameDuration and activeVideoMaxFrameDuration properties. On Mac OS X, frame rate adjustments are supported both at the AVCaptureDevice and at AVCaptureConnection, enabling connections to output different frame rates.
      • isVideoMinFrameDurationSupported

        @Deprecated
        public boolean isVideoMinFrameDurationSupported()
        Deprecated.
        [@property] supportsVideoMinFrameDuration Indicates whether the connection supports setting the videoMinFrameDuration property. This property is only applicable to AVCaptureConnection instances involving video. In such connections, the videoMinFrameDuration property may only be set if -isVideoMinFrameDurationSupported returns YES. This property is deprecated on iOS, where min and max frame rate adjustments are applied exclusively at the AVCaptureDevice using the activeVideoMinFrameDuration and activeVideoMaxFrameDuration properties. On Mac OS X, frame rate adjustments are supported both at the AVCaptureDevice and at AVCaptureConnection, enabling connections to output different frame rates.
      • isVideoMirrored

        public boolean isVideoMirrored()
        [@property] videoMirrored Indicates whether the video flowing through the connection should be mirrored about its vertical axis. This property is only applicable to AVCaptureConnection instances involving video. if -isVideoMirroringSupported returns YES, videoMirrored may be set to flip the video about its vertical axis and produce a mirror-image effect.
      • setVideoMirrored

        public void setVideoMirrored​(boolean value)
        [@property] videoMirrored Indicates whether the video flowing through the connection should be mirrored about its vertical axis. This property is only applicable to AVCaptureConnection instances involving video. if -isVideoMirroringSupported returns YES, videoMirrored may be set to flip the video about its vertical axis and produce a mirror-image effect.
      • isVideoMirroringSupported

        public boolean isVideoMirroringSupported()
        [@property] supportsVideoMirroring Indicates whether the connection supports setting the videoMirrored property. This property is only applicable to AVCaptureConnection instances involving video. In such connections, the videoMirrored property may only be set if -isVideoMirroringSupported returns YES.
      • isVideoOrientationSupported

        public boolean isVideoOrientationSupported()
        [@property] supportsVideoOrientation Indicates whether the connection supports setting the videoOrientation property. This property is only applicable to AVCaptureConnection instances involving video. In such connections, the videoOrientation property may only be set if -isVideoOrientationSupported returns YES.
      • isVideoStabilizationEnabled

        @Deprecated
        public boolean isVideoStabilizationEnabled()
        Deprecated.
        [@property] videoStabilizationEnabled Indicates whether stabilization is currently being applied to video flowing through the receiver. This property is only applicable to AVCaptureConnection instances involving video. On devices where the video stabilization feature is supported, only a subset of available source formats and resolutions may be available for stabilization. The videoStabilizationEnabled property returns YES if video stabilization is currently in use. This property is key-value observable. This property is deprecated. Use activeVideoStabilizationMode instead.
      • isVideoStabilizationSupported

        public boolean isVideoStabilizationSupported()
        [@property] supportsVideoStabilization Indicates whether the connection supports video stabilization. This property is only applicable to AVCaptureConnection instances involving video. In such connections, the -enablesVideoStabilizationWhenAvailable property may only be set if -supportsVideoStabilization returns YES. This property returns YES if the connection's input device has one or more formats that support video stabilization and the connection's output supports video stabilization. See [AVCaptureDeviceFormat isVideoStabilizationModeSupported:] to check which video stabilization modes are supported by the active device format.
      • output

        public AVCaptureOutput output()
        [@property] output The AVCaptureOutput instance consuming data from this connection's inputPorts. An AVCaptureConnection may involve one or more AVCaptureInputPorts producing data to the connection's AVCaptureOutput. This property is read-only. An AVCaptureConnection's output remains static for the life of the object. Note that a connection can either be to an output or a video preview layer, but never to both.
      • preferredVideoStabilizationMode

        public long preferredVideoStabilizationMode()
        [@property] preferredVideoStabilizationMode Indicates the stabilization mode to apply to video flowing through the receiver when it is supported. This property is only applicable to AVCaptureConnection instances involving video. On devices where the video stabilization feature is supported, only a subset of available source formats may be available for stabilization. By setting the preferredVideoStabilizationMode property to a value other than AVCaptureVideoStabilizationModeOff, video flowing through the receiver is stabilized when the mode is available. Enabling video stabilization introduces additional latency into the video capture pipeline and may consume more system memory depending on the stabilization mode and format. If the preferred stabilization mode isn't available, the activeVideoStabilizationMode will be set to AVCaptureVideoStabilizationModeOff. Clients may key-value observe the activeVideoStabilizationMode property to know which stabilization mode is in use or when it is off. The default value is AVCaptureVideoStabilizationModeOff. When setting this property to AVCaptureVideoStabilizationModeAuto, an appropriate stabilization mode will be chosen based on the format and frame rate. For apps linked before iOS 6.0, the default value is AVCaptureVideoStabilizationModeStandard for a video connection attached to an AVCaptureMovieFileOutput instance. For apps linked on or after iOS 6.0, the default value is always AVCaptureVideoStabilizationModeOff. Setting a video stabilization mode using this property may change the value of enablesVideoStabilizationWhenAvailable.
      • setAutomaticallyAdjustsVideoMirroring

        public void setAutomaticallyAdjustsVideoMirroring​(boolean value)
        [@property] automaticallyAdjustsVideoMirroring Specifies whether or not the value of @"videoMirrored" can change based on configuration of the session. For some session configurations, video data flowing through the connection will be mirrored by default. When the value of this property is YES, the value of @"videoMirrored" may change depending on the configuration of the session, for example after switching to a different AVCaptureDeviceInput. The default value is YES.
      • setEnablesVideoStabilizationWhenAvailable

        @Deprecated
        public void setEnablesVideoStabilizationWhenAvailable​(boolean value)
        Deprecated.
        [@property] enablesVideoStabilizationWhenAvailable Indicates whether stabilization should be applied to video flowing through the receiver when the feature is available. This property is only applicable to AVCaptureConnection instances involving video. On devices where the video stabilization feature is supported, only a subset of available source formats and resolutions may be available for stabilization. By setting the enablesVideoStabilizationWhenAvailable property to YES, video flowing through the receiver is stabilized when available. Enabling video stabilization may introduce additional latency into the video capture pipeline. Clients may key-value observe the videoStabilizationEnabled property to know when stabilization is in use or not. The default value is NO. For apps linked before iOS 6.0, the default value is YES for a video connection attached to an AVCaptureMovieFileOutput instance. For apps linked on or after iOS 6.0, the default value is always NO. This property is deprecated. Use preferredVideoStabilizationMode instead.
      • setPreferredVideoStabilizationMode

        public void setPreferredVideoStabilizationMode​(long value)
        [@property] preferredVideoStabilizationMode Indicates the stabilization mode to apply to video flowing through the receiver when it is supported. This property is only applicable to AVCaptureConnection instances involving video. On devices where the video stabilization feature is supported, only a subset of available source formats may be available for stabilization. By setting the preferredVideoStabilizationMode property to a value other than AVCaptureVideoStabilizationModeOff, video flowing through the receiver is stabilized when the mode is available. Enabling video stabilization introduces additional latency into the video capture pipeline and may consume more system memory depending on the stabilization mode and format. If the preferred stabilization mode isn't available, the activeVideoStabilizationMode will be set to AVCaptureVideoStabilizationModeOff. Clients may key-value observe the activeVideoStabilizationMode property to know which stabilization mode is in use or when it is off. The default value is AVCaptureVideoStabilizationModeOff. When setting this property to AVCaptureVideoStabilizationModeAuto, an appropriate stabilization mode will be chosen based on the format and frame rate. For apps linked before iOS 6.0, the default value is AVCaptureVideoStabilizationModeStandard for a video connection attached to an AVCaptureMovieFileOutput instance. For apps linked on or after iOS 6.0, the default value is always AVCaptureVideoStabilizationModeOff. Setting a video stabilization mode using this property may change the value of enablesVideoStabilizationWhenAvailable.
      • setVideoMaxFrameDuration

        @Deprecated
        public void setVideoMaxFrameDuration​(CMTime value)
        Deprecated.
        [@property] videoMaxFrameDuration Indicates the maximum time interval at which the receiver should output consecutive video frames. The value of this property is a CMTime specifying the maximum duration of each video frame output by the receiver, placing an upper bound on the amount of time that should separate consecutive frames. This is equivalent to the reciprocal of the minimum frame rate. A value of kCMTimeZero or kCMTimeInvalid indicates an unlimited minimum frame rate. The default value is kCMTimeInvalid. This property is deprecated on iOS, where min and max frame rate adjustments are applied exclusively at the AVCaptureDevice using the activeVideoMinFrameDuration and activeVideoMaxFrameDuration properties. On Mac OS X, frame rate adjustments are supported both at the AVCaptureDevice and at AVCaptureConnection, enabling connections to output different frame rates.
      • setVideoMinFrameDuration

        @Deprecated
        public void setVideoMinFrameDuration​(CMTime value)
        Deprecated.
        [@property] videoMinFrameDuration Indicates the minimum time interval at which the receiver should output consecutive video frames. The value of this property is a CMTime specifying the minimum duration of each video frame output by the receiver, placing a lower bound on the amount of time that should separate consecutive frames. This is equivalent to the reciprocal of the maximum frame rate. A value of kCMTimeZero or kCMTimeInvalid indicates an unlimited maximum frame rate. The default value is kCMTimeInvalid. This property is deprecated on iOS, where min and max frame rate adjustments are applied exclusively at the AVCaptureDevice using the activeVideoMinFrameDuration and activeVideoMaxFrameDuration properties. On Mac OS X, frame rate adjustments are supported both at the AVCaptureDevice and at AVCaptureConnection, enabling connections to output different frame rates.
      • setVideoOrientation

        public void setVideoOrientation​(long value)
        [@property] videoOrientation Indicates whether the video flowing through the connection should be rotated to a given orientation. This property is only applicable to AVCaptureConnection instances involving video. If -isVideoOrientationSupported returns YES, videoOrientation may be set to rotate the video buffers being consumed by the connection's output. Note that setting videoOrientation does not necessarily result in a physical rotation of video buffers. For instance, a video connection to an AVCaptureMovieFileOutput handles orientation using a Quicktime track matrix. In the AVCaptureStillImageOutput, orientation is handled using Exif tags.
      • setVideoScaleAndCropFactor

        public void setVideoScaleAndCropFactor​(double value)
        [@property] videoScaleAndCropFactor Indicates the current video scale and crop factor in use by the receiver. This property only applies to AVCaptureStillImageOutput connections. In such connections, the videoScaleAndCropFactor property may be set to a value in the range of 1.0 to videoMaxScaleAndCropFactor. At a factor of 1.0, the image is its original size. At a factor greater than 1.0, the image is scaled by the factor and center-cropped to its original dimensions. This factor is applied in addition to any magnification from AVCaptureDevice's videoZoomFactor property.
      • videoMaxFrameDuration

        @Deprecated
        public CMTime videoMaxFrameDuration()
        Deprecated.
        [@property] videoMaxFrameDuration Indicates the maximum time interval at which the receiver should output consecutive video frames. The value of this property is a CMTime specifying the maximum duration of each video frame output by the receiver, placing an upper bound on the amount of time that should separate consecutive frames. This is equivalent to the reciprocal of the minimum frame rate. A value of kCMTimeZero or kCMTimeInvalid indicates an unlimited minimum frame rate. The default value is kCMTimeInvalid. This property is deprecated on iOS, where min and max frame rate adjustments are applied exclusively at the AVCaptureDevice using the activeVideoMinFrameDuration and activeVideoMaxFrameDuration properties. On Mac OS X, frame rate adjustments are supported both at the AVCaptureDevice and at AVCaptureConnection, enabling connections to output different frame rates.
      • videoMaxScaleAndCropFactor

        public double videoMaxScaleAndCropFactor()
        [@property] videoMaxScaleAndCropFactor Indicates the maximum video scale and crop factor supported by the receiver. This property is only applicable to AVCaptureConnection instances involving video. In such connections, the videoMaxScaleAndCropFactor property specifies the maximum CGFloat value that may be used when setting the videoScaleAndCropFactor property.
      • videoMinFrameDuration

        @Deprecated
        public CMTime videoMinFrameDuration()
        Deprecated.
        [@property] videoMinFrameDuration Indicates the minimum time interval at which the receiver should output consecutive video frames. The value of this property is a CMTime specifying the minimum duration of each video frame output by the receiver, placing a lower bound on the amount of time that should separate consecutive frames. This is equivalent to the reciprocal of the maximum frame rate. A value of kCMTimeZero or kCMTimeInvalid indicates an unlimited maximum frame rate. The default value is kCMTimeInvalid. This property is deprecated on iOS, where min and max frame rate adjustments are applied exclusively at the AVCaptureDevice using the activeVideoMinFrameDuration and activeVideoMaxFrameDuration properties. On Mac OS X, frame rate adjustments are supported both at the AVCaptureDevice and at AVCaptureConnection, enabling connections to output different frame rates.
      • videoOrientation

        public long videoOrientation()
        [@property] videoOrientation Indicates whether the video flowing through the connection should be rotated to a given orientation. This property is only applicable to AVCaptureConnection instances involving video. If -isVideoOrientationSupported returns YES, videoOrientation may be set to rotate the video buffers being consumed by the connection's output. Note that setting videoOrientation does not necessarily result in a physical rotation of video buffers. For instance, a video connection to an AVCaptureMovieFileOutput handles orientation using a Quicktime track matrix. In the AVCaptureStillImageOutput, orientation is handled using Exif tags.
      • videoPreviewLayer

        public AVCaptureVideoPreviewLayer videoPreviewLayer()
        [@property] videoPreviewLayer The AVCaptureVideoPreviewLayer instance consuming data from this connection's inputPort. An AVCaptureConnection may involve one AVCaptureInputPort producing data to an AVCaptureVideoPreviewLayer object. This property is read-only. An AVCaptureConnection's videoPreviewLayer remains static for the life of the object. Note that a connection can either be to an output or a video preview layer, but never to both.
      • videoScaleAndCropFactor

        public double videoScaleAndCropFactor()
        [@property] videoScaleAndCropFactor Indicates the current video scale and crop factor in use by the receiver. This property only applies to AVCaptureStillImageOutput connections. In such connections, the videoScaleAndCropFactor property may be set to a value in the range of 1.0 to videoMaxScaleAndCropFactor. At a factor of 1.0, the image is its original size. At a factor greater than 1.0, the image is scaled by the factor and center-cropped to its original dimensions. This factor is applied in addition to any magnification from AVCaptureDevice's videoZoomFactor property.
      • isCameraIntrinsicMatrixDeliveryEnabled

        public boolean isCameraIntrinsicMatrixDeliveryEnabled()
        [@property] cameraIntrinsicMatrixDeliveryEnabled Indicates whether camera intrinsic matrix delivery should be enabled. This property is only applicable to AVCaptureConnection instances involving video. Refer to property cameraIntrinsicMatrixDeliverySupported before setting this property. When this property is set to YES, the receiver's output will add the kCMSampleBufferAttachmentKey_CameraIntrinsicMatrix sample buffer attachment to all vended sample buffers. This property must be set before the session starts running.
      • isCameraIntrinsicMatrixDeliverySupported

        public boolean isCameraIntrinsicMatrixDeliverySupported()
        [@property] cameraIntrinsicMatrixDeliverySupported Indicates whether the connection supports camera intrinsic matrix delivery. This property is only applicable to AVCaptureConnection instances involving video. In such connections, the cameraIntrinsicMatrixDeliveryEnabled property may only be set to YES if - isCameraIntrinsicMatrixDeliverySupported returns YES. This property returns YES if both the connection's input device format and the connection's output support camera intrinsic matrix delivery. Only the AVCaptureVideoDataOutput's connection supports this property. Note that if video stabilization is enabled (preferredVideoStabilizationMode is set to something other than AVCaptureVideoStabilizationModeOff), camera intrinsic matrix delivery is not supported. When streaming video data from a virtual camera with geometricDistortionCorrectionEnabled, camera intrinsics are only delivered with video buffers on which distortion correction is not applied. You may query the virtual camera's constituentDevices property to discover which of them support geometric distortion correction.
      • setCameraIntrinsicMatrixDeliveryEnabled

        public void setCameraIntrinsicMatrixDeliveryEnabled​(boolean value)
        [@property] cameraIntrinsicMatrixDeliveryEnabled Indicates whether camera intrinsic matrix delivery should be enabled. This property is only applicable to AVCaptureConnection instances involving video. Refer to property cameraIntrinsicMatrixDeliverySupported before setting this property. When this property is set to YES, the receiver's output will add the kCMSampleBufferAttachmentKey_CameraIntrinsicMatrix sample buffer attachment to all vended sample buffers. This property must be set before the session starts running.