if (i == 0) { outFrame.setKeyFrame(true); outFrame.setQuality(0); coder.encodeVideo(packet, outFrame, 0); outFrame.delete(); if (packet.isComplete()) { container.writePacket(packet);
final int w = picture.getWidth(); final int h = picture.getHeight(); final float[][] b = this.bimg.img.bands.get(2).pixels; picture.getDataCached().get(0, this.buffer, 0, this.buffer.length); for (int y = 0, i = 0; y < h; y++) { for (int x = 0; x < w; x++, i += 3) { } finally { if (resamplePicture != null) resamplePicture.delete(); if (ref.get() != null) ref.get().delete();
videoResampler = IVideoResampler.make(job.getCoderSettings().width, job.getCoderSettings().height, pic.getPixelType(), pic.getWidth(), pic.getHeight(), pic.getPixelType()); IVideoPicture out = IVideoPicture.make(pic.getPixelType(), mediaWidth, mediaHeight); videoResampler.resample(out, pic); super.onVideoPicture(asc); out.delete();
@Override public void onVideoPicture(IVideoPictureEvent event) { BufferedImage image = event.getImage(); if (image == null && videoConverter != null) { IVideoPicture eventPicture = event.getPicture(); videoResampler.resample(videoPicture, eventPicture); try { image = videoConverter.toImage(videoPicture); } catch (RuntimeException e) { if (videoPicture.getPixelType() == Type.YUYV422) { image = convertYUYV422toRGB(videoPicture.getWidth(), videoPicture.getHeight(), videoPicture.getByteBuffer()); } else { log.error(String.format("VideoListener.onVideoPicture: %s", videoPicture), e); } } } if (log.isDebugEnabled()) { log.debug(String.format("onVideoPicture event=%s, image=%s", event, image)); } if (image != null) { setCurrentVideoImage(image); } } }
/** * {@inheritDoc} * * @see com.xuggle.mediatool.MediaToolAdapter#onVideoPicture(com.xuggle.mediatool.event.IVideoPictureEvent) */ @Override public void onVideoPicture(final IVideoPictureEvent event) { // event.getPicture().getTimeStamp(); if (event.getStreamIndex() == XuggleVideo.this.streamIndex) { XuggleVideo.this.currentMBFImage = ((MBFImageWrapper) event.getImage()).img; XuggleVideo.this.currentFrameIsKeyFrame = event.getMediaData().isKeyFrame(); XuggleVideo.this.timestamp = (long) ((event.getPicture().getTimeStamp() * event.getPicture().getTimeBase().getDouble()) * 1000) + XuggleVideo.this.timestampOffset; XuggleVideo.this.currentFrameUpdated = true; } } }
final int w = picture.getWidth(); final int h = picture.getHeight(); final float[][] b = this.bimg.img.bands.get(2).pixels; picture.getDataCached().get(0, this.buffer, 0, this.buffer.length); for (int y = 0, i = 0; y < h; y++) { for (int x = 0; x < w; x++, i += 3) { } finally { if (resamplePicture != null) resamplePicture.delete(); if (ref.get() != null) ref.get().delete();
/** * {@inheritDoc} * * @see com.xuggle.mediatool.MediaToolAdapter#onVideoPicture(com.xuggle.mediatool.event.IVideoPictureEvent) */ @Override public void onVideoPicture(final IVideoPictureEvent event) { // event.getPicture().getTimeStamp(); if (event.getStreamIndex() == XuggleVideo.this.streamIndex) { XuggleVideo.this.currentMBFImage = ((MBFImageWrapper) event.getImage()).img; XuggleVideo.this.currentFrameIsKeyFrame = event.getMediaData().isKeyFrame(); XuggleVideo.this.timestamp = (long) ((event.getPicture().getTimeStamp() * event.getPicture().getTimeBase().getDouble()) * 1000) + XuggleVideo.this.timestampOffset; XuggleVideo.this.currentFrameUpdated = true; } } }