#!/bin/sh

if [ "x$2" = "x" ] ; then
    echo Usage: doall.sh Input-File.R3D Frame-number [byteswap]
    exit -1
fi

if [ ! -x format ] ; then
    cc format.c -o format
fi

if [ -x debayer ] ; then
    if ! ./debayer 2>&1 | grep -q byteswap ; then
	rm -f debayer
    fi
fi

if [ ! -x debayer ] ; then
    cc debayer.c -o debayer
fi

if ! ./debayer 2>&1 | grep -q byteswap ; then
    echo Debayer out of date. Please get the latest version...
    exit -1
fi

if [ "x$J2K" = "x" ] ; then
    if [ -x j2k_to_image ] ; then
	J2K=./j2k_to_image
    fi
fi

if [ "x$J2K" = "x" ] ; then
    if which j2k_to_image ; then
	J2K=j2k_to_image
    fi
fi

if [ "x$J2K" = "x" ] ; then
    echo Couldnt locate j2k_to_image, please install libopenjpeg first...
    echo Alternatively, do:
    echo export J2K=path-to-j2k_to_image-executable
    exit -1
fi

echo "** Extracting frame..."
./format $1 v $2 > frame.jp2
echo "** Decoding Jpeg2000-frame..."
$J2K -i frame.jp2 -o frame.raw |tee decode.log

X=`grep "Component 3" decode.log |cut "-d " -f 4 |cut -dx -f 1`
Y=`grep "Component 3" decode.log |cut "-d " -f 4 |cut -dx -f 2`

echo "** Running debayer with resolution $X x $Y..."
./debayer $X $Y $3 <frame.raw

echo "** Output is written to *.ppm."

