Class SurfaceSource

  • Direct Known Subclasses:
    CameraSource, CustomImageSource

    public class SurfaceSource
    extends ImageDevice
    An image source backed by an Android Surface. This may be used with inputs such as a Camera2 producer, OpenGL ES or Vulkan, or a MediaProjection. See also Session.createImageInputSource()
    • Field Detail

      • handle

        protected long handle
      • context

        protected android.content.Context context
      • shouldRotateOnConfigurationChanges

        protected boolean shouldRotateOnConfigurationChanges
    • Constructor Detail

      • SurfaceSource

        protected SurfaceSource​(android.content.Context context,
                                android.view.Surface inputSurface,
                                android.graphics.SurfaceTexture inputSurfaceTexture,
                                android.os.Handler handler,
                                java.lang.String tag,
                                long handle)
    • Method Detail

      • getInputSurface

        public android.view.Surface getInputSurface()
        Retrieving this Surface can be done from any thread, but API calls on the Surface may not be thread safe.
        Returns:
        The input surface to be attached to some image producer such as a camera or opengl context
      • setSize

        public void setSize​(int width,
                            int height)
        Set the size of the surface
        Parameters:
        width - width in pixels
        height - height in pixels
      • isValid

        public boolean isValid()
        Specified by:
        isValid in class Device
      • getTag

        public java.lang.String getTag()
        Specified by:
        getTag in class Device
      • setRotation

        public void setRotation​(float rotation)
        Description copied from class: ImageDevice
        Sets the rotation of the ImageDevice.
        Specified by:
        setRotation in class ImageDevice
        Parameters:
        rotation - Rotation in radians
      • rotateOnConfigurationChanges

        public void rotateOnConfigurationChanges​(boolean enable)
        Description copied from class: ImageDevice
        Enables/disables rotations of this ImageDevice when the physical device is rotated. When this is enabled, the image source will be rotated to match configuration changes. This is often useful with camera devices, for example. When this is disabled, the image source will not be rotated to match configuration changes. This is often useful for custom image sources or if the camera ought to be locked to a particular orientation to match the application.
        Specified by:
        rotateOnConfigurationChanges in class ImageDevice
        Parameters:
        enable - Whether this device should rotate on configuration changes (e.g. when the physical device is rotated).
      • willRotateOnConfigurationChanges

        public boolean willRotateOnConfigurationChanges()
        Specified by:
        willRotateOnConfigurationChanges in class ImageDevice
        Returns:
        Whether this ImageDevice will rotate on configuration changes.
      • getHandle

        protected long getHandle()