Description

This extension defines a facility for plugins to get information about the block length (the sample_count parameter of LV2_Descriptor::run) and port buffer sizes, as well as several features which can be used to restrict the block length.

This extension defines features and properties but has no special purpose API of its own. The host provides all the relevant information to the plugin as options.

To require restrictions on the block length, plugins can require additional features: bufsz:boundedBlockLength, bufsz:powerOf2BlockLength, and bufsz:fixedBlockLength. These features are data-only, that is they merely indicate a restriction and do not carry any data or API.

Index

Properties
maxBlockLength, minBlockLength, sequenceSize
Instances
boundedBlockLength, fixedBlockLength, powerOf2BlockLength

Reference

Property bufsz:maxBlockLength

maximum block length

The maximum block length the host will ever request the plugin to process at once, that is, the maximum sample_count parameter that will ever be passed to LV2_Descriptor::run().

OWL TypeDatatype Property
Rangexsd:nonNegativeInteger

Property bufsz:minBlockLength

minimum block length

The minimum block length the host will ever request the plugin to process at once, that is, the minimum sample_count parameter that will ever be passed to LV2_Descriptor::run().

OWL TypeDatatype Property
Rangexsd:nonNegativeInteger

Property bufsz:sequenceSize

sequence size

The maximum size of a sequence, in bytes. This should be provided as an option by hosts that support event ports (including but not limited to MIDI), so plugins have the ability to allocate auxiliary buffers large enough to copy the input.

OWL TypeDatatype Property
Rangexsd:nonNegativeInteger

Instance bufsz:boundedBlockLength

A feature that indicates the host will provide both the bufsz:minBlockLength and bufsz:maxBlockLength options to the plugin. Plugins that copy data from audio inputs can require this feature to ensure they know how much space is required for auxiliary buffers. Note the minimum may be zero, this feature is mainly useful to ensure a maximum is available.

All hosts SHOULD support this feature, since it is simple to support and necessary for any plugins that may need to copy the input.

Typelv2:Feature

Instance bufsz:fixedBlockLength

A feature that indicates the host will always call LV2_Descriptor::run() with the same value for sample_count. This length MUST be provided as the value of both the bufsz:minBlockLength and bufsz:maxBlockLength options.

Note that requiring this feature may severely limit the number of hosts capable of running the plugin.

Typelv2:Feature

Instance bufsz:powerOf2BlockLength

A feature that indicates the host will always call LV2_Descriptor::run() with a power of two sample_count. Note that this feature does not guarantee the value is the same each call, to guarantee a fixed power of two block length plugins must require both this feature and bufsz:fixedBlockLength.

Note that requiring this feature may severely limit the number of hosts capable of running the plugin.

Typelv2:Feature

History

Version 2.0 (2014-08-08)
  • Add lv2_atom_forge_is_object_type() and lv2_atom_forge_is_blank() to ease backwards compatibility.
  • Deprecate Blank and Resource in favour of just Object.
  • Add lv2_atom_forge_key() for terser object writing.
  • Add lv2_atom_sequence_clear() and lv2_atom_sequence_append_event() helper functions.
Version 1.8 (2014-01-04)
  • Make lv2_atom_*_is_end() arguments const.
Version 1.6 (2013-05-26)
  • Fix crash in forge.h when pushing atoms to a full buffer.
Version 1.4 (2013-01-27)
  • Fix lv2_atom_sequence_end().
  • Remove atom:stringType in favour of owl:onDatatype so generic tools can understand and validate atom literals.
  • Improve atom documentation.
Version 1.2 (2012-12-21)
  • Fix typo in bufsz:sequenceSize label.
Version 1.0 (2012-10-14)
  • Initial release.
Version 1.0 (2012-04-17)
  • Initial release.