Skip to main content

oximedia_proxy/render/
conform.rs

1//! Render conforming for final output.
2
3use crate::Result;
4
5/// Render conform engine.
6pub struct RenderConform;
7
8impl RenderConform {
9    /// Create a new render conform engine.
10    #[must_use]
11    pub const fn new() -> Self {
12        Self
13    }
14
15    /// Conform a render to use original media.
16    pub fn conform(
17        &self,
18        _timeline: &std::path::Path,
19        _output: &std::path::Path,
20    ) -> Result<ConformResult> {
21        // Placeholder: would conform timeline to originals
22        Ok(ConformResult {
23            output_path: std::path::PathBuf::new(),
24            clips_conformed: 0,
25        })
26    }
27}
28
29impl Default for RenderConform {
30    fn default() -> Self {
31        Self::new()
32    }
33}
34
35/// Render conform result.
36#[derive(Debug, Clone)]
37pub struct ConformResult {
38    /// Output file path.
39    pub output_path: std::path::PathBuf,
40
41    /// Number of clips conformed.
42    pub clips_conformed: usize,
43}
44
45#[cfg(test)]
46mod tests {
47    use super::*;
48
49    #[test]
50    fn test_render_conform() {
51        let conformer = RenderConform::new();
52        let result = conformer.conform(
53            std::path::Path::new("timeline.xml"),
54            std::path::Path::new("output.mov"),
55        );
56        assert!(result.is_ok());
57    }
58}