Package tvi.webrtc

Class JavaI420Buffer

    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static JavaI420Buffer allocate​(int width, int height)
      Allocates an empty I420Buffer suitable for an image of the given dimensions.
      VideoFrame.Buffer cropAndScale​(int cropX, int cropY, int cropWidth, int cropHeight, int scaleWidth, int scaleHeight)
      Crops a region defined by |cropx|, |cropY|, |cropWidth| and |cropHeight|.
      static VideoFrame.Buffer cropAndScaleI420​(VideoFrame.I420Buffer buffer, int cropX, int cropY, int cropWidth, int cropHeight, int scaleWidth, int scaleHeight)  
      java.nio.ByteBuffer getDataU()
      Returns a direct ByteBuffer containing U-plane data.
      java.nio.ByteBuffer getDataV()
      Returns a direct ByteBuffer containing V-plane data.
      java.nio.ByteBuffer getDataY()
      Returns a direct ByteBuffer containing Y-plane data.
      int getHeight()  
      int getStrideU()  
      int getStrideV()  
      int getStrideY()  
      int getWidth()
      Resolution of the buffer in pixels.
      void release()
      Decreases ref count by one.
      void retain()
      Increases ref count by one.
      VideoFrame.I420Buffer toI420()
      Returns a memory-backed frame in I420 format.
      static JavaI420Buffer wrap​(int width, int height, java.nio.ByteBuffer dataY, int strideY, java.nio.ByteBuffer dataU, int strideU, java.nio.ByteBuffer dataV, int strideV, java.lang.Runnable releaseCallback)
      Wraps existing ByteBuffers into JavaI420Buffer object without copying the contents.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • wrap

        public static JavaI420Buffer wrap​(int width,
                                          int height,
                                          java.nio.ByteBuffer dataY,
                                          int strideY,
                                          java.nio.ByteBuffer dataU,
                                          int strideU,
                                          java.nio.ByteBuffer dataV,
                                          int strideV,
                                          @Nullable
                                          java.lang.Runnable releaseCallback)
        Wraps existing ByteBuffers into JavaI420Buffer object without copying the contents.
      • allocate

        public static JavaI420Buffer allocate​(int width,
                                              int height)
        Allocates an empty I420Buffer suitable for an image of the given dimensions.
      • getDataY

        public java.nio.ByteBuffer getDataY()
        Description copied from interface: VideoFrame.I420Buffer
        Returns a direct ByteBuffer containing Y-plane data. The buffer capacity is at least getStrideY() * getHeight() bytes. The position of the returned buffer is ignored and must be 0. Callers may mutate the ByteBuffer (eg. through relative-read operations), so implementations must return a new ByteBuffer or slice for each call.
        Specified by:
        getDataY in interface VideoFrame.I420Buffer
      • getDataU

        public java.nio.ByteBuffer getDataU()
        Description copied from interface: VideoFrame.I420Buffer
        Returns a direct ByteBuffer containing U-plane data. The buffer capacity is at least getStrideU() * ((getHeight() + 1) / 2) bytes. The position of the returned buffer is ignored and must be 0. Callers may mutate the ByteBuffer (eg. through relative-read operations), so implementations must return a new ByteBuffer or slice for each call.
        Specified by:
        getDataU in interface VideoFrame.I420Buffer
      • getDataV

        public java.nio.ByteBuffer getDataV()
        Description copied from interface: VideoFrame.I420Buffer
        Returns a direct ByteBuffer containing V-plane data. The buffer capacity is at least getStrideV() * ((getHeight() + 1) / 2) bytes. The position of the returned buffer is ignored and must be 0. Callers may mutate the ByteBuffer (eg. through relative-read operations), so implementations must return a new ByteBuffer or slice for each call.
        Specified by:
        getDataV in interface VideoFrame.I420Buffer
      • 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.
        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
      • cropAndScaleI420

        public static VideoFrame.Buffer cropAndScaleI420​(VideoFrame.I420Buffer buffer,
                                                         int cropX,
                                                         int cropY,
                                                         int cropWidth,
                                                         int cropHeight,
                                                         int scaleWidth,
                                                         int scaleHeight)