Some checks failed
build / build (push) Has been cancelled
0.4.10 still played at ~2-5 fps even though the decoder buffer was preallocated. Root cause: the single-slot staging buffer was paced by SourceDataLine backpressure at the audio buffer's granularity (~0.5 s), so the decoder burst-produced ~12 video frames into the slot while audio drained, the consumer saw only the last frame of each burst, then the decoder stalled until audio drained again. Net visible rate ~ source_fps / frames_per_burst. Fix: - Replace single staging slot with a 4-slot ring (preallocated, FIFO). Decoder writes to ringTail; if full, overwrites oldest and bumps droppedFrames so we can see overflow in the log. Render thread drains oldest under the same lock — no allocation, no race. - Shrink audio driver buffer 0.5 s → 0.1 s so the decoder is paced more tightly. Burst size collapses from ~12 frames to 2-3, which fits inside the ring. - Log decoder spec on start (WxH @ fps, audio Hz x ch, ring depth) and produced/consumed/dropped counters every ~10 s. Lets the user log confirm whether the decoder is keeping real-time pace and whether the ring is overflowing. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
17 lines
457 B
Properties
17 lines
457 B
Properties
org.gradle.jvmargs=-Xmx2G
|
|
org.gradle.parallel=true
|
|
# Config cache disabled — new loom + IntelliJ aren't fully compatible yet
|
|
org.gradle.configuration-cache=false
|
|
|
|
# Mod
|
|
mod_id=video_player
|
|
mod_version=0.4.11
|
|
maven_group=com.ejclaw.videoplayer
|
|
archives_base_name=video_player
|
|
|
|
# Minecraft / Fabric (26.1.2 — single target, intermediary/Yarn retired)
|
|
minecraft_version=26.1.2
|
|
loader_version=0.19.2
|
|
loom_version=1.16-SNAPSHOT
|
|
fabric_version=0.149.0+26.1.2
|