aboutsummaryrefslogtreecommitdiffstats
path: root/lv2/lv2plug.in/ns/ext/buf-size/buf-size.ttl
blob: 1c9b5082314994778085e8bebaef7f96186eb0fb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
@prefix bufsz: <http://lv2plug.in/ns/ext/buf-size#> .
@prefix lv2:   <http://lv2plug.in/ns/lv2core#> .
@prefix opts:  <http://lv2plug.in/ns/ext/options#> .
@prefix owl:   <http://www.w3.org/2002/07/owl#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd:   <http://www.w3.org/2001/XMLSchema#> .

<http://lv2plug.in/ns/ext/buf-size>
	a lv2:Specification ;
	rdfs:seeAlso <buf-size.h> ,
		<lv2-buf-size.doap.ttl> ;
	lv2:documentation """
<p>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.</p>

<p>The host provides access to all the relevant information via the
bufsz:access feature.</p>

<p>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.</p>
""" .

bufsz:access
	a lv2:Feature ;
	lv2:documentation """
<p>The feature that provides access to buffer size information.  This feature
is the only one in this extension which carries data: to implement it the host
passes a feature with URI LV2_BUF_SIZE__access and an LV2_Buf_Size_Access
for data, which provides functions the plugin can call to investigate the
buffer size.</p>
""" .

bufsz:boundedBlockLength
	a lv2:Feature ;
	lv2:documentation """
<p>A feature that indicates the host will provide a minimum and maximum block
length via LV2_Buf_Size_Access::get_sample_count().  Plugins that copy data
from audio inputs can require this feature to ensure they know how much space
is required for auxilliary buffers.  Note the minimum may be zero, this feature
is mainly useful to ensure a maximum is available.</p>

<p>All hosts SHOULD support this feature, since it is simple to support and
necessary for plugins to create auxiliary buffers.</p>
""" .

bufsz:fixedBlockLength
	a lv2:Feature ;
	lv2:documentation """
<p>A feature that indicates the host will always call LV2_Descriptor::run()
with the same value for sample_count.  If available,
LV2_Buf_Size_Access::get_sample_count() must report this value for both min
and max.</p>

<p>Note that requiring this feature may severely limit the number of hosts
capable of running the plugin.</p>
""" .

bufsz:powerOf2BlockLength
	a lv2:Feature ;
	lv2:documentation """
<p>A feature that indicates the host will always call LV2_Descriptor::run()
with a power of two sample_count.  If available,
LV2_Buf_Size_Access::get_sample_count() must report this value for both min
and max.  Note this feature does not guarantee the value is the same each call,
to ensure that the plugin must require both this feature and
bufsz:fixedBlockLength.</p>

<p>Note that requiring this feature may severely limit the number of hosts
capable of running the plugin.</p>
""" .

bufsz:maxBlockLength
	a rdf:Property ,
		owl:DatatypeProperty ,
		opts:Option ;
	rdfs:label "maximum block length" ;
	rdfs:range xsd:nonNegativeInteger ;
	lv2:documentation """
<p>The maximum block length the host will ever request the plugin to process at
once, that is, the maximum <code>sample_count</code> parameter that will ever
be passed to LV2_Descriptor::run().</p>
""" .

bufsz:minBlockLength
	a rdf:Property ,
		owl:DatatypeProperty ,
		opts:Option ;
	rdfs:label "minimum block length" ;
	rdfs:range xsd:nonNegativeInteger ;
	lv2:documentation """
<p>The minimum block length the host will ever request the plugin to process at
once, that is, the minimum <code>sample_count</code> parameter that will ever
be passed to LV2_Descriptor::run().</p>
""" .

bufsz:sequenceSize
	a rdf:Property ,
		owl:DatatypeProperty ,
		opts:Option ;
	rdfs:label "sequnce size" ;
	rdfs:range xsd:nonNegativeInteger ;
	lv2:documentation """
<p>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.</p> """ .