The source for the catcrafts.net website
- C++ 75.9%
- Shell 17%
- CSS 5.6%
- WGSL 1.1%
- JavaScript 0.4%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
All checks were successful
Deploy / build-deploy (push) Successful in 7m30s
The AV1-only publish lasted four hours in the wild: the first viewer on
mobile Safari got "bad media error" from the raw file, because a post's
link is fetched raw — Lemmy apps and browsers play that exact URL, with
no <source> negotiation in front of it. The previous commit's note
("--raw ... if that audience matters") had it backwards: the audience
that cannot play AV1 is not a per-post judgement call, it is whoever
happens to open the thread on an iPhone.
So publish-media.sh now emits two encodings and points the post at the
compatible one:
* Every video transcode also produces <hash>.h264.mp4 (x264 crf 23,
same denoise, same frames), uploaded beside the AV1 under the AV1's
hash — the poster's sibling-naming trick, reused, so fetch-media.sh
finds it by name with nothing to look up.
* The printed URL to paste into the post is the H.264 one. pict-rs
can thumbnail it too, so instance thumbnails come back as a bonus.
fetch-media.sh adopting an own-origin .h264.mp4 URL swaps the AV1 back
in as the page's primary when it is on the mount, and records the H.264
as `fallback` in posts.json. The renderer turns a non-empty fallback
into a <source> pair: the AV1 first with an explicit codecs parameter —
both files are video/mp4, so the parameter is the only thing that lets
a non-AV1 browser skip to the file it can play — and the H.264 second.
Browsers with AV1 keep downloading the small file; Safari before 17
gets one that plays instead of an element that will not.
e2e gains the matching conditional gate: a page offering an av01
<source> must offer an .h264.mp4 one, so an AV1 video can never again
ship without its fallback.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
||
| .forgejo/workflows | ||
| content | ||
| deploy | ||
| images | ||
| implementations | ||
| interfaces | ||
| server | ||
| shaders | ||
| shared/interfaces | ||
| styles | ||
| tools | ||
| .gitignore | ||
| catcrafts-head.js | ||
| favicon.svg | ||
| LICENSE | ||
| project.cpp | ||
| README.md | ||
| robots.txt | ||
catcrafts.net
This is the source code for catcrafts.net, a website built entirely in C++ using the Crafter.Graphics library.
crafter-build -r
This will compile the project and serve it locally on http:://localhost:8080.
This project is source available for educational and viewing purposes only. No permission is granted to copy, modify, distribute, or create derivative works.