@Override public void write(int[] data) { if (flipImage) { int[] buffer = new int[data.length]; for (int y = 0; y < data.length; y += width) { for (int x = w - 1; x >= 0; x -= 1) { buffer[y + x] = data[y + width - 1 - x]; } } data = buffer; } if (devFD != 0) { byte[] buffer = null; switch (pixFormat) { case RGB24: buffer = img2rgb24(data); break; case UYVY: buffer = img2uyvy(data); break; } int countWritten = 0; countWritten = CV4l2.INSTANCE.writeData(devFD, buffer, buffer.length); if (countWritten != buffer.length) { System.out.println("Error Writing Data - " + countWritten); } } }
@Override public void open(String path, int w, int h, int pixFormat) { width = w; height = h; devicePath = path; V4L2Loopback.pixFormat = pixFormat; devFD = CV4l2.INSTANCE.open_device(devicePath, w, h, pixFormat); if (devFD <= 0) { System.out.println("Error Opening Device"); } }
@Override public void close() { CV4l2.INSTANCE.close_device(devFD); }