#!/usr/bin/env bash
set -euo pipefail

if [ "$#" -lt 1 ] || [ "$#" -gt 2 ]; then
  echo "Usage: $0 <input-video> [output-dir]" >&2
  exit 2
fi

in="$1"
outdir="${2:-work/analysis_$(date +%Y%m%d_%H%M%S)}"

mkdir -p "$outdir"/metadata "$outdir"/shots "$outdir"/subband "$outdir"/subband_ocr "$outdir"/previews

ffprobe -v error \
  -show_entries format=filename,format_name,duration,size,bit_rate \
  -show_entries stream=index,codec_type,codec_name,profile,width,height,pix_fmt,field_order,r_frame_rate,avg_frame_rate,bit_rate \
  -of default=noprint_wrappers=1 "$in" >"$outdir/metadata/ffprobe.txt"

ffmpeg -hide_banner -i "$in" -vf idet -frames:v 1800 -an -f null - >"$outdir/metadata/idet.txt" 2>&1
ffmpeg -hide_banner -i "$in" -vf "signalstats=stat=brng+vrep+tout" -an -f null - >"$outdir/metadata/signalstats.txt" 2>&1

ffmpeg -hide_banner -y -i "$in" \
  -vf "select='gt(scene,0.35)',scale=640:-1" -vsync vfr \
  "$outdir/shots/shot_%04d.jpg" >/dev/null 2>&1

ffmpeg -hide_banner -y -i "$in" \
  -vf "fps=2,crop=iw:floor(ih*0.30):0:floor(ih*0.70),scale=960:-1" \
  "$outdir/subband/sub_%05d.png" >/dev/null 2>&1

ffmpeg -hide_banner -y -i "$in" \
  -vf "fps=2,crop=iw:floor(ih*0.30):0:floor(ih*0.70),format=gray,eq=contrast=1.6:brightness=0.05,scale=960:-1" \
  "$outdir/subband_ocr/subocr_%05d.png" >/dev/null 2>&1

ffmpeg -hide_banner -y -i "$in" \
  -vf "fps=1/10,scale=480:-1,tile=6x4:padding=4:margin=6:color=black" \
  -frames:v 1 "$outdir/previews/contact_sheet.jpg" >/dev/null 2>&1

echo "Bootstrap analysis completed: $outdir"
