48 return placement_start_;
66static_assert(std::is_nothrow_copy_constructible_v<Take>);
67static_assert(std::is_nothrow_move_constructible_v<Take>);
77 return take_id == other.take_id &&
range.start == other.range.start &&
78 range.sample_count == other.range.sample_count &&
79 range.sample_rate == other.range.sample_rate;
91 return media.asset_id == other.media.asset_id &&
92 media.source_start == other.media.source_start &&
93 media.frame_count == other.media.frame_count &&
107 std::vector<Take>
takes,
108 std::vector<TakeCompSegment> comp = {});
132 explicit TakeLane(
std::shared_ptr<const Data> data) : data_(
std::move(data)) {}
133 std::shared_ptr<const Data> data_;
Result<T, E> — either holds a T or an E, never both.
Definition result.hpp:76
Durable SHA-256 identity for sealed media bytes.
Definition assets.hpp:24
static runtime::Result< TakeLane, ModelError > create(ItemId id, std::string name, std::vector< Take > takes, std::vector< TakeCompSegment > comp={})
Validates and creates a lane with its takes and optional comp.
runtime::Result< TakeLane, ModelError > insert_take(Take take) const
Returns a snapshot with take inserted, or a duplicate/invalid error.
std::span< const TakeCompSegment > comp_segments() const noexcept
Returns comp segments ordered by timeline start then take identity.
const std::string & name() const noexcept
Returns the authored lane name.
const Take * find_take(ItemId id) const noexcept
Finds a take by identity, or returns nullptr when absent.
ItemId id() const noexcept
Returns the lane's stable document identity.
runtime::Result< TakeLane, ModelError > erase_take(ItemId id) const
Returns a snapshot without id.
runtime::Result< TakeLane, ModelError > with_comp_segments(std::vector< TakeCompSegment > comp) const
Returns a snapshot with a validated, canonical replacement comp.
std::span< const Take > takes() const noexcept
Returns takes in canonical identity order.
Immutable sample-anchored recording take referencing a project media asset.
Definition recording.hpp:29
timebase::RationalRate sample_rate() const noexcept
Returns the rational rate governing placement and take duration.
Definition recording.hpp:51
const MediaRef & media() const noexcept
Returns the referenced asset range.
Definition recording.hpp:43
ItemId id() const noexcept
Returns the take's stable document identity.
Definition recording.hpp:39
static runtime::Result< Take, ModelError > create(ItemId id, MediaRef media, timebase::SamplePosition placement_start, timebase::RationalRate sample_rate)
Creates a sample-anchored take referencing a sealed media range.
timebase::SamplePosition placement_start() const noexcept
Returns the absolute timeline start in samples at sample_rate().
Definition recording.hpp:47
constexpr float kMaximumTrackGainLinear
Largest admitted authored linear track gain.
Definition recording.hpp:146
Definition program_compiler.hpp:18
Result<T, E> — success / failure union for fallible operations.
Definition rational_time.hpp:14
Definition rational_time.hpp:9
Absolute clip placement in samples at an explicit rational rate.
Definition clip.hpp:188
Nonzero monotonic identity for a Timeline-owned object.
Definition item_id.hpp:19
Exact absolute-time selection from one take for a comp.
Definition recording.hpp:72
ItemId take_id
Definition recording.hpp:73
constexpr bool operator==(const TakeCompSegment &other) const noexcept
Compares the referenced take and exact absolute-time range.
Definition recording.hpp:76
AbsoluteTimeRange range
Definition recording.hpp:74
Sealed offline-rendered track artifact and its source-plan identity.
Definition recording.hpp:84
ContentHash render_plan_hash
Definition recording.hpp:88
timebase::RationalRate sample_rate
Definition recording.hpp:87
constexpr bool operator==(const TrackFreeze &other) const noexcept
Compares the rendered media, placement, rate, and source-plan hash.
Definition recording.hpp:90
MediaRef media
Definition recording.hpp:85
timebase::SamplePosition placement_start
Definition recording.hpp:86
Track-owned linear gain and stereo balance.
Definition recording.hpp:139
constexpr bool operator==(const TrackMixer &) const =default
float pan
Definition recording.hpp:141
float gain_linear
Definition recording.hpp:140