Skip to content

Commit 5973076

Browse files
committed
docs: update README with accurate feature descriptions and FFI signature
1 parent 8e7ded1 commit 5973076

1 file changed

Lines changed: 5 additions & 4 deletions

File tree

README.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ An AV1 video encoder written from scratch in safe Rust with zero dependencies. P
99
## Features
1010

1111
- YUV 4:2:0 encoding (8-bit)
12-
- Intra prediction (DC mode) with per-pixel reconstructed context
12+
- Intra prediction (DC, V, H, Smooth, Paeth) with RD-cost mode selection
1313
- Inter prediction (GLOBALMV with LAST_FRAME reference)
14-
- Forward DCT transforms (4x4 chroma, 8x8 luma)
14+
- Forward DCT/ADST transforms with RD-cost type selection (4x4 chroma, 8x8/16x16 luma)
1515
- MSAC arithmetic coding with full coefficient encoding
1616
- GoP structure (keyframe + inter frames)
1717
- Arbitrary frame dimensions up to 4096x2304
@@ -25,6 +25,7 @@ An AV1 video encoder written from scratch in safe Rust with zero dependencies. P
2525
wav1c/ Core library with batch and streaming APIs
2626
wav1c-cli/ Command-line encoder
2727
wav1c-ffi/ C FFI shared library (cdylib + staticlib)
28+
wav1c-wasm/ WebAssembly bindings (wasm-bindgen)
2829
```
2930

3031
## Build
@@ -98,7 +99,7 @@ The `wav1c-ffi` crate produces `libwav1c_ffi.dylib` (macOS) / `libwav1c_ffi.so`
9899
Wav1cConfig cfg = { .base_q_idx = 128, .keyint = 25, .fps = 25.0 };
99100
Wav1cEncoder *enc = wav1c_encoder_new(320, 240, &cfg);
100101

101-
wav1c_encoder_send_frame(enc, y, y_len, u, u_len, v, v_len);
102+
wav1c_encoder_send_frame(enc, y, y_len, u, u_len, v, v_len, width, width / 2);
102103
Wav1cPacket *pkt = wav1c_encoder_receive_packet(enc);
103104
// pkt->data, pkt->size contain raw AV1 OBUs
104105

@@ -132,7 +133,7 @@ git apply /path/to/wav1c/ffmpeg-libwav1c.patch
132133
--extra-cflags="-I/path/to/wav1c/wav1c-ffi/include" \
133134
--extra-ldflags="-L/path/to/wav1c/target/release"
134135

135-
make -j$(nproc)
136+
make -j$(sysctl -n hw.ncpu 2>/dev/null || nproc)
136137

137138
# Encode
138139
./ffmpeg -i input.y4m -c:v libwav1c -wav1c-q 128 output.mp4

0 commit comments

Comments
 (0)