webkit  2cdf99a9e3038c7e01b3c37e8ad903ecbe5eecf1
https://github.com/WebKit/webkit
Public Member Functions | Protected Member Functions | List of all members
org.webrtc.SurfaceViewRenderer Class Reference
Inheritance diagram for org.webrtc.SurfaceViewRenderer:

Public Member Functions

 SurfaceViewRenderer (Context context)
 
 SurfaceViewRenderer (Context context, AttributeSet attrs)
 
void init (EglBase.Context sharedContext, RendererCommon.RendererEvents rendererEvents)
 
void init (final EglBase.Context sharedContext, RendererCommon.RendererEvents rendererEvents, final int[] configAttributes, RendererCommon.GlDrawer drawer)
 
void release ()
 
void addFrameListener (EglRenderer.FrameListener listener, float scale, final RendererCommon.GlDrawer drawer)
 
void addFrameListener (EglRenderer.FrameListener listener, float scale)
 
void removeFrameListener (EglRenderer.FrameListener listener)
 
void setEnableHardwareScaler (boolean enabled)
 
void setMirror (final boolean mirror)
 
void setScalingType (RendererCommon.ScalingType scalingType)
 
void setScalingType (RendererCommon.ScalingType scalingTypeMatchOrientation, RendererCommon.ScalingType scalingTypeMismatchOrientation)
 
void setFpsReduction (float fps)
 
void disableFpsReduction ()
 
void pauseVideo ()
 
void renderFrame (VideoRenderer.I420Frame frame)
 
void surfaceCreated (final SurfaceHolder holder)
 
void surfaceDestroyed (SurfaceHolder holder)
 
void surfaceChanged (SurfaceHolder holder, int format, int width, int height)
 
void clearImage ()
 

Protected Member Functions

void onMeasure (int widthSpec, int heightSpec)
 
void onLayout (boolean changed, int left, int top, int right, int bottom)
 

Detailed Description

Implements org.webrtc.VideoRenderer.Callbacks by displaying the video stream on a SurfaceView. renderFrame() is asynchronous to avoid blocking the calling thread. This class is thread safe and handles access from potentially four different threads: Interaction from the main app in init, release, setMirror, and setScalingtype. Interaction from C++ rtc::VideoSinkInterface in renderFrame. Interaction from the Activity lifecycle in surfaceCreated, surfaceChanged, and surfaceDestroyed. Interaction with the layout framework in onMeasure and onSizeChanged.

Constructor & Destructor Documentation

◆ SurfaceViewRenderer() [1/2]

org.webrtc.SurfaceViewRenderer.SurfaceViewRenderer ( Context  context)
inline

Standard View constructor. In order to render something, you must first call init().

◆ SurfaceViewRenderer() [2/2]

org.webrtc.SurfaceViewRenderer.SurfaceViewRenderer ( Context  context,
AttributeSet  attrs 
)
inline

Standard View constructor. In order to render something, you must first call init().

Member Function Documentation

◆ addFrameListener() [1/2]

void org.webrtc.SurfaceViewRenderer.addFrameListener ( EglRenderer.FrameListener  listener,
float  scale,
final RendererCommon.GlDrawer  drawer 
)
inline

Register a callback to be invoked when a new video frame has been received.

Parameters
listenerThe callback to be invoked.
scaleThe scale of the Bitmap passed to the callback, or 0 if no Bitmap is required.
drawerCustom drawer to use for this frame listener.

◆ addFrameListener() [2/2]

void org.webrtc.SurfaceViewRenderer.addFrameListener ( EglRenderer.FrameListener  listener,
float  scale 
)
inline

Register a callback to be invoked when a new video frame has been received. This version uses the drawer of the EglRenderer that was passed in init.

Parameters
listenerThe callback to be invoked.
scaleThe scale of the Bitmap passed to the callback, or 0 if no Bitmap is required.

◆ clearImage()

void org.webrtc.SurfaceViewRenderer.clearImage ( )
inline

Post a task to clear the SurfaceView to a transparent uniform color.

◆ disableFpsReduction()

void org.webrtc.SurfaceViewRenderer.disableFpsReduction ( )
inline

◆ init() [1/2]

void org.webrtc.SurfaceViewRenderer.init ( EglBase.Context  sharedContext,
RendererCommon.RendererEvents  rendererEvents 
)
inline

Initialize this class, sharing resources with |sharedContext|. It is allowed to call init() to reinitialize the renderer after a previous init()/release() cycle.

◆ init() [2/2]

void org.webrtc.SurfaceViewRenderer.init ( final EglBase.Context  sharedContext,
RendererCommon.RendererEvents  rendererEvents,
final int []  configAttributes,
RendererCommon.GlDrawer  drawer 
)
inline

Initialize this class, sharing resources with |sharedContext|. The custom |drawer| will be used for drawing frames on the EGLSurface. This class is responsible for calling release() on |drawer|. It is allowed to call init() to reinitialize the renderer after a previous init()/release() cycle.

◆ onLayout()

void org.webrtc.SurfaceViewRenderer.onLayout ( boolean  changed,
int  left,
int  top,
int  right,
int  bottom 
)
inlineprotected

◆ onMeasure()

void org.webrtc.SurfaceViewRenderer.onMeasure ( int  widthSpec,
int  heightSpec 
)
inlineprotected

◆ pauseVideo()

void org.webrtc.SurfaceViewRenderer.pauseVideo ( )
inline

◆ release()

void org.webrtc.SurfaceViewRenderer.release ( )
inline

Block until any pending frame is returned and all GL resources released, even if an interrupt occurs. If an interrupt occurs during release(), the interrupt flag will be set. This function should be called before the Activity is destroyed and the EGLContext is still valid. If you don't call this function, the GL resources might leak.

◆ removeFrameListener()

void org.webrtc.SurfaceViewRenderer.removeFrameListener ( EglRenderer.FrameListener  listener)
inline

◆ renderFrame()

void org.webrtc.SurfaceViewRenderer.renderFrame ( VideoRenderer.I420Frame  frame)
inline

◆ setEnableHardwareScaler()

void org.webrtc.SurfaceViewRenderer.setEnableHardwareScaler ( boolean  enabled)
inline

Enables fixed size for the surface. This provides better performance but might be buggy on some devices. By default this is turned off.

◆ setFpsReduction()

void org.webrtc.SurfaceViewRenderer.setFpsReduction ( float  fps)
inline

Limit render framerate.

Parameters
fpsLimit render framerate to this value, or use Float.POSITIVE_INFINITY to disable fps reduction.

◆ setMirror()

void org.webrtc.SurfaceViewRenderer.setMirror ( final boolean  mirror)
inline

Set if the video stream should be mirrored or not.

◆ setScalingType() [1/2]

void org.webrtc.SurfaceViewRenderer.setScalingType ( RendererCommon.ScalingType  scalingType)
inline

Set how the video will fill the allowed layout area.

◆ setScalingType() [2/2]

void org.webrtc.SurfaceViewRenderer.setScalingType ( RendererCommon.ScalingType  scalingTypeMatchOrientation,
RendererCommon.ScalingType  scalingTypeMismatchOrientation 
)
inline

◆ surfaceChanged()

void org.webrtc.SurfaceViewRenderer.surfaceChanged ( SurfaceHolder  holder,
int  format,
int  width,
int  height 
)
inline

◆ surfaceCreated()

void org.webrtc.SurfaceViewRenderer.surfaceCreated ( final SurfaceHolder  holder)
inline

◆ surfaceDestroyed()

void org.webrtc.SurfaceViewRenderer.surfaceDestroyed ( SurfaceHolder  holder)
inline

The documentation for this class was generated from the following file: