add depth and camera intrinsics, and adopt the typed Arrow image #4
@@ -66,6 +66,31 @@ CI=true SOURCE_FRAMES=30 dora run dataflow.yml --uv
|
|||||||
|
|
||||||
`SOURCE_WIDTH` and `SOURCE_HEIGHT` (default 640x480) set the frame size.
|
`SOURCE_WIDTH` and `SOURCE_HEIGHT` (default 640x480) set the frame size.
|
||||||
|
|
||||||
|
### With a real camera
|
||||||
|
|
||||||
|
[`dataflow_webcam.yml`](dataflow_webcam.yml) wires
|
||||||
|
[dora-webcam](https://gitea.liria.cl/liria/dora-webcam) into this node, and is the
|
||||||
|
worked example of consuming something that is not a test fixture:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
dora run dataflow_webcam.yml --uv
|
||||||
|
```
|
||||||
|
|
||||||
|
The camera publishes `std/media/v1/Image` and this node draws it. `depth`,
|
||||||
|
`camera_info`, `text` and `bbox` are simply unwired — every input is optional, so a
|
||||||
|
plain viewer is the result.
|
||||||
|
|
||||||
|
It carries no `strict_types`, deliberately. A camera publishes an image and nothing
|
||||||
|
else, and `dora validate --strict` warns about every *typed* input this node declares
|
||||||
|
that a dataflow leaves unwired. The strictness belongs to `dataflow.yml`, which drives
|
||||||
|
all of them.
|
||||||
|
|
||||||
|
**Known limitation (dora-cli 1.0.1).** A `git:` node pointing at a private repository
|
||||||
|
does not build: over `ssh://` on a non-standard port the connection fails, and over
|
||||||
|
`https://` libgit2 reports `remote authentication required but no callback set`. The
|
||||||
|
dataflow validates and the wiring is the form a consumer should use, but running it
|
||||||
|
needs that fixed or the repository made public.
|
||||||
|
|
||||||
### Node manifest
|
### Node manifest
|
||||||
|
|
||||||
[`dora-node.yml`](dora-node.yml) declares the node's inputs with type URNs. No source
|
[`dora-node.yml`](dora-node.yml) declares the node's inputs with type URNs. No source
|
||||||
|
|||||||
@@ -0,0 +1,40 @@
|
|||||||
|
# A real camera into the viewer, and the worked example of wiring this node to
|
||||||
|
# something that is not a test fixture.
|
||||||
|
#
|
||||||
|
# Not run by CI: it needs a camera and it fetches dora-webcam over the network.
|
||||||
|
# dataflow.yml is the gate, and needs neither.
|
||||||
|
#
|
||||||
|
# Known limitation, dora-cli 1.0.1: a `git:` node pointing at a *private*
|
||||||
|
# repository does not build. Over ssh:// on a non-standard port the connection
|
||||||
|
# fails outright, and over https:// libgit2 reports "remote authentication
|
||||||
|
# required but no callback set" -- dora has no credential callback, so neither
|
||||||
|
# transport authenticates. This file validates, and the wiring below is the form
|
||||||
|
# a consumer should use; running it needs that fixed, or the repository public.
|
||||||
|
#
|
||||||
|
# `strict_types` is deliberately absent. A camera publishes an image and nothing
|
||||||
|
# else, and `dora validate --strict` warns about every *typed* input this node
|
||||||
|
# declares that a dataflow leaves unwired -- depth, camera_info and text here.
|
||||||
|
# The wiring is correct; the strictness is aimed at the self-contained dataflow,
|
||||||
|
# which drives all of them.
|
||||||
|
|
||||||
|
nodes:
|
||||||
|
- id: camera
|
||||||
|
git: ssh://git@gitea.liria.cl:5001/liria/dora-webcam.git
|
||||||
|
tag: v0.1.0
|
||||||
|
build: uv pip install .
|
||||||
|
path: dora-webcam
|
||||||
|
inputs:
|
||||||
|
tick: dora/timer/millis/33
|
||||||
|
outputs:
|
||||||
|
- image
|
||||||
|
# dora-webcam's own manifest says this, but a `git:` node's manifest is not
|
||||||
|
# read at validate time -- only at build. Repeating it here is what makes
|
||||||
|
# the two contracts checked against each other now rather than at runtime.
|
||||||
|
output_types:
|
||||||
|
image: std/media/v1/Image
|
||||||
|
|
||||||
|
- id: view
|
||||||
|
path: dora-image-view
|
||||||
|
build: uv pip install .
|
||||||
|
inputs:
|
||||||
|
image: camera/image
|
||||||
Reference in New Issue
Block a user