• v0.4.21
    Some checks failed
    build / build (push) Has been cancelled
    Stable

    claude-bot released this 2026-05-16 22:57:52 +09:00 | 10 commits to main since this release

    일반 다운로드 완료 경로의 publish race 닫기 + 헬퍼 추출.

    • v0.4.20 까지: 재인덱싱 분기는 post-put 검사를 추가했으나 일반 다운로드 완료 경로는 post-move 검사 후 그냥 READY.put → 그 사이 clear 가 들어오면 stale 엔트리/완료 채팅.
    • 수정: publishIfNotCancelled(url, path, startEpoch) 헬퍼 추출 (pre-check → put → post-check → rollback). 양쪽 publish 사이트 (재인덱싱 + 다운로드 완료) 모두 이 헬퍼 경유.
    • 구조적 이점: 향후 추가될 publish 지점에서 post-check 빼먹기 어려움.

    리뷰어 지적 반영.

    Downloads
  • v0.4.20
    Some checks failed
    build / build (push) Has been cancelled
    Stable

    claude-bot released this 2026-05-16 22:54:20 +09:00 | 11 commits to main since this release

    재인덱싱 경로의 publish race 닫기 + preload 가드 강화.

    • 기존 캐시 재인덱싱 분기는 epoch 1회만 검사 후 READY.put → clear 가 그 사이에 들어오면 stale 엔트리 부활. v0.4.19 의 post-move 패턴을 동일하게 적용: pre-check → put → post-check + rollback (remove + 파일 삭제).
    • preload() 가드를 READY.containsKeylookup() != null 로 변경. lookup 은 파일 존재까지 확인하므로 디스크와 어긋난 stale 키가 있어도 자동으로 self-heal 되어 재다운로드가 가능.

    리뷰어 지적 반영.

    Downloads
  • v0.4.19
    Some checks failed
    build / build (push) Has been cancelled
    Stable

    claude-bot released this 2026-05-16 22:51:32 +09:00 | 12 commits to main since this release

    /videoCache clear 의 post-move publish race 닫음.

    • v0.4.18 은 Files.move 직전 만 epoch 검사 → move 와 READY.put 사이 윈도우가 살아 있었음.
    • 이 윈도우에 clearAll 이 들어오면: epoch++ → READY clear → 파일 삭제 → download 가 READY.put 으로 부활 + "완료" 채팅까지 emit.
    • 수정: move 직후 두 번째 epoch 검사 추가. mismatch 면 finalPath 삭제 후 publish 스킵.

    리뷰어 지적 반영.

    Downloads
  • v0.4.18
    Some checks failed
    build / build (push) Has been cancelled
    Stable

    claude-bot released this 2026-05-16 22:48:16 +09:00 | 13 commits to main since this release

    /videoCache clear 도중 다운로드 race 수정.

    • 이전: clearAll() 이 IN_FLIGHT 만 비우고 진행 중인 다운로드는 그대로 둠 → 그 다운로드가 .part → 최종 move 후 READY 에 다시 등록되어 캐시 파일 한 개가 clear 이후에 부활.
    • 수정: AtomicLong CACHE_EPOCH 추가. preload 가 epoch 캡처, clearAll 이 epoch 증가, download 가 pre-start / read loop / pre-publish 세 지점에서 검사. mismatch 시 .part 삭제 후 종료. Windows 호환을 위해 stream close 이후에 삭제.
    • clearAll 단계 순서: epoch 증가 → index 비우기 → 파일 삭제.

    리뷰어 지적 반영.

    Downloads
  • v0.4.17
    Some checks failed
    build / build (push) Has been cancelled
    Stable

    claude-bot released this 2026-05-16 22:40:40 +09:00 | 14 commits to main since this release

    music_quiz 데이터팩 연동 핸드셰이크 추가 — docs/mc_video_player_mod_integration.md 사양 구현.

    서버:

    • 매 server tick #server mq_video_mod = 1
    • 클라이언트의 hello payload 수신 시 <player> mq_video_mod = 1
    • mq_video_mod objective 부재 시(데이터팩 미적용) 조용히 skip

    클라이언트:

    • JOIN 시 hello 1 회 전송
    • 이후 ~5 초 주기 재전송 (필수 — 데이터팩 mq:players/login 이 score 를 0 으로 리셋하기 때문)

    페이로드: video_player:mq_hello (VAR_INT version, v1).

    Downloads
  • v0.4.16
    Some checks failed
    build / build (push) Has been cancelled
    Stable

    claude-bot released this 2026-05-16 20:08:25 +09:00 | 15 commits to main since this release

    v0.4.16 — fix v0.4.15 regressions

    1. max_cache_mb 가 저장됨. VideoPlayerConfig.save()max_cache_mb 키를 빠뜨려서, auto-augment 한 직후 다시 사라지는 버그를 고침. 이제 /videoCache add/remove/clear 후에도 새 키가 그대로 유지.
    2. /videoCache clear 가 진짜 전부 삭제됨.ClearCachePayload 가 클라이언트 video_player_cache/ 디렉터리 전체를 wipe. 등록 안 된 leftover 파일·legacy preload 다운로드·이전 세션 잔여물까지 한 방에 정리. 등록 목록이 비어 있어도 클라이언트에 wipe 신호가 나감.
    3. 전체 캐시 cap 이 병렬 다운로드에서도 보장됨. 다운로드를 single-thread executor 로 직렬화. 50개가 동시에 join 해도 한 번에 하나씩 받으므로 cacheDirSize() 가 직전 완료분을 포함한 정확한 사용량을 봄.

    설치는 v0.4.15 와 동일. config 파일은 자동 보강되니 안 건드려도 됨.

    Downloads
  • v0.4.15
    Some checks failed
    build / build (push) Has been cancelled
    Stable

    claude-bot released this 2026-05-16 20:01:41 +09:00 | 16 commits to main since this release

    v0.4.15 — split per-video vs total cache cap

    • max_preload_mb is now strictly the per-video download cap. Default raised from 750 → 2048 MB so a single 4K short clip can preload without hitting the wall.
    • New max_cache_mb knob caps the total client-side cache directory size. Default 750 MB, sized for ~50 short FHD clips (5 Mbps × 20 s ≈ 12.5 MB each). Enforced cooperatively at the start of each /videoPreload download and during the read loop, so late-arriving bytes can't blow past the cap.
    • VideoPlayerConfig.load() now detects missing keys (max_preload_mb, max_cache_mb, render_distance_blocks) in config/video_player.json and rewrites the file once with defaults filled in. Existing servers pick up new options automatically — no need to delete the file.
    • CachePolicyPayload now carries (maxPerVideoBytes, maxCacheBytes, renderDistanceBlocks). Client chat errors distinguish "단일 영상 NMB 초과" vs "전체 캐시 NMB 초과".
    • dist/ added to .gitignore (release artifacts attach to Gitea releases, never committed).

    Install

    Same as v0.4.14. Pick the jar matching your client's OS/arch; the vanilla video_player-0.4.15.jar requires JavaCV on the user-supplied classpath.

    Downloads
  • v0.4.14
    Some checks failed
    build / build (push) Has been cancelled
    Stable

    claude-bot released this 2026-05-16 19:52:40 +09:00 | 17 commits to main since this release

    v0.4.14

    /videoCache clear 추가 — 저장된 모든 named 항목을 한 번에 삭제하고, 접속 중인 모든 클라이언트에 cache_delete 를 보내서 디스크 캐시 파일도 같이 정리. remove <이름> 을 한 줄씩 안 쳐도 됨.

    기본 max_preload_mb 1024 → 750 — 20초 FHD 영상 약 50개 분량 (FHD H.264 ~5 Mbps × 20 s ≈ 12.5 MB → 50 × 15 MB ≈ 750 MB, 여유 포함) 에 맞춰 다시 잡았습니다. 이미 video_player.jsonmax_preload_mb 가 들어가 있는 서버는 그 값 그대로 사용 — 새 기본값은 fresh install 과 클라이언트 bootstrap (JOIN policy packet 도착 전) 에만 적용됩니다.

    다른 동작은 v0.4.13 과 동일.

    다운로드

    자기 OS 에 맞는 jar 받아서 v0.4.13 과 교체:

    • Windows x64: video_player-windows-x86_64-0.4.14.jar
    • Linux x64: video_player-linux-x86_64-0.4.14.jar
    • macOS Intel: video_player-macosx-x86_64-0.4.14.jar
    • macOS Apple Silicon: video_player-macosx-arm64-0.4.14.jar
    • 직접 JavaCV 설치: video_player-0.4.14.jar
    Downloads
  • v0.4.13
    Some checks failed
    build / build (push) Has been cancelled
    Stable

    claude-bot released this 2026-05-16 04:03:43 +09:00 | 18 commits to main since this release

    v0.4.13

    4K 영상 삭제 시 튕김 수정: 디코더 스레드의 MemoryUtil.memCopy 가 진행 중일 때 다른 스레드에서 grabber.close() 가 native plane 을 free 해버리면서 발생하던 EXCEPTION_ACCESS_VIOLATION 을 race-free 구조로 재설계. 이제 grabber.close() 는 디코더 스레드 자신만 호출하고, stop 측은 신호+interrupt+join 만 합니다.

    Config 추가 (<gameDir>/config/video_player.json):

    • max_preload_mb (기본 1024) — 클라이언트가 한 영상을 캐시할 때 받는 최대 크기. 기존 하드코딩된 512 MB 캡을 대체. 20초 FHD 영상 50개 = 약 600 MB 라서 1 GB 면 여유 있음.
    • render_distance_blocks (기본 128) — 영상 패널이 보이는 최대 거리(블록). 기존 하드코딩된 128 을 대체.

    명령어 변경:

    • /videopreload/videoCache 로 이름 변경 + 서브커맨드:
      • /videoCache add <이름> <주소> — 이름 등록 + 전 클라이언트에 preload 전송. 이름 중복 불가.
      • /videoCache list — 등록된 항목 [이름] : [주소] (주소 클릭 가능).
      • /videoCache remove <이름> — 서버 config 에서 삭제 + 전 클라이언트의 디스크 캐시 파일도 삭제.
    • /videoPlace ... <url|이름>add 로 등록한 이름을 URL 대신 넣으면 같이 재생. 우클릭 GUI 도 동일.
    • 대문자/소문자 alias 정리: 이제 /videoStick, /videoPlace, /videoDelete, /videoMute, /videoCache 만. 소문자 alias 는 제거됨.

    기타:

    • memCopy 길이를 src.capacity()width * height * 4 둘 다로 검증 (reviewer 권고).
    • JOIN 시 정책 payload (max_preload_mb + render_distance_blocks) 를 먼저 전송하고 그 다음 preload URL 들 전송.

    다운로드

    자기 OS 에 맞는 jar 받으세요:

    • Windows x64: video_player-windows-x86_64-0.4.13.jar
    • Linux x64: video_player-linux-x86_64-0.4.13.jar
    • macOS Intel: video_player-macosx-x86_64-0.4.13.jar
    • macOS Apple Silicon: video_player-macosx-arm64-0.4.13.jar
    • 직접 JavaCV 설치하는 분: video_player-0.4.13.jar
    Downloads
  • v0.4.12 — single-sided anchor quad
    Some checks failed
    build / build (push) Has been cancelled
    Stable

    claude-bot released this 2026-05-16 03:29:03 +09:00 | 19 commits to main since this release

    v0.4.12 — 앵커 단방향 렌더링

    앵커는 디자인상 벽에 붙어있는 구조 → 뒷면은 항상 벽 너머라 보이지 않는데, 그 동안 양면을 다 그리고 있었습니다. 뒷면 vertex 4개 제거 → fragment shader 부하 절반, vertex 처리도 절반.

    부가효과: 만약 player 가 spectator 모드로 벽을 뚫고 들어가서 뒤에서 봤을 때 보였던 mirrored 텍스처 artifact 도 같이 사라집니다.

    0.4.11 까지의 디코더 페이싱 / ring buffer / RGBA pixel format 등은 그대로 유지.

    받기

    • Windows 64bit: video_player-windows-x86_64-0.4.12.jar
    • macOS Intel: video_player-macosx-x86_64-0.4.12.jar
    • macOS Apple Silicon: video_player-macosx-arm64-0.4.12.jar
    • Linux 64bit: video_player-linux-x86_64-0.4.12.jar
    • 바닐라(JavaCV 별도 설치용): video_player-0.4.12.jar
    Downloads