Package com.telnyx.webrtc.lib
Class TextureBufferImpl
java.lang.Object
com.telnyx.webrtc.lib.TextureBufferImpl
- All Implemented Interfaces:
RefCounted,VideoFrame.Buffer,VideoFrame.TextureBuffer
Android texture buffer that glues together the necessary information together with a generic
release callback. ToI420() is implemented by providing a Handler and a YuvConverter.
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.telnyx.webrtc.lib.VideoFrame.TextureBuffer
VideoFrame.TextureBuffer.Type -
Constructor Summary
ConstructorsConstructorDescriptionTextureBufferImpl(int width, int height, VideoFrame.TextureBuffer.Type type, int id, Matrix transformMatrix, Handler toI420Handler, YuvConverter yuvConverter, Runnable releaseCallback) -
Method Summary
Modifier and TypeMethodDescriptionapplyTransformMatrix(Matrix transformMatrix, int newWidth, int newHeight) Create a new TextureBufferImpl with an applied transform matrix and a new size.cropAndScale(int cropX, int cropY, int cropWidth, int cropHeight, int scaleWidth, int scaleHeight) Crops a region defined by `cropx`, `cropY`, `cropWidth` and `cropHeight`.intintRetrieve the transform matrix associated with the frame.getType()intReturns the height of the texture in memory.intReturns the width of the texture in memory.intgetWidth()Resolution of the buffer in pixels.voidrelease()Decreases ref count by one.voidretain()Increases ref count by one.toI420()Returns a memory-backed frame in I420 format.Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.telnyx.webrtc.lib.VideoFrame.Buffer
getBufferType
-
Constructor Details
-
TextureBufferImpl
public TextureBufferImpl(int width, int height, VideoFrame.TextureBuffer.Type type, int id, Matrix transformMatrix, Handler toI420Handler, YuvConverter yuvConverter, @Nullable Runnable releaseCallback)
-
-
Method Details
-
getType
- Specified by:
getTypein interfaceVideoFrame.TextureBuffer
-
getTextureId
public int getTextureId()- Specified by:
getTextureIdin interfaceVideoFrame.TextureBuffer
-
getTransformMatrix
Description copied from interface:VideoFrame.TextureBufferRetrieve the transform matrix associated with the frame. This transform matrix maps 2D homogeneous coordinates of the form (s, t, 1) with s and t in the inclusive range [0, 1] to the coordinate that should be used to sample that location from the buffer.- Specified by:
getTransformMatrixin interfaceVideoFrame.TextureBuffer
-
getWidth
public int getWidth()Description copied from interface:VideoFrame.BufferResolution of the buffer in pixels.- Specified by:
getWidthin interfaceVideoFrame.Buffer
-
getHeight
public int getHeight()- Specified by:
getHeightin interfaceVideoFrame.Buffer
-
toI420
Description copied from interface:VideoFrame.BufferReturns a memory-backed frame in I420 format. If the pixel data is in another format, a conversion will take place. All implementations must provide a fallback to I420 for compatibility with e.g. the internal WebRTC software encoders.Conversion may fail, for example if reading the pixel data from a texture fails. If the conversion fails, null is returned.
- Specified by:
toI420in interfaceVideoFrame.Buffer
-
retain
public void retain()Description copied from interface:RefCountedIncreases ref count by one.- Specified by:
retainin interfaceRefCounted- Specified by:
retainin interfaceVideoFrame.Buffer
-
release
public void release()Description copied from interface:RefCountedDecreases ref count by one. When the ref count reaches zero, resources related to the object will be freed.- Specified by:
releasein interfaceRefCounted- Specified by:
releasein interfaceVideoFrame.Buffer
-
cropAndScale
public VideoFrame.Buffer cropAndScale(int cropX, int cropY, int cropWidth, int cropHeight, int scaleWidth, int scaleHeight) Description copied from interface:VideoFrame.BufferCrops a region defined by `cropx`, `cropY`, `cropWidth` and `cropHeight`. Scales it to size `scaleWidth` x `scaleHeight`.- Specified by:
cropAndScalein interfaceVideoFrame.Buffer
-
getUnscaledWidth
public int getUnscaledWidth()Description copied from interface:VideoFrame.TextureBufferReturns the width of the texture in memory. This should only be used for downscaling, and you should still respect the width from getWidth().- Specified by:
getUnscaledWidthin interfaceVideoFrame.TextureBuffer
-
getUnscaledHeight
public int getUnscaledHeight()Description copied from interface:VideoFrame.TextureBufferReturns the height of the texture in memory. This should only be used for downscaling, and you should still respect the height from getHeight().- Specified by:
getUnscaledHeightin interfaceVideoFrame.TextureBuffer
-
getToI420Handler
-
getYuvConverter
-
applyTransformMatrix
Create a new TextureBufferImpl with an applied transform matrix and a new size. The existing buffer is unchanged. The given transform matrix is applied first when texture coordinates are still in the unmodified [0, 1] range.- Specified by:
applyTransformMatrixin interfaceVideoFrame.TextureBuffer
-