Stream block uploads and compress cached mouth crops
This commit is contained in:
parent
65ad67c129
commit
a611b86c0d
9 changed files with 195 additions and 16 deletions
|
|
@ -444,9 +444,12 @@ must never run while the transport is moving.
|
|||
|
||||
The mouth crops are the non-obvious entry, and they are what makes remote work
|
||||
possible at all. `extractTeeth` reads source pixels, so without them a
|
||||
collaborator holding the analysis but not the 600 source PNGs cannot touch a
|
||||
single teeth knob. A 40×30 crop is about 1.2KB; a 600-frame take is under a
|
||||
megabyte against hundreds for the footage.
|
||||
collaborator holding the analysis but not the source video cannot touch a
|
||||
single teeth knob without decoding video again. These are RGBA crops: a 40×30
|
||||
crop is 4.8KB raw, and current 200-pixel-wide crops can total over 12MB for a
|
||||
take. The blob store compresses `source/crops` losslessly with zlib; block reads
|
||||
return the original pixels. Run `python manage.py compress_crop_blocks` once to
|
||||
convert existing raw crop blobs and remove their unreferenced copies.
|
||||
|
||||
### Bake B — resolved geometry. For scale.
|
||||
|
||||
|
|
@ -573,7 +576,7 @@ POST /api/analyses {key, descriptor} idempotent
|
|||
GET /api/analyses/<key> metadata + source block keys
|
||||
PUT /api/analyses/<key> link dense landmarks, mask, crops
|
||||
POST /api/blocks/missing {keys} -> {missing}
|
||||
POST /api/blocks {key, descriptor, data, state}
|
||||
POST /api/blocks multipart: key, descriptor, data file, optional state file (JSON also accepted)
|
||||
GET /api/blocks/<key>
|
||||
GET /api/footage/<id> the manifest: video and stream URLs, audio, a URL per tracing still
|
||||
GET /blob/<digest> immutable bytes, with byte ranges for video playback
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue