/* * @(#)QTAnimationDecoder.java * * Copyright (c) 2011 Werner Randelshofer, Goldau, Switzerland. * All rights reserved. * * You may not use, copy or modify this file, except in compliance with the * license agreement you entered into with Werner Randelshofer. * For details see accompanying license terms. */ package org.monte.media.jmf.codec.video; import org.monte.media.quicktime.AnimationCodec; import java.awt.image.BufferedImage; import javax.media.Buffer; import javax.media.Format; import javax.media.ResourceUnavailableException; import javax.media.format.RGBFormat; import javax.media.format.VideoFormat; /** * {@code QTAnimationDecoder}. * <p> * FIXME - Implement this class. * * @author Werner Randelshofer * @version $Id$ */ public class QTAnimationDecoder extends AbstractVideoDecoder { @Override protected Format[] getMatchingOutputFormats(Format input) { throw new UnsupportedOperationException("Not supported yet."); } @Override public int process(Buffer input, Buffer output) { throw new UnsupportedOperationException("Not supported yet."); } /* private AnimationCodec codec; /** RGB bit masks * / protected static final int rMask = 0x000000ff; protected static final int gMask = 0x0000ff00; protected static final int bMask = 0x00ff0000; public QTAnimationDecoder() { supportedInputFormats = new VideoFormat[]{new VideoFormat(VideoFormat.RLE)}; defaultOutputFormats = new VideoFormat[]{new RGBFormat( null, Format.NOT_SPECIFIED, Format.intArray, Format.NOT_SPECIFIED, // frame rate 32, rMask, gMask, bMask, 1, Format.NOT_SPECIFIED, Format.FALSE, // flipped Format.NOT_SPECIFIED // endian )}; pluginName = "Apple Animation Decoder"; } @Override public int process(Buffer input, Buffer output) { throw new UnsupportedOperationException("Not supported yet."); } @Override public void open() throws ResourceUnavailableException { initDecoder(); } @Override public void close() { codec = null; } @Override public void reset() { // no need to init decoder as first frame is always a key frame } // called when video resize is detected, by checkFormat() @Override protected void videoResized() { initDecoder(); } protected void initDecoder() { codec = new AnimationCodec(); codec.setInputFormat(new org.monte.media.VideoFormat(// org.monte.media.VideoFormat.QUICKTIME_ANIMATION, org.monte.media.VideoFormat.QUICKTIME_ANIMATION_COMPRESSOR_NAME, byte[].class,// ((VideoFormat)inputFormat).getSize().width,// ((VideoFormat)inputFormat).getSize().height,// ((RGBFormat) inputFormat).getBitsPerPixel())); codec.setOutputFormat(new org.monte.media.VideoFormat(// org.monte.media.VideoFormat.IMAGE, BufferedImage.class,// ((VideoFormat)inputFormat).getSize().width,// ((VideoFormat)inputFormat).getSize().height,// ((RGBFormat) inputFormat).getBitsPerPixel())); }*/ }