Skip to main content

Crate ffcine_timeline

Crate ffcine_timeline 

Source
Expand description

The ffcine timeline: plain OTIO JSON (Timeline.1, core schemas only), see docs/design.md.

schema has serde types for the core OTIO objects, metadata the ffcine metadata namespace. Reading and writing a file keeps everything, including fields and schemas the model doesn’t know (see schema for the one upgrade OTIO itself applies).

use ffcine_timeline::{Clip, ExternalReference, HasMetadata, Item, MediaReference, TimeRange,
    Timeline, Track, track_kind};

let mut track = Track::new("V1", track_kind::VIDEO);
let media = MediaReference::External(ExternalReference::new("file:///a.mov", None));
let mut clip = Clip::new("a", media, Some(TimeRange::from_frames(10.0, 58.0, 24.0)));
clip.set_ffcine_id("a");
track.children.push(Item::Clip(clip));
let mut t = Timeline::default();
t.tracks.children.push(Item::Track(track));
let json = t.to_json()?;
assert_eq!(Timeline::from_json(&json)?, t);

Re-exports§

pub use metadata::FFCINE;
pub use metadata::FFCINE_VERSION;
pub use metadata::HasMetadata;
pub use place::Placed;
pub use place::PlacedMarker;
pub use project::BusDuck;
pub use project::BusParams;
pub use project::BusReverb;
pub use project::BusSend;
pub use project::ClipGrade;
pub use project::GradeParams;
pub use project::MixParams;
pub use project::Output;
pub use project::OutputMode;
pub use project::Project;
pub use project::SourceKind;
pub use schema::Clip;
pub use schema::DEFAULT_MEDIA_KEY;
pub use schema::Effect;
pub use schema::ExternalReference;
pub use schema::Gap;
pub use schema::GeneratorReference;
pub use schema::GenericEffect;
pub use schema::Item;
pub use schema::LinearTimeWarp;
pub use schema::Marker;
pub use schema::MediaReference;
pub use schema::MissingReference;
pub use schema::Stack;
pub use schema::Timeline;
pub use schema::Track;
pub use schema::Transition;
pub use schema::track_kind;
pub use schema::transition_type;
pub use time::RationalTime;
pub use time::TimeRange;

Modules§

metadata
The ffcine metadata namespace.
place
Where things sit on the timeline: clips and markers in timeline seconds.
project
Project-level ffcine metadata (Timeline.metadata.ffcine.project) and grade layering.
schema
Serde types for the OTIO core schemas.
time
RationalTime.1 and TimeRange.1.