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
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()-
Nested Class Summary
Nested classes/interfaces inherited from class com.amazonaws.ivs.broadcast.ImageDevice
ImageDevice.FrameCallback, ImageDevice.RotationNested classes/interfaces inherited from class com.amazonaws.ivs.broadcast.Device
Device.Descriptor -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected android.content.Contextprotected longprotected boolean -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedSurfaceSource(android.content.Context context, android.view.Surface inputSurface, android.graphics.SurfaceTexture inputSurfaceTexture, android.os.Handler handler, String tag, long handle, boolean repeat) -
Method Summary
Modifier and TypeMethodDescriptionprotected longandroid.view.SurfaceRetrieving this Surface can be done from any thread, but API calls on the Surface may not be thread safe.getTag()booleanisValid()protected voidvoidrotateOnConfigurationChanges(boolean enable) Enables/disables rotations of this ImageDevice when the physical device is rotated.protected voidsetInputSurface(android.view.Surface inputSurface, android.graphics.SurfaceTexture inputSurfaceTexture) 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 surfacebooleanMethods inherited from class com.amazonaws.ivs.broadcast.ImageDevice
getPreviewSurfaceTarget, getPreviewSurfaceView, getPreviewTextureView, getPreviewView, getPreviewView, setRotation
-
Field Details
-
handle
protected long handle -
context
protected android.content.Context context -
shouldRotateOnConfigurationChanges
protected boolean shouldRotateOnConfigurationChanges
-
-
Constructor Details
-
SurfaceSource
protected SurfaceSource(@NonNull android.content.Context context, @Nullable android.view.Surface inputSurface, @Nullable android.graphics.SurfaceTexture inputSurfaceTexture, @NonNull android.os.Handler handler, String tag, long handle, boolean repeat)
-
-
Method Details
-
getInputSurface
@Nullable 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
- Specified by:
getDescriptorin classDevice
-
getPreviewTextureView
- Specified by:
getPreviewTextureViewin classImageDevice
-
getPreviewSurfaceView
- Specified by:
getPreviewSurfaceViewin classImageDevice
-
getPreviewSurfaceTarget
public ImagePreviewSurfaceTarget getPreviewSurfaceTarget(BroadcastConfiguration.AspectMode aspectMode) - Specified by:
getPreviewSurfaceTargetin classImageDevice
-
setOnFrameCallback
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.
-
isValid
public boolean isValid() -
getTag
-
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() -
setInputSurface
protected void setInputSurface(@Nullable android.view.Surface inputSurface, @Nullable android.graphics.SurfaceTexture inputSurfaceTexture) -
postToMediaHandler
-