public byte[] convertBufferedImageToJPEGData(BufferedImage bufferedImage) { try { YUVPicture picture = converter.fromBufferedImage(bufferedImage, YUVSubsamplingType.YUV420); ByteBuffer buffer = encoder.encode(picture, 75); byte[] data = new byte[buffer.remaining()]; buffer.get(data); return data; } catch (IOException e) { e.printStackTrace(); return null; } } }
@Override public void encodeFrame(BufferedImage frame) throws IOException { YUVPicture picture = converter.fromBufferedImage(frame, YUVSubsamplingType.YUV420); encodeFrame(picture); picture.delete(); }
@Override public void encodeFrame(BufferedImage frame) throws IOException { YUVPicture picture = converter.fromBufferedImage(frame, YUVSubsamplingType.YUV420); encodeFrame(picture); picture.delete(); }
@Override public void updateImage(VideoSource videoSource, BufferedImage bufferedImage, long timeStamp, Point3d cameraPosition, Quat4d cameraOrientation, IntrinsicParameters intrinsicParameters) { YUVPicture picture = converter.fromBufferedImage(bufferedImage, YUVSubsamplingType.YUV420); try { ByteBuffer buffer; synchronized (hackyLockBecauseJPEGEncoderIsNotThreadsafe) { buffer = encoder.encode(picture, 75); } byte[] data = new byte[buffer.remaining()]; buffer.get(data); handler.newVideoPacketAvailable(videoSource, timeStamp, data, cameraPosition, cameraOrientation, intrinsicParameters); } catch (IOException e) { e.printStackTrace(); } picture.delete(); }
@Override public void encodeFrame(BufferedImage frame) throws IOException { if(converter == null) { converter = new YUVPictureConverter(); } YUVPicture pic = converter.fromBufferedImage(frame, YUVSubsamplingType.YUV420); encodeFrame(pic); pic.delete(); }
@Override public void encodeFrame(BufferedImage frame) throws IOException { if(converter == null) { converter = new YUVPictureConverter(); } YUVPicture pic = converter.fromBufferedImage(frame, YUVSubsamplingType.YUV420); encodeFrame(pic); pic.delete(); }
YUVPicture frame = converter.fromBufferedImage(bufferedImage, YUVSubsamplingType.YUV420); frame.scale(desiredEvenHorizontalResolution, desiredEvenVerticalResolution, FilterModeEnum.kFilterBilinear); try