fun getProcessedFrame()

in amazon-chime-sdk/src/main/java/com/amazonaws/services/chime/sdk/meetings/audiovideo/video/backgroundfilter/BackgroundFilterVideoFrameProcessor.kt [121:144]


    fun getProcessedFrame(
        frame: VideoFrame,
        filteredBitmap: Bitmap?,
        rgbaData: ByteBuffer
    ): VideoFrame {
        var filteredByteBuffer: ByteBuffer
        if (filteredBitmap == null) {
            // Display original frame when there is an error getting segmentation mask and/or blurring.
            filteredByteBuffer = rgbaData
        } else {
            filteredByteBuffer =
                JniUtil.nativeAllocateByteBuffer(frame.getRotatedWidth() * frame.getRotatedHeight() * channels)
            filteredBitmap.copyPixelsToBuffer(filteredByteBuffer)
            filteredByteBuffer.position(0)
        }
        val rgbaBuffer =
            VideoFrameRGBABuffer(
                frame.getRotatedWidth(),
                frame.getRotatedHeight(),
                filteredByteBuffer,
                frame.getRotatedWidth() * channels,
                Runnable { JniUtil.nativeFreeByteBuffer(filteredByteBuffer) })
        return VideoFrame(frame.timestampNs, rgbaBuffer)
    }