1,295
edits
No edit summary |
|||
| Line 25: | Line 25: | ||
10) Trigger a sound sample to be played through the effects graph ASAP but without causing any blocking | 10) Trigger a sound sample to be played through the effects graph ASAP but without causing any blocking | ||
== Streams == | === Straw-man Proposal === | ||
==== Streams ==== | |||
Need to clarify exactly what the semantics of a stream are: | Need to clarify exactly what the semantics of a stream are: | ||
| Line 39: | Line 41: | ||
* Solution: if a (non-live) stream feeds into a blocking mixer, then it itself gets blocked. This has the same effect as the entire graph of (non-live) connected streams blocking as a unit. | * Solution: if a (non-live) stream feeds into a blocking mixer, then it itself gets blocked. This has the same effect as the entire graph of (non-live) connected streams blocking as a unit. | ||
== <mediaresource> element == | ==== <mediaresource> element ==== | ||
interface HTMLMediaResourceElement { | interface HTMLMediaResourceElement { | ||
| Line 79: | Line 81: | ||
I'm not really sure how much API this element needs. | I'm not really sure how much API this element needs. | ||
== Media elements == | ==== Media elements ==== | ||
interface HTMLMediaElement { | interface HTMLMediaElement { | ||
| Line 101: | Line 103: | ||
}; | }; | ||
== Stream extensions == | ==== Stream extensions ==== | ||
Streams can have attributes that transform their output: | Streams can have attributes that transform their output: | ||
| Line 122: | Line 124: | ||
}; | }; | ||
== Stream mixing and processing == | ==== Stream mixing and processing ==== | ||
[Constructor] | [Constructor] | ||
| Line 158: | Line 160: | ||
// XXX need to figure out the actual StreamEvent API: channel formats, etc. | // XXX need to figure out the actual StreamEvent API: channel formats, etc. | ||
== Graph cycles == | ==== Graph cycles ==== | ||
If a cycle is formed in the graph, the streams involved block until the cycle is removed. | If a cycle is formed in the graph, the streams involved block until the cycle is removed. | ||
== Dynamic graph changes == | ==== Dynamic graph changes ==== | ||
Dynamic graph changes performed by a script take effect atomically after the script has run to completion. Effectively we post a task to the HTML event loop that makes all the pending changes. The exact timing is up to the implementation but the implementation should try to minimize the latency of changes. | Dynamic graph changes performed by a script take effect atomically after the script has run to completion. Effectively we post a task to the HTML event loop that makes all the pending changes. The exact timing is up to the implementation but the implementation should try to minimize the latency of changes. | ||
== Examples == | ==== Examples ==== | ||
1) Play video with processing effect applied to the audio track | 1) Play video with processing effect applied to the audio track | ||
edits