Commit Graph
8 Commits
Author SHA1 Message Date
Matteo Benedetto c334bfcc83 test,docs: fix section 6 vsink ref; update docs with SDL timing results and RenderPresent root cause 2026-03-24 11:02:54 +01:00
Matteo Benedetto 528c7f94e7 docs: update benchmark log with full videoscale optimization history and results 2026-03-24 10:56:53 +01:00
Matteo Benedetto eaffa0026d docs: record NV12 benchmark results and next-step analysis
Add benchmark log table to development-status.md comparing:
  - a201594: extract_dup+from_buffer_copy (2 copies, 6MB/frame) → 36.5ms, 87.6% budget
  - da02e74: buffer.map+memmove into reusable ctypes array (1 copy, 3MB/frame) → 33.6ms, 80.5% budget

Note that the 3.1MB memmove is now the remaining bottleneck and further
reduction would require DMA-buf zero-copy via kernel VPU driver support.

Update next actions: profile SDL upload overhead, explore dmabuf fd path,
and consider 720p downscale option if stutter appears under combined load.
2026-03-24 01:14:04 +01:00
Matteo Benedetto d79bc3e16f deploy: bundle pre-built MPP libs for RK3326, update setup script and status
- deploy/arkos/mpp-libs/: add librockchip_mpp.so*, librockchip_vpu.so*,
  libgstrockchipmpp.so — built from source via Docker QEMU (arm64v8/ubuntu:focal)
  using rockchip-linux/mpp + JeffyCN/mirrors@gstreamer-rockchip (-Drga=disabled)
- deploy/arkos/setup_hw_decode.sh: detect mpp-libs/ subdir and install from it
  automatically, no network required; apt fallback retained
- deploy/arkos/mpp-libs/README.md: document origin, target SoC, install steps
- tests/test_video_playback_device.py: on-device GStreamer diagnostic script
- docs/development-status.md: mark MPP HW decode deployed, mppvideodec verified

Verified on physical R36S: mppvideodec found by GStreamer registry with
GST_PLUGIN_PATH=/usr/lib/aarch64-linux-gnu/gstreamer-1.0
2026-03-23 22:37:41 +01:00
Matteo Benedetto 544ed8bc6d ui: runtime-scaled layout for 640x480 and 720x720 displays 2026-03-22 16:57:24 +01:00
Matteo Benedetto 4b4c90fb0c deploy: add run.sh launch wrapper with GST_PLUGIN_PATH+LD_PRELOAD for R36S
On linux-aarch64 the conda gst-libav package has an unfixable ABI mismatch
(libdav1d.so.6 missing, libicuuc.so.78 via libxml2-16). Fix: use system
gstreamer1.0-libav installed via apt with GST_PLUGIN_PATH, and preload
system libgomp.so.1 to avoid static TLS block errors when dlopen loads
libgstlibav.so. avdec_h264 and avdec_aac now register correctly on device.

These vars are stored in conda activate.d/gst-env.sh and in deploy/run.sh.
2026-03-22 16:30:57 +01:00
Matteo Benedetto 193e914ffd Refresh env, add aiohttp dep, improve resource selection and GStreamer flags 2026-03-22 12:32:40 +01:00
Matteo Benedetto 1d89c7fdc7 Initial import 2026-03-21 15:55:32 +01:00