Some checks failed
build / build (push) Has been cancelled
Crash fix (4K delete EXCEPTION_ACCESS_VIOLATION): - JavaCvBackend.stopWorker() no longer calls grabber.close() from caller thread. Only flips running=false, stops/flushes audio line, then interrupt+join(2s). The worker's own finally still closes grabber from the decoder thread, so the av_frame native plane is never freed mid-memCopy. - Validate memCopy length against ByteBuffer.capacity() AND width*height*4 before copying, and re-check running/closed inside the frameLock. Config: - max_preload_mb (default 1024) — replaces the hard-coded 512 MB cap in VideoCache. Pushed to clients at join via CachePolicyPayload. - render_distance_blocks (default 128) — replaces the hard-coded 128 in VideoAnchorRenderer.getViewDistance(). Mirrored client-side via ClientPolicy. Command rename: /videopreload → /videoCache add|list|remove - Persistent named index in cache_entries (server config). - /videoCache list prints clickable URLs (ClickEvent.OpenUrl). - /videoCache remove broadcasts DeleteCachePayload so each client purges its disk cache file. Name resolution: - /videoPlace ... <urlOrName> and the GUI save path both accept a /videoCache name in place of an http(s) URL; VideoPlayerConfig.resolveUrlOrName() does the lookup server-side before persisting to the anchor BE. Cleanup: - Drop the lowercase Brigadier aliases (videoplace, videostick, videodelete, videomute) — keep camelCase only.
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.13
|
|
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
|