@@ -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
2525wav1c/ Core library with batch and streaming APIs
2626wav1c-cli/ Command-line encoder
2727wav1c-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`
9899Wav1cConfig cfg = { .base_q_idx = 128, .keyint = 25, .fps = 25.0 };
99100Wav1cEncoder * 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 );
102103Wav1cPacket * 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