-
12020b019c
fix(video): normalize VideoToolbox plane strides to tight I420
main
video-usable-20260526
Siavash Sameni
2026-05-26 15:22:40 +04:00
-
3ea25a0656
fix(android): use MediaCodec input layout for video encode
Siavash Sameni
2026-05-26 11:35:24 +04:00
-
112472609e
fix(video): add frame metadata and Android encode diagnostics
Siavash Sameni
2026-05-26 11:28:17 +04:00
-
9a7745978b
feat(video): add codec and resolution controls
Siavash Sameni
2026-05-26 10:05:20 +04:00
-
f85efb9576
fix(video): improve android stream smoothness
Siavash Sameni
2026-05-26 09:57:10 +04:00
-
31b2caa54d
fix(video): request keyframes after packet loss
Siavash Sameni
2026-05-26 09:23:08 +04:00
-
079e21e174
fix(video): resync decoder after packet gaps
Siavash Sameni
2026-05-26 09:16:02 +04:00
-
e676641538
fix(android): suppress debuggable lint for diagnostic builds
Siavash Sameni
2026-05-26 09:09:06 +04:00
-
9713efc404
chore(android): add release debuggable build
Siavash Sameni
2026-05-26 09:05:09 +04:00
-
8415804a1a
fix(video): vsync remote canvas draws
Siavash Sameni
2026-05-26 08:46:11 +04:00
-
f65b399a21
fix(build): preserve debuggable android APKs
Siavash Sameni
2026-05-26 08:35:46 +04:00
-
3437a6bd11
debug(video): add android frame dump pull helper
Siavash Sameni
2026-05-26 08:34:36 +04:00
-
15eb00ed5e
debug(video): dump frames across capture and decode
Siavash Sameni
2026-05-26 07:39:21 +04:00
-
0c2297a2b7
fix(video): sync camera capture and float preview
Siavash Sameni
2026-05-26 07:30:19 +04:00
-
a08a37b5eb
fix(video): stabilize relay streams and remote rendering
Siavash Sameni
2026-05-26 07:18:22 +04:00
-
f6ace54556
fix(call): enable direct video and shorten portmap probe
Siavash Sameni
2026-05-26 06:35:31 +04:00
-
47baa1a765
fix(video): reassemble out-of-order fragments
Siavash Sameni
2026-05-26 06:16:53 +04:00
-
ee654cd1ef
fix(video): skip startup black frames
Siavash Sameni
2026-05-25 21:35:00 +04:00
-
d2046060b5
fix(video): request android sync frames via mediacodec
Siavash Sameni
2026-05-25 21:28:59 +04:00
-
0b7bf1b385
fix(video): feed android h264 encoder nv12
Siavash Sameni
2026-05-25 21:20:01 +04:00
-
e8f139588a
chore(video): sample decoded frames periodically
Siavash Sameni
2026-05-25 21:14:32 +04:00
-
0115b11de7
chore(video): log compact video samples
Siavash Sameni
2026-05-25 21:06:32 +04:00
-
fa812a17d9
fix(video): normalize mediacodec buffers
Siavash Sameni
2026-05-25 21:02:41 +04:00
-
8d6b168f1b
fix(video): normalize camera frames before encoding
Siavash Sameni
2026-05-25 20:49:32 +04:00
-
ca164ada5c
fix(relay): forward legacy h264 room video stream
Siavash Sameni
2026-05-25 20:46:41 +04:00
-
2d58bae9ba
chore(relay): log video forwarding decisions in debug tap
Siavash Sameni
2026-05-25 20:42:24 +04:00
-
e1ca6ca6e6
fix(video): use relay-default stream for room video
Siavash Sameni
2026-05-25 20:39:25 +04:00
-
06d28a9280
fix(video): preserve annex-b mediacodec output
Siavash Sameni
2026-05-25 20:20:22 +04:00
-
d57ebe3d2c
fix(video): force h264 and trace frame pipeline
Siavash Sameni
2026-05-25 20:03:11 +04:00
-
7eca79846f
fix(quality): use windowed loss instead of cumulative for codec adaptation
Siavash Sameni
2026-05-25 18:55:57 +04:00
-
25b3278d31
feat(android): wire video send + recv in Android engine; add video:* debug events
Siavash Sameni
2026-05-25 18:19:42 +04:00
-
cbc3a8d37e
feat(ui): full-screen video stage with PiP local preview
Siavash Sameni
2026-05-25 17:53:10 +04:00
-
1329abbeba
docs(prd): rewrite E2E PRD — prior approach broke multi-client voice
Siavash Sameni
2026-05-25 17:44:57 +04:00
-
e8cab25eda
fix: revert E2E AEAD wrapping (broke multi-client voice); add Android CAMERA
Siavash Sameni
2026-05-25 17:04:56 +04:00
-
c41ced53e1
feat(ui): add Join Video button — joins call and auto-starts camera
Siavash Sameni
2026-05-25 16:39:27 +04:00
-
7fd66be6c8
Merge branch 'experimental-ui'
Siavash Sameni
2026-05-25 15:30:45 +04:00
-
-
8002acaf09
fix(scripts): stage android-build-async.sh and featherchat submodule
Siavash Sameni
2026-05-25 15:30:41 +04:00
-
06253fdeeb
feat(video+desktop): camera capture, video UI, E2E AEAD wiring, test fixes
Siavash Sameni
2026-05-25 15:30:26 +04:00
-
01f55caa96
fix(build): escape awk single-quotes inside bash -c heredoc
experimental-ui
Siavash Sameni
2026-05-25 10:17:43 +04:00
-
0f93a2b745
fix(build): patch unsigned APK directly instead of re-running Gradle
Siavash Sameni
2026-05-25 09:56:42 +04:00
-
2b93bd4b45
fix(build): copy frontendDist to Android assets after cargo tauri build
Siavash Sameni
2026-05-25 09:51:48 +04:00
-
bc021517c0
feat(scripts): android-build-async.sh — fire-and-forget APK builder
Siavash Sameni
2026-05-25 09:39:49 +04:00
-
739bdaf3ab
feat(debug): emit media:room_update and participants call-event from signal task
Siavash Sameni
2026-05-25 09:07:08 +04:00
-
bc1668ed96
fix(android): run set_audio_mode_communication on Tauri main thread
Siavash Sameni
2026-05-25 08:18:18 +04:00
-
77b036439b
fix(android): spawn_blocking + 2s timeout for set_audio_mode_communication
Siavash Sameni
2026-05-25 08:08:24 +04:00
-
0ebc73ab13
fix(android): remove legacy connected event_cb; add preflight_start debug step
Siavash Sameni
2026-05-25 08:02:19 +04:00
-
394987a349
fix(android): 8s Rust timeout on audio_start; always emit connect: debug events
Siavash Sameni
2026-05-25 07:49:21 +04:00
-
2aa6582585
fix(android): call-debug instrumentation for audio startup path
Siavash Sameni
2026-05-25 07:38:38 +04:00
-
ca987d547c
fix(android): return -6 on Oboe start timeout; fix error toast; add bug report
Siavash Sameni
2026-05-25 07:31:55 +04:00
-
5a13f12334
fix(android): spawn_blocking for audio_start + 15s JS connect timeout
Siavash Sameni
2026-05-25 07:13:26 +04:00
-
b0a3b1f18e
fix: 10s timeout on handshake CallAnswer; button stays visible during connect
Siavash Sameni
2026-05-25 06:59:57 +04:00
-
32c07d1b61
fix(ui): show error toast + guard double-tap on join; ntfy relay deploy
Siavash Sameni
2026-05-25 06:49:05 +04:00
-
5d05b021aa
fix(wzp-video): gate shiguredo AV1 crates to macOS only; fix Linux relay build
Siavash Sameni
2026-05-25 06:33:35 +04:00
-
4ac62d99e0
fix(audit): M1 — add version: u8 to all SignalMessage variants
Siavash Sameni
2026-05-25 06:27:23 +04:00
-
4ebb2dac2d
feat(scripts): add --deploy flag to build-linux-docker.sh
Siavash Sameni
2026-05-25 06:25:32 +04:00
-
52a6f5e048
fix(audit): address C2, C3, M4, M5 from 2026-05-25 audit
Siavash Sameni
2026-05-25 06:20:05 +04:00
-
15af58a95d
fix(wzp-video): fix ndk 0.9 MediaCodec API + missing constants for Android build
Siavash Sameni
2026-05-25 06:05:58 +04:00
-
ed8a7ae5aa
docs: protocol audit 2026-05-25, update architecture + Obsidian vault
Siavash Sameni
2026-05-25 06:00:17 +04:00
-
12b0d9738f
fix(wzp-crypto): derive AEAD nonces from MediaHeader.seq, not recv_seq
Siavash Sameni
2026-05-25 06:00:01 +04:00
-
f78794f4b6
chore: pin @tauri-apps/api to ^2.11 to match Cargo.lock
Siavash Sameni
2026-05-25 05:55:20 +04:00
-
f3e3ee5ed0
fix(wzp-video): cfg-gate dav1d + svt-av1 off Android target
Siavash Sameni
2026-05-12 19:58:37 +04:00
-
f28f39d814
ci: gitleaks allowlist for historical findings
Siavash Sameni
2026-05-12 19:51:51 +04:00
-
1e729e4b1d
T6.3: Design exploration for federated reputation gossip
Siavash Sameni
2026-05-12 19:13:31 +04:00
-
086d0a4845
T6.1.2: Wire AV1 into call engine (factory + step tables)
Siavash Sameni
2026-05-12 19:04:33 +04:00
-
9334aa5ccd
T6.1: AV1 encoder/decoder with HW probe + SVT-AV1 SW fallback
Siavash Sameni
2026-05-12 18:33:43 +04:00
-
553c8a4ce1
T6.1 plan: expand skeleton with files/steps/verify/done-when for AV1 encoder/decoder
Siavash Sameni
2026-05-12 18:08:27 +04:00
-
8d8dddbd35
docs: add T6.2 report and update status board to Pending Review
Siavash Sameni
2026-05-12 17:45:04 +04:00
-
f16d650721
T6.2: Tier F video scorer — keyframe periodicity, I/P ratio, BWE responsiveness + 10 tests
Siavash Sameni
2026-05-12 17:42:39 +04:00
-
31f2fdef1e
T6.2 plan: expand skeleton with files/steps/verify/done-when for video scorer
Siavash Sameni
2026-05-12 17:14:25 +04:00
-
fc9908cd4c
docs: fix commit SHA in T5.7.1 report
Siavash Sameni
2026-05-12 16:49:16 +04:00
-
517d0ebfe0
T5.7.1: Unify Verdict enum into wzp_relay::verdict, drop RepeatAbusive variant
Siavash Sameni
2026-05-12 16:48:12 +04:00
-
cf4940417e
docs: add T5.1.1–T5.8 reports and update status board to Pending Review
Siavash Sameni
2026-05-12 15:41:28 +04:00
-
ffded2a913
clippy: fix wzp-relay lint issues (empty doc, unused var, TokenExhausted, Default, dead field)
Siavash Sameni
2026-05-12 15:40:55 +04:00
-
283edd38eb
clippy: fix very_complex_type in wzp-video (HevcParameterSets alias)
Siavash Sameni
2026-05-12 15:40:19 +04:00
-
fdfaed5390
fmt: cargo fmt --all
Siavash Sameni
2026-05-12 15:40:02 +04:00
-
dbbab0decf
T5.8: Tier G response policy — Verdict enum + ResponsePolicy + typed Hangup::PolicyViolation + 9 tests
Siavash Sameni
2026-05-12 15:13:20 +04:00
-
5fda5ecc52
T5.7: Tier F audio scorer — IAT CoV + silence fraction + bitrate + Q-flag + bimodality + 11 tests
Siavash Sameni
2026-05-12 15:09:28 +04:00
-
2bbb664df4
T5.6: Per-receiver layer selection at SFU — ReceiverState + hysteresis + forwarding filter
Siavash Sameni
2026-05-12 15:05:32 +04:00
-
2f1a9f74d5
T5.5: 3-layer simulcast at sender — SimulcastEncoder + tick_simulcast() + 10 tests
Siavash Sameni
2026-05-12 14:56:48 +04:00
-
b197651557
T5.4: H.265 encoder/decoder wrappers — VideoToolbox + MediaCodec, CodecId::H265Main
Siavash Sameni
2026-05-12 14:50:20 +04:00
-
9c41d1acdd
T5.3 status: Approved (reviewer update)
Siavash Sameni
2026-05-12 14:50:12 +04:00
-
e34c40dc0f
T5.1.1: PriorityMode default = AudioFirst, QualityProfile backward-compat JSON, SetPriorityMode roundtrip
Siavash Sameni
2026-05-12 14:50:06 +04:00
-
c48cb6fbcb
T5.3: EncoderMode::SlideFallback — SD-floor detection + VideoEncoder::set_mode() trait hook
Siavash Sameni
2026-05-12 12:40:53 +04:00
-
2e0bdc5904
T5.2: VideoQualityController with per-mode allocation gates + 8-step target table
Siavash Sameni
2026-05-12 12:34:32 +04:00
-
276ecc660e
T5.1: PriorityMode enum + SetPriorityMode signal; extend QualityProfile with video fields
Siavash Sameni
2026-05-12 12:21:11 +04:00
-
001d94f9ae
T4.7 rework: make should_forward_pli take now: Instant + 6 unit tests
Siavash Sameni
2026-05-12 11:39:35 +04:00
-
36b0421d68
T4.7: PLI suppression at SFU — 200 ms dedup window per (room, stream_id)
Siavash Sameni
2026-05-12 11:04:14 +04:00
-
828fbea2ea
T4.6: SFU keyframe cache — per-(room,sender,stream) I-frame replay on join
Siavash Sameni
2026-05-12 10:54:04 +04:00
-
cc5aef2534
T4.5: I-frame FEC ratio boost — keyframe-aware repair ratio in RaptorQFecEncoder
Siavash Sameni
2026-05-12 10:35:57 +04:00
-
397f9d2141
T4.3.1: MediaCodec AMediaCodec wiring via ndk crate (Android); fix wzp-android build on non-Android
Siavash Sameni
2026-05-12 10:03:43 +04:00
-
410c2a4335
T4.2.1: Real VideoToolbox VTCompressionSession / VTDecompressionSession wiring (macOS)
Siavash Sameni
2026-05-12 09:51:34 +04:00
-
81042ac190
T4.4: SignalMessage::Nack + PictureLossIndication; NACK sender/receiver state machines
Siavash Sameni
2026-05-12 09:25:29 +04:00
-
e177e63843
T4.3: MediaCodec H.264 encoder/decoder stub (Android)
Siavash Sameni
2026-05-12 09:15:06 +04:00
-
1f7d130de9
fix: T4.2 status board → Pending Review
Siavash Sameni
2026-05-12 09:10:50 +04:00
-
3356ba94c6
T4.2: VideoToolbox H.264 encoder/decoder traits (macOS, MVP)
Siavash Sameni
2026-05-12 09:09:57 +04:00
-
bb153a331d
fix: T4.1 status board → Pending Review
Siavash Sameni
2026-05-12 07:23:15 +04:00
-
490d2d31c6
T4.1: wzp-video crate scaffold + H.264 NAL framer + depacketizer
Siavash Sameni
2026-05-12 07:22:54 +04:00
-
db69f7e9d1
fix: T3.5 status board → Pending Review
Siavash Sameni
2026-05-12 06:46:28 +04:00
-
f1b86e0fed
T3.5: Tier E per-session token bucket
Siavash Sameni
2026-05-12 06:45:56 +04:00
-
8454835c18
fix: T3.4 status board → Pending Review
Siavash Sameni
2026-05-12 06:25:17 +04:00