vidsage-core 0.1.0

Core functionality for VidSage video processing and AI commentary generation
Documentation
//! Video processor traits

use super::processor::ProcessingStatus;
use super::{ProcessOptions, VideoMetadata, VideoOutput};
use crate::Result;
use std::path::Path;

/// Trait for video processing functionality
#[async_trait::async_trait]
pub trait VideoProcessor {
    /// Extract metadata from a video file
    async fn extract_metadata(&self, input: &Path) -> Result<VideoMetadata>;

    /// Process a video file with given options
    async fn process_video(&self, input: &Path, options: ProcessOptions) -> Result<VideoOutput>;

    /// Get processing status for a job
    async fn get_status(&self, job_id: &str) -> Result<ProcessingStatus>;

    /// Cancel a processing job
    async fn cancel_job(&self, job_id: &str) -> Result<bool>;
}