Package com.amazonaws.ivs.broadcast
Class SurfaceSource
- java.lang.Object
-
- com.amazonaws.ivs.broadcast.Device
-
- com.amazonaws.ivs.broadcast.ImageDevice
-
- com.amazonaws.ivs.broadcast.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 alsoSession.createImageInputSource()
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.amazonaws.ivs.broadcast.ImageDevice
ImageDevice.FrameCallback, ImageDevice.Rotation
-
Nested classes/interfaces inherited from class com.amazonaws.ivs.broadcast.Device
Device.Descriptor
-
-
Field Summary
Fields Modifier and Type Field Description protected android.content.Contextcontextprotected longhandleprotected booleanshouldRotateOnConfigurationChanges
-
Constructor Summary
Constructors Modifier Constructor Description protectedSurfaceSource(android.content.Context context, android.view.Surface inputSurface, android.graphics.SurfaceTexture inputSurfaceTexture, android.os.Handler handler, java.lang.String tag, long handle)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Device.DescriptorgetDescriptor()protected longgetHandle()android.view.SurfacegetInputSurface()Retrieving this Surface can be done from any thread, but API calls on the Surface may not be thread safe.ImagePreviewViewgetPreviewView()Gets aImagePreviewViewthat will display a preview of this device's contents.ImagePreviewViewgetPreviewView(BroadcastConfiguration.AspectMode aspectMode)java.lang.StringgetTag()booleanisValid()voidrotateOnConfigurationChanges(boolean enable)Enables/disables rotations of this ImageDevice when the physical device is rotated.voidsetOnFrameCallback(ImageDevice.FrameCallback callback)Set a callback to receive information about image frames as they move through this device.voidsetRotation(float rotation)Sets the rotation of the ImageDevice.voidsetSize(int width, int height)Set the size of the surfacebooleanwillRotateOnConfigurationChanges()-
Methods inherited from class com.amazonaws.ivs.broadcast.ImageDevice
setRotation
-
-
-
-
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 pixelsheight- height in pixels
-
getDescriptor
public Device.Descriptor getDescriptor()
- Specified by:
getDescriptorin classDevice
-
getPreviewView
public ImagePreviewView getPreviewView()
Description copied from class:ImageDeviceGets aImagePreviewViewthat will display a preview of this device's contents. Warning: Using manyImagePreviewViewsat once may result in performance degradation.- Specified by:
getPreviewViewin classImageDevice
-
getPreviewView
public ImagePreviewView getPreviewView(BroadcastConfiguration.AspectMode aspectMode)
- Specified by:
getPreviewViewin classImageDevice
-
setOnFrameCallback
public void setOnFrameCallback(@Nullable ImageDevice.FrameCallback callback)Description copied from class:ImageDeviceSet a callback to receive information about image frames as they move through this device. This will be called on the main thread.- Specified by:
setOnFrameCallbackin classImageDevice- Parameters:
callback- A callback lambda that takes aImageDeviceFrame.
-
setRotation
public void setRotation(float rotation)
Description copied from class:ImageDeviceSets the rotation of the ImageDevice.- Specified by:
setRotationin classImageDevice- Parameters:
rotation- Rotation in radians
-
rotateOnConfigurationChanges
public void rotateOnConfigurationChanges(boolean enable)
Description copied from class:ImageDeviceEnables/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:
rotateOnConfigurationChangesin classImageDevice- Parameters:
enable- Whether this device should rotate on configuration changes (e.g. when the physical device is rotated).
-
willRotateOnConfigurationChanges
public boolean willRotateOnConfigurationChanges()
- Specified by:
willRotateOnConfigurationChangesin classImageDevice- Returns:
- Whether this ImageDevice will rotate on configuration changes.
-
getHandle
protected long getHandle()
-
-