basicvideostreamer 1.0.0

Primitive image streaming HTTP server.
Documentation
extern crate basicvideostreamer;
use basicvideostreamer::Server;
use basicvideostreamer::ServerConfiguration;
use std::{thread, time};
use image::imageops::rotate180_in_place;
use std::io::Cursor;
use image::io::Reader as ImageReader;
use std::env;

fn main() {
    let args: Vec<String> = env::args().collect();
    let path = if args.len() > 1 { args[1].clone() } else {"in.jpg".to_string()};

    let config = ServerConfiguration::new(7879, None, Some("/img".to_string()));
    let mut server = Server::new(config);
    if server.start().is_err() {
        println!("Error: create server.");
        return;
    }

    let mut img = ImageReader::open(path).unwrap().decode().unwrap();
    let mut bytes: Vec<u8> = Vec::new();
    loop {
        rotate180_in_place(&mut img);
        img.write_to(&mut Cursor::new(&mut bytes), image::ImageOutputFormat::Jpeg(100)).unwrap();
        thread::sleep(time::Duration::from_millis(17));
        if server.send(&bytes).is_err() {
            println!("Error: send data.");
            break;
        }
    }
}