All pastes #770271 Raw Edit

Something

public text v1 · immutable
·published 2007-11-12 01:27 UTC
rendered paste body
package com.cp.atheater;

import java.awt.image.BufferedImage;
import java.util.ArrayList;
import java.net.ServerSocket;
import java.net.Socket;
import java.io.*;
import com.cp.atheater.gif.GifDecoder;

public class Main
{

    public static ArrayList<ASCIIFrame> frames;

    public static void main(String[] args) throws Exception
    {
        int resolution = new Integer(args[1]);
        String file = args[0];
        System.out.println("Checking for converted movie...");
        if (new File(file + ".ser").exists())
        {
            ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file + ".ser"));
            frames = (ArrayList<ASCIIFrame>) ois.readObject();
            ois.close();
            System.out.printf("\tLoaded %d frames\n", frames.size());
        }
        frames = new ArrayList<ASCIIFrame>();
        Converter converter = new Converter();
        GifDecoder decoder = new GifDecoder();
        decoder.read(file);
        System.out.println("Converting...");
        for (int index = 0; index < decoder.getFrameCount(); index++)
        {
            BufferedImage image = decoder.getFrame(index);
            int delay = decoder.getDelay(index);
            System.out.printf("\tFrame %d - %dx%d, %dms\n", index, image.getHeight(), image.getWidth(), delay);
            frames.add(new ASCIIFrame(converter.convert(image, resolution), delay));
        }
        ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(file + ".ser"));
        out.writeObject(frames);
        out.close();
        ServerSocket listener = new ServerSocket(31337);
        System.out.println("Listening...");
        while (true)
        {
            Socket socket = listener.accept();
            System.out.printf("Now playing to %s\n", socket.getInetAddress().getHostAddress());
            new Thread(new MoviePlayer(socket)).start();
        }
    }

}