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

org.monte.media.FormatFormatter Maven / Gradle / Ivy

The newest version!

package org.monte.media;

import java.nio.ByteOrder;
import static org.monte.media.AudioFormatKeys.*;
import static org.monte.media.FormatKeys.*;
import org.monte.media.FormatKeys.MediaType;
import static org.monte.media.VideoFormatKeys.*;
import org.monte.media.math.Rational;


public class FormatFormatter {

    private static String audioToString(Format f) {
        StringBuilder buf = new StringBuilder();
        buf     .append(f.get(EncodingKey).equals(ENCODING_AVI_PCM)?"PCM":f.get(EncodingKey))
                .append(", ")
                .append(f.get(ChannelsKey))
                .append(" channel(s)")
                .append(", ")
                .append(f.get(SampleSizeInBitsKey))
                .append("-bit")
                .append(f.get(SignedKey) ? " signed" : " unsigned")
                .append(f.get(ByteOrderKey)==ByteOrder.BIG_ENDIAN?" BE":" LE")
                .append(", ")
                .append(f.get(SampleRateKey))
                .append(" Hz, ")
                .append("")
                ;
        return buf.toString();
    }

    private static String videoToString(Format f) {
        StringBuilder buf = new StringBuilder();
        buf.append(f.get(EncodingKey))
                .append(", ")
                .append(f.get(WidthKey))
                .append("x")
                .append(f.get(HeightKey))
                .append(", ")
                .append(f.get(DepthKey))
                .append("-bit, ")
                .append(f.get(FrameRateKey,new Rational(0,0)))
                .append(" fps")
                .append(f.get(FixedFrameRateKey,false) ? ", fixed rate" : "")
                .append(f.get(PixelAspectRatioKey,new Rational(1,1)).equals(new Rational(1, 1)) ? "" : ", " + f.get(PixelAspectRatioKey) + " pixel ratio")
                .append("")
                ;
        return buf.toString();
    }
    
    private static String fileToString(Format f) {
        StringBuilder buf = new StringBuilder();
        buf.append(f.get(MimeTypeKey));
        return buf.toString();
    }

    public static String toString(Format f) {
        switch (f.get(MediaTypeKey, MediaType.VIDEO)) {
            case AUDIO:
                return audioToString(f);
            case VIDEO:
                return videoToString(f);
            case FILE:
                return fileToString(f);
            default:
                return f.toString();
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy