Files
screen_cast/README.md
T
fegger 71218b1b1f feat(codec): implement software H.264 encode/decode round-trip
Add FFmpeg-based encoder/decoder with SPS/PPS extradata, Annex-B output

normalization, low-latency libx264 settings, and a round-trip unit test.

Includes review hardening: cached SwsContext, bitrate-only rate control,

std::byte/uin8_t cast helpers, and richer test assertions.
2026-09-07 10:07:50 +02:00

50 lines
1.0 KiB
Markdown

# screen_cast
A native Linux peer-to-peer screencast application.
- **Send** your desktop or a window to another Linux machine.
- **Receive** a stream and render it in a window.
- Built with **C++20**, **Meson**, **PipeWire**, **FFmpeg**, **RTP/UDP**, and
**SDL**.
> This project is in early development. The H.264 codec path is implemented;
> capture, transport, and rendering are still in progress.
## Quick start
Requirements:
- C++20 compiler (GCC 12+, Clang 16+)
- Meson >= 0.63
- Ninja
- FFmpeg development packages (`libavcodec`, `libavutil`, `libswscale`)
- (later phases) PipeWire dev, SDL2/3 dev
Build and run tests:
```sh
meson setup build
meson compile -C build
meson test -C build --print-errorlogs
```
Run with verbose test output:
```sh
meson test -C build -v
```
## Architecture
See `docs/ARCHITECTURE.md` for module boundaries and design rules.
## Roadmap
Development is split into phases in `docs/PHASES.md`.
Current phase: **Phase 3 — PipeWire screen capture**.
## License
MIT — see `LICENSE` (to be added).