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

Hard resource ceilings for one import. More...

#include <dawproject_import.hpp>

Public Attributes

std::size_t max_xml_bytes = 64u * 1024u * 1024u
 Raw project.xml bytes, checked before constructing the XML DOM.
std::size_t max_tracks = 16'384
 Maximum tracks across the whole document.
std::size_t max_clips = 1'000'000
 Maximum clips across the whole document.
std::size_t max_notes = 5'000'000
 Maximum notes across the whole document.
std::size_t max_media_assets = 16'384
 Maximum unique retained assets after content-hash deduplication.
std::size_t max_media_resolver_calls = 1'000'000
 Maximum resolver calls, including repeated paths or content.
std::size_t max_package_path_bytes = 4'096
 Maximum UTF-8 bytes in one package-relative path.
std::uint64_t max_media_bytes_per_resolver_call = 2ull * 1024ull * 1024ull * 1024ull
 Maximum bytes returned by one successful resolver call.
std::uint64_t max_total_media_bytes = 16ull * 1024ull * 1024ull * 1024ull
 Maximum bytes returned by all successful calls, including duplicates.

Detailed Description

Hard resource ceilings for one import.

Limits are checked before XML parsing and before growing importer-owned structural collections. Media byte limits are checked immediately after a resolver returns, before inspection, hashing, or retention. A zero limit rejects any corresponding non-empty resource.

Resolvers still own the allocation used to produce their returned vector; callers handling untrusted packages should apply the same per-call byte ceiling while reading package entries.

Member Data Documentation

◆ max_clips

std::size_t pulp::timeline::DawProjectImportLimits::max_clips = 1'000'000

Maximum clips across the whole document.

◆ max_media_assets

std::size_t pulp::timeline::DawProjectImportLimits::max_media_assets = 16'384

Maximum unique retained assets after content-hash deduplication.

◆ max_media_bytes_per_resolver_call

std::uint64_t pulp::timeline::DawProjectImportLimits::max_media_bytes_per_resolver_call = 2ull * 1024ull * 1024ull * 1024ull

Maximum bytes returned by one successful resolver call.

◆ max_media_resolver_calls

std::size_t pulp::timeline::DawProjectImportLimits::max_media_resolver_calls = 1'000'000

Maximum resolver calls, including repeated paths or content.

◆ max_notes

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

Maximum notes across the whole document.

◆ max_package_path_bytes

std::size_t pulp::timeline::DawProjectImportLimits::max_package_path_bytes = 4'096

Maximum UTF-8 bytes in one package-relative path.

◆ max_total_media_bytes

std::uint64_t pulp::timeline::DawProjectImportLimits::max_total_media_bytes = 16ull * 1024ull * 1024ull * 1024ull

Maximum bytes returned by all successful calls, including duplicates.

◆ max_tracks

std::size_t pulp::timeline::DawProjectImportLimits::max_tracks = 16'384

Maximum tracks across the whole document.

◆ max_xml_bytes

std::size_t pulp::timeline::DawProjectImportLimits::max_xml_bytes = 64u * 1024u * 1024u

Raw project.xml bytes, checked before constructing the XML DOM.


The documentation for this struct was generated from the following file: