8.14.0.4
8 Extending Video🔗ℹ
Video offers several extension points. Both for adding new
syntactic forms into the language, as well as new video
primitives. There is some overlap in what the extensions are
capable of, but each are useful in different circumstances.
The documentation in this section needs a lot of work.
8.1 Video Convert🔗ℹ
8.2 Conversion Database🔗ℹ
Video also has basic syntax for creating new types of
producers, transitions, merges, and filters. This API is still
experimental and may change with little notice. Proceed with
caution.
These forms are for defining producers, filters, transitions, and merges.
Also the forms for building their contracts and writing
their documentation.
(define-producer function-header | maybe-subgraph | maybe-properties | maybe-user-properties | body ...) |
|
|
maybe-subgraph | | = | | | | | | | | #:subgraph subgraph | | | | | | maybe-properties | | = | | | | | | | | #:properties properties | | | | | | maybe-user-properties | | = | | | | | | | | #:user-properties user-properties |
|
|
|
(->producer [extra-args ...] [optional-args ...] maybe-ret)
|
|
|
(defproducer prototype maybe-return content ...)
|
|
prototype | | = | | (id arg-spec ...) | | | | | | (prototype arg-spec ...) | | | | | | maybe-ret | | = | | | | | | | | #:return | | | | | | ret |
|
(define-filter function-header | maybe-subgraph | maybe-properties | maybe-source-properties | maybe-user-properties | body ...) |
|
|
maybe-subgraph | | = | | | | | | | | #:subgraph subgraph | | | | | | maybe-properties | | = | | | | | | | | #:properties properties | | | | | | maybe-user-properties | | = | | | | | | | | #:user-properties user-properties | | | | | | maybe-source-properties | | = | | | | | | | | #:source-props source-properties |
|
|
|
(->filter [extra-args ...] [optional-args ...] maybe-ret)
|
|
|
(deffilter prototype maybe-return content ...)
|
|
prototype | | = | | (id arg-spec ...) | | | | | | (prototype arg-spec ...) | | | | | | maybe-ret | | = | | | | | | | | #:return | | | | | | ret |
|
(define-transition function-header | maybe-track1-subgraph | maybe-track2-subgraph | maybe-combined-subgraph | maybe-properties | maybe-source-properties | maybe-user-properties | maybe-producer-1 | maybe-producer-2 | body ...) |
|
|
maybe-track1-subgraph | | = | | | | | | | | #:track1-subgraph subgraph | | | | | | maybe-track2-subgraph | | = | | | | | | | | #:track2-subgraph subgraph | | | | | | maybe-combined-subgraph | | = | | | | | | | | #:combined-subgraph subgraph | | | | | | maybe-properties | | = | | | | | | | | #:properties properties | | | | | | maybe-user-properties | | = | | | | | | | | #:user-properties user-properties | | | | | | maybe-source-properties | | = | | | | | | | | #:source-props source-properties | | | | | | maybe-prod1 | | = | | | | | | | | #:prod-1 prod1-id | | | | | | maybe-prod2 | | = | | | | | | | | #:prod-2 prod2-id |
|
|
|
(->transition [extra-args ...] [optional-args ...] maybe-ret)
|
|
|
(deftransition prototype maybe-return content ...)
|
|
prototype | | = | | (id arg-spec ...) | | | | | | (prototype arg-spec ...) | | | | | | maybe-ret | | = | | | | | | | | #:return | | | | | | ret |
|
(define-merge function-header | maybe-track1-subgraph | maybe-track2-subgraph | maybe-combined-subgraph | maybe-properties | maybe-source-properties | maybe-user-properties | maybe-producer-1 | maybe-producer-2 | body ...) |
|
|
maybe-track1-subgraph | | = | | | | | | | | #:track1-subgraph subgraph | | | | | | maybe-track2-subgraph | | = | | | | | | | | #:track2-subgraph subgraph | | | | | | maybe-combined-subgraph | | = | | | | | | | | #:combined-subgraph subgraph | | | | | | maybe-properties | | = | | | | | | | | #:properties properties | | | | | | maybe-user-properties | | = | | | | | | | | #:user-properties user-properties | | | | | | maybe-source-properties | | = | | | | | | | | #:source-props source-properties | | | | | | maybe-prod1 | | = | | | | | | | | #:prod-1 prod1-id | | | | | | maybe-prod2 | | = | | | | | | | | #:prod-2 prod2-id |
|
|
|
(->merge [extra-args ...] [optional-args ...] maybe-ret)
|
|
|
(defmerge prototype maybe-return content ...)
|
|
prototype | | = | | (id arg-spec ...) | | | | | | (prototype arg-spec ...) | | | | | | maybe-ret | | = | | | | | | | | #:return | | | | | | ret |
|