/*******************************************************************************
 * Copyright (c) 2007 IBM Corporation and Others
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *    Hisashi MIYASHITA - initial API and implementation
 *******************************************************************************/

package org.eclipse.actf.model.flash.transcoder;

import java.io.InputStream;



public interface ISwfTranscoder {
    Object parse(InputStream is) throws Exception;
    Object impose(Object imposed, Object src);
    byte[] generate(Object swf, boolean compress, int version) throws Exception;
}
