@Override public synchronized void close() { LOG.info("Closing device {}", this); if (open.compareAndSet(true, false)) { player.stop(); } }
@Override public synchronized void dispose() { if (!disposed.compareAndSet(false, true)) { return; } LOG.debug("Release resources (player={}, factory={})", player, factory); player.release(); factory.release(); }
@Override public void display(DirectMediaPlayer player, Memory[] buffers, BufferFormat format) { LOG.trace("Direct media player display invoked with format {}", format); // convert memory to image Converter converter = Converter.getConverter(format.getWidth(), format.getHeight()); BufferedImage image = converter.convert(buffers, format); imageRef.set(image); // calculate fps if (t1 == -1 || t2 == -1) { t1 = System.currentTimeMillis(); t2 = System.currentTimeMillis(); } t1 = t2; t2 = System.currentTimeMillis(); fps.set((4 * fps.get() + 1000 / (t2 - t1 + 1)) / 5); }
torus.setMinorRadius(height/40); }); return new RV32BufferFormat(width, height); ByteBuffer byteBuffer = nativeBuffer.getByteBuffer(0, nativeBuffer.size()); BufferFormat bufferFormat = ((DefaultDirectMediaPlayer) mediaPlayerComponent.getMediaPlayer()).getBufferFormat(); WritableImage textureImage = new WritableImage(bufferFormat.getWidth(), bufferFormat.getHeight()); if (bufferFormat.getWidth() > 0 && bufferFormat.getHeight() > 0) { textureImage.getPixelWriter().setPixels(0, 0, bufferFormat.getWidth(), bufferFormat.getHeight(), pixelFormat, byteBuffer, bufferFormat.getPitches()[0]); material.setDiffuseMap(textureImage);
ByteBuffer byteBuffer = nativeBuffer.getByteBuffer(0, nativeBuffer.size()); BufferFormat bufferFormat = ((DefaultDirectMediaPlayer) mediaPlayerComponent.getMediaPlayer()).getBufferFormat(); WritableImage textureImage = new WritableImage(bufferFormat.getWidth(), bufferFormat.getHeight()); if (bufferFormat.getWidth() > 0 && bufferFormat.getHeight() > 0) { textureImage.getPixelWriter().setPixels(0, 0, bufferFormat.getWidth(), bufferFormat.getHeight(), pixelFormat, byteBuffer, bufferFormat.getPitches()[0]); // apply new frame as texture image to the 3D shape's material material.setDiffuseMap(textureImage); }
final byte[] bytes = new byte[scanlineStride * format.getHeight()]; final byte[][] data = new byte[][] { bytes };
player.startMedia(getMRL(), options);