Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::timeline::DecodeLimits Struct Reference

Parser, migration, opaque-payload, and Timeline structure quotas. More...

#include <schema_json.hpp>

Static Public Member Functions

static DecodeLimits web_defaults () noexcept
 Returns tighter ceilings suitable for memory-constrained web runtimes.

Public Attributes

std::size_t max_input_bytes = 1024ull * 1024ull * 1024ull
 Maximum complete input size.
std::size_t max_depth = 64
 Maximum JSON container nesting depth.
std::size_t max_total_values = 30'000'000
 Maximum total DOM values.
std::size_t max_array_elements = 10'000'000
 Maximum elements in one JSON array.
std::size_t max_object_members = 4'096
 Maximum members in one JSON object.
std::size_t max_string_bytes = 16ull * 1024ull * 1024ull
 Maximum decoded bytes in one string or key.
std::size_t max_opaque_bytes = 64ull * 1024ull * 1024ull
 Maximum raw bytes retained by one opaque envelope.
std::size_t max_migration_steps = 64
 Maximum adjacent migration callbacks per value.
std::size_t max_assets = 100'000
 Maximum media assets in one project.
std::size_t max_audio_loop_points = 1'000'000
 Maximum loop slice points across all assets.
std::size_t max_audio_loop_tags = 100'000
 Maximum loop tags across all assets.
std::size_t max_sequences = 100'000
 Maximum project sequences.
std::size_t max_tracks = 10'000
 Maximum tracks across all sequences.
std::size_t max_clips = 100'000
 Maximum clips across all tracks.
std::size_t max_notes = 5'000'000
 Maximum note events across all note content.
std::size_t max_locators = 1'000'000
 Maximum asset locators.
std::size_t max_representations = 1'000'000
 Maximum alternate asset representations.
std::size_t max_device_placements = 100'000
 Maximum device placements across all tracks.
std::size_t max_automation_lanes = 100'000
 Maximum automation lanes across all tracks.
std::size_t max_automation_points = 5'000'000
 Maximum automation points across all lanes.
std::size_t max_modulators = 100'000
 Maximum modulators across all tracks.
std::size_t max_macro_controls = 100'000
 Maximum macro controls across all tracks.
std::size_t max_modulation_routes = 1'000'000
 Maximum modulation routes across all tracks.
std::size_t max_take_lanes = 100'000
 Maximum take lanes across all tracks.
std::size_t max_takes = 5'000'000
 Maximum takes across all take lanes.
std::size_t max_take_comp_segments = 5'000'000
 Maximum take-comp segments across all lanes.
std::size_t max_markers = 100'000
 Maximum sequence markers.
std::size_t max_regions = 100'000
 Maximum sequence regions.
std::size_t max_scenes = 100'000
 Maximum launch scenes.
std::size_t max_slots = 1'000'000
 Maximum launch slots across all scenes.
std::size_t max_chord_scale_events = 1'000'000
 Maximum chord/scale events.
std::size_t max_dynamics_events = 1'000'000
 Maximum dynamics events.
std::size_t max_groove_steps = 100'000
 Maximum groove-template steps.
std::size_t max_midi_lanes = 100'000
 Maximum controller/expression lanes across all MIDI content.
std::size_t max_midi_lane_points = 5'000'000
 Maximum controller points across all lanes.

Detailed Description

Parser, migration, opaque-payload, and Timeline structure quotas.

All byte counts measure bytes, not Unicode scalar values. Container counts apply per container unless named as totals. The same limits object should be passed through structural preflight, parsing, migrations, and model decode so no later stage widens admission.

Member Function Documentation

◆ web_defaults()

DecodeLimits pulp::timeline::DecodeLimits::web_defaults ( )
staticnoexcept

Returns tighter ceilings suitable for memory-constrained web runtimes.

Member Data Documentation

◆ max_array_elements

std::size_t pulp::timeline::DecodeLimits::max_array_elements = 10'000'000

Maximum elements in one JSON array.

◆ max_assets

std::size_t pulp::timeline::DecodeLimits::max_assets = 100'000

Maximum media assets in one project.

◆ max_audio_loop_points

std::size_t pulp::timeline::DecodeLimits::max_audio_loop_points = 1'000'000

Maximum loop slice points across all assets.

◆ max_audio_loop_tags

std::size_t pulp::timeline::DecodeLimits::max_audio_loop_tags = 100'000

Maximum loop tags across all assets.

◆ max_automation_lanes

std::size_t pulp::timeline::DecodeLimits::max_automation_lanes = 100'000

Maximum automation lanes across all tracks.

◆ max_automation_points

std::size_t pulp::timeline::DecodeLimits::max_automation_points = 5'000'000

Maximum automation points across all lanes.

◆ max_chord_scale_events

std::size_t pulp::timeline::DecodeLimits::max_chord_scale_events = 1'000'000

Maximum chord/scale events.

◆ max_clips

std::size_t pulp::timeline::DecodeLimits::max_clips = 100'000

Maximum clips across all tracks.

◆ max_depth

std::size_t pulp::timeline::DecodeLimits::max_depth = 64

Maximum JSON container nesting depth.

◆ max_device_placements

std::size_t pulp::timeline::DecodeLimits::max_device_placements = 100'000

Maximum device placements across all tracks.

◆ max_dynamics_events

std::size_t pulp::timeline::DecodeLimits::max_dynamics_events = 1'000'000

Maximum dynamics events.

◆ max_groove_steps

std::size_t pulp::timeline::DecodeLimits::max_groove_steps = 100'000

Maximum groove-template steps.

◆ max_input_bytes

std::size_t pulp::timeline::DecodeLimits::max_input_bytes = 1024ull * 1024ull * 1024ull

Maximum complete input size.

◆ max_locators

std::size_t pulp::timeline::DecodeLimits::max_locators = 1'000'000

Maximum asset locators.

◆ max_macro_controls

std::size_t pulp::timeline::DecodeLimits::max_macro_controls = 100'000

Maximum macro controls across all tracks.

◆ max_markers

std::size_t pulp::timeline::DecodeLimits::max_markers = 100'000

Maximum sequence markers.

◆ max_midi_lane_points

std::size_t pulp::timeline::DecodeLimits::max_midi_lane_points = 5'000'000

Maximum controller points across all lanes.

◆ max_midi_lanes

std::size_t pulp::timeline::DecodeLimits::max_midi_lanes = 100'000

Maximum controller/expression lanes across all MIDI content.

◆ max_migration_steps

std::size_t pulp::timeline::DecodeLimits::max_migration_steps = 64

Maximum adjacent migration callbacks per value.

◆ max_modulation_routes

std::size_t pulp::timeline::DecodeLimits::max_modulation_routes = 1'000'000

Maximum modulation routes across all tracks.

◆ max_modulators

std::size_t pulp::timeline::DecodeLimits::max_modulators = 100'000

Maximum modulators across all tracks.

◆ max_notes

std::size_t pulp::timeline::DecodeLimits::max_notes = 5'000'000

Maximum note events across all note content.

◆ max_object_members

std::size_t pulp::timeline::DecodeLimits::max_object_members = 4'096

Maximum members in one JSON object.

◆ max_opaque_bytes

std::size_t pulp::timeline::DecodeLimits::max_opaque_bytes = 64ull * 1024ull * 1024ull

Maximum raw bytes retained by one opaque envelope.

◆ max_regions

std::size_t pulp::timeline::DecodeLimits::max_regions = 100'000

Maximum sequence regions.

◆ max_representations

std::size_t pulp::timeline::DecodeLimits::max_representations = 1'000'000

Maximum alternate asset representations.

◆ max_scenes

std::size_t pulp::timeline::DecodeLimits::max_scenes = 100'000

Maximum launch scenes.

◆ max_sequences

std::size_t pulp::timeline::DecodeLimits::max_sequences = 100'000

Maximum project sequences.

◆ max_slots

std::size_t pulp::timeline::DecodeLimits::max_slots = 1'000'000

Maximum launch slots across all scenes.

◆ max_string_bytes

std::size_t pulp::timeline::DecodeLimits::max_string_bytes = 16ull * 1024ull * 1024ull

Maximum decoded bytes in one string or key.

◆ max_take_comp_segments

std::size_t pulp::timeline::DecodeLimits::max_take_comp_segments = 5'000'000

Maximum take-comp segments across all lanes.

◆ max_take_lanes

std::size_t pulp::timeline::DecodeLimits::max_take_lanes = 100'000

Maximum take lanes across all tracks.

◆ max_takes

std::size_t pulp::timeline::DecodeLimits::max_takes = 5'000'000

Maximum takes across all take lanes.

◆ max_total_values

std::size_t pulp::timeline::DecodeLimits::max_total_values = 30'000'000

Maximum total DOM values.

◆ max_tracks

std::size_t pulp::timeline::DecodeLimits::max_tracks = 10'000

Maximum tracks across all sequences.


The documentation for this struct was generated from the following file:
  • /home/runner/work/pulp/pulp/core/timeline/include/pulp/timeline/schema_json.hpp