import { useEffect, useRef } from 'react'; interface VideoInputProps { onVideoUpload: (file: File) => void; videoFile: File | null; isProcessing: boolean; onToggleCamera: () => void; cameraStream: MediaStream | null; previewUrl: string | null; } export function VideoInput({ onVideoUpload, videoFile, isProcessing, onToggleCamera, cameraStream, previewUrl, }: VideoInputProps) { const fileInputRef = useRef(null); const previewRef = useRef(null); useEffect(() => { const video = previewRef.current; if (!video) return; if (cameraStream) { video.srcObject = cameraStream; video.muted = true; void video.play(); return; } if (previewUrl) { video.srcObject = null; video.src = previewUrl; void video.play(); return; } video.srcObject = null; video.removeAttribute('src'); video.load(); }, [cameraStream, previewUrl]); const handleFileChange = (e: React.ChangeEvent) => { const file = e.target.files?.[0]; if (file) { onVideoUpload(file); } }; return (

Video Input

Upload a video or use your camera to capture sign language

{/* Original Video Feed */}
{cameraStream || previewUrl ? (
{/* Enhanced Video */}
Enhanced Video
Brightness correction applied
Resolution: --
Enhancement: Pending
Quality: --
); }