Package tvi.webrtc

Class TextureBufferImpl

    • Constructor Detail

      • TextureBufferImpl

        public TextureBufferImpl​(int width,
                                 int height,
                                 VideoFrame.TextureBuffer.Type type,
                                 int id,
                                 android.graphics.Matrix transformMatrix,
                                 android.os.Handler toI420Handler,
                                 YuvConverter yuvConverter,
                                 @Nullable
                                 java.lang.Runnable releaseCallback)
    • Method Detail

      • getTransformMatrix

        public android.graphics.Matrix getTransformMatrix()
        Description copied from interface: VideoFrame.TextureBuffer
        Retrieve 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:
        getTransformMatrix in interface VideoFrame.TextureBuffer
      • toI420

        public VideoFrame.I420Buffer toI420()
        Description copied from interface: VideoFrame.Buffer
        Returns 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:
        toI420 in interface VideoFrame.Buffer
      • release

        public void release()
        Description copied from interface: RefCounted
        Decreases ref count by one. When the ref count reaches zero, resources related to the object will be freed.
        Specified by:
        release in interface RefCounted
        Specified by:
        release in interface VideoFrame.Buffer
      • cropAndScale

        public VideoFrame.Buffer cropAndScale​(int cropX,
                                              int cropY,
                                              int cropWidth,
                                              int cropHeight,
                                              int scaleWidth,
                                              int scaleHeight)
        Description copied from interface: VideoFrame.Buffer
        Crops a region defined by `cropx`, `cropY`, `cropWidth` and `cropHeight`. Scales it to size `scaleWidth` x `scaleHeight`.
        Specified by:
        cropAndScale in interface VideoFrame.Buffer
      • getUnscaledWidth

        public int getUnscaledWidth()
        Returns the width of the texture in memory. This should only be used for downscaling, and you should still respect the width from getWidth().
      • getUnscaledHeight

        public int getUnscaledHeight()
        Returns the height of the texture in memory. This should only be used for downscaling, and you should still respect the height from getHeight().
      • getToI420Handler

        public android.os.Handler getToI420Handler()
      • applyTransformMatrix

        public TextureBufferImpl applyTransformMatrix​(android.graphics.Matrix transformMatrix,
                                                      int newWidth,
                                                      int newHeight)
        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.