/* * * * Copyright 1996-1998 by Sun Microsystems, Inc., * 901 San Antonio Road, Palo Alto, California, 94303, U.S.A. * All rights reserved. * * This software is the confidential and proprietary information * of Sun Microsystems, Inc. ("Confidential Information"). You * shall not disclose such Confidential Information and shall use * it only in accordance with the terms of the license agreement * you entered into with Sun. */ package com.sun.media.codec.audio.ulaw; import javax.media.*; import javax.media.format.*; import javax.media.format.*; import com.sun.media.*; import java.lang.Math; public class DePacketizer extends com.sun.media.codec.audio.AudioCodec { public DePacketizer() { inputFormats = new Format[] { new AudioFormat(AudioFormat.ULAW_RTP) }; } public String getName() { return "ULAW DePacketizer"; } public Format [] getSupportedOutputFormats(Format in) { if (in == null) return new Format[] { new AudioFormat(AudioFormat.ULAW) }; if (matches(in, inputFormats) == null) return new Format[1]; if (! (in instanceof AudioFormat) ) return new Format[] { new AudioFormat(AudioFormat.ULAW) }; AudioFormat af =(AudioFormat) in; return new Format[] { new AudioFormat( AudioFormat.ULAW, af.getSampleRate(), af.getSampleSizeInBits(), af.getChannels()) }; } /** Initializes the codec. **/ public void open() { } /** Clean up **/ public void close() { } /** decode the buffer **/ public int process(Buffer inputBuffer, Buffer outputBuffer) { if (!checkInputBuffer(inputBuffer) ) { return BUFFER_PROCESSED_FAILED; } if (isEOM(inputBuffer) ) { propagateEOM(outputBuffer); return BUFFER_PROCESSED_OK; } Object outData = outputBuffer.getData(); outputBuffer.setData(inputBuffer.getData()); inputBuffer.setData(outData); outputBuffer.setLength(inputBuffer.getLength()); outputBuffer.setFormat(outputFormat); outputBuffer.setOffset(inputBuffer.getOffset()); return BUFFER_PROCESSED_OK; } }