diff options
author | David Robillard <d@drobilla.net> | 2011-03-16 23:05:23 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2011-03-16 23:05:23 +0000 |
commit | 190bf278aeafa53395f3a8a5e8c64f278def9f37 (patch) | |
tree | ff825d846f7a24539d0ce8f6ea31fc7c6602dd1a | |
parent | c295f8dd7d964e1c47100402beccdfa4f0b78e9f (diff) | |
download | lv2-190bf278aeafa53395f3a8a5e8c64f278def9f37.tar.xz |
Fix overly-restrictive lv2:hardRTCapable rules.
-rw-r--r-- | core.lv2/lv2.ttl | 45 |
1 files changed, 22 insertions, 23 deletions
diff --git a/core.lv2/lv2.ttl b/core.lv2/lv2.ttl index b96d535..2fa40fe 100644 --- a/core.lv2/lv2.ttl +++ b/core.lv2/lv2.ttl @@ -646,31 +646,30 @@ it impossible for hosts to use the plugin to process data "in-place". lv2:hardRTCapable a lv2:Feature ; rdfs:label "Hard realtime capable" ; - rdfs:comment """ -Indicates that the plugin is capable of running not only in a conventional host -but also in a "hard real-time" environment. To qualify for this the plugin MUST -satisfy all of the following: - - (1) The plugin must not use malloc(), free() or other heap memory - management within its Audio class functions. All new memory used in - Audio class functions must be managed via the stack. These restrictions - only apply to the Audio class functions. - - (2) The plugin will not attempt to make use of any library - functions in its Audio class functions, with the exceptions of functions - in the ANSI standard C and C maths libraries, which the host is expected to - provide. + lv2:documentation """ - (3) The plugin will not access files, devices, pipes, sockets, IPC - or any other mechanism that might result in process or thread - blocking within its Audio class functions. +<p>Indicates that the plugin is capable of running not only in a conventional +host but also in a "hard real-time" environment. To qualify for this the plugin +MUST satisfy all of the following:</p> +<ol> +<li>The plugin MUST NOT use malloc(), free() or other heap memory management + functions within its Audio class functions.</li> + +<li>The plugin MUST NOT attempt to make use of any library functions in its + Audio class functions, unless those functions themselves adhere to these + rules (i.e. are hard realtime safe). The plugin MAY assume the standard C + and C math library functions are safe.</li> + +<li>The plugin will not access files, devices, pipes, sockets, IPC or any other + mechanism that might result in process or thread blocking within its Audio + class functions.</li> - (4) The plugin will take an amount of time to execute a run() call - approximately of form (A+B*SampleCount) where A and B depend on the - machine and host in use. This amount of time may not depend on input - signals or plugin state. The host is left the responsibility to perform - timings to estimate upper bounds for A and B. The plugin will also take an - approximately constant amount of time to execute a connect_port() call. +<li>The plugin will take an amount of time to execute a run() call + approximately of form <code>A + B * SampleCount</code> where <code>A</code> + and <code>B</code> depend on the machine and host in use. This amount of + time MUST NOT depend on input signals or plugin state.</li> +</ol> +<p>Note these rules apply to the connect_port() function as well as run().</p> """ . |