All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sf.fmj.media.AudioFormatCompleter Maven / Gradle / Ivy

package net.sf.fmj.media;

import javax.media.*;
import javax.media.format.*;

/**
 * Creates audio formats which have any unspecified values set to defaults
 *
 * @author Ken Larson
 *
 */
public class AudioFormatCompleter
{
    // TODO: could it be that the codecs that will accept arbitrary endianness
    // for the output should
    // return a specific endian-ness when setOutputFormat is called? What does
    // JMF do?
    // TODO: seems like we need to apply this completeness method to the filter
    // graph building in general.
    /** Fill in any needed, unspecified values, like endianness. */
    public static AudioFormat complete(AudioFormat f)
    {
        // if endianness is not specify, specify it. TODO: this is a general
        // problem with codecs, some things need to be
        // specified even if we don't care what they are.

        if (f.getSampleSizeInBits() > 8
                && f.getEndian() == Format.NOT_SPECIFIED)
        {
            return new AudioFormat(f.getEncoding(), f.getSampleRate(),
                    f.getSampleSizeInBits(), f.getChannels(),
                    AudioFormat.BIG_ENDIAN, f.getSigned(),
                    f.getFrameSizeInBits(), f.getFrameRate(), f.getDataType());
        }

        // TODO: signed, etc.

        return f;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy