android-webrtc-usb-camera
android-webrtc-usb-camera copied to clipboard
capturerObserver.onByteBufferFrameCaptured has been removed
It seems that capturerObserver.onByteBufferFrameCaptured has been removed. How can I use uvc camera with webrtc now?
I combine this with react-native-webrtc, and I solve it by the code below, but the output seem like rgb bgr inverted
@Override
public void onFrame(ByteBuffer frame) {
executor.execute(new Runnable() {
@Override
public void run() {
byte[] imageArray = new byte[frame.remaining()];
frame.get(imageArray);
Long imageTime = System.currentTimeMillis();
VideoFrame.Buffer mNV21Buffer = new NV21Buffer(imageArray, 1280, 720, null);
VideoFrame mVideoFrame = new VideoFrame(mNV21Buffer, 0, imageTime);
capturerObserver.onFrameCaptured(mVideoFrame);
}
});
}
Hi @yhchi I have also encountered this problem. Have you solved it? Can you share your solution
Thanks!
I solve it by the code below: VideofFrame needs a timestamp in nanoseconds.
byte[] imageArray = new byte[frame.remaining()]; frame.get(imageArray); //without this line only a green image was transferred long timestampNS = System.nanoTime(); NV21Buffer buffer = new NV21Buffer(imageArray, UVCCamera.DEFAULT_PREVIEW_WIDTH, UVCCamera.DEFAULT_PREVIEW_HEIGHT, null); VideoFrame videoFrame = new VideoFrame(buffer, 0, timestampNS); capturerObserver.onFrameCaptured(videoFrame);
and use camera.setFrameCallback(UsbCapturer.this, UVCCamera.PIXEL_FORMAT_YUV420SP);