한선씨 미디어 도메인 커버리지 실측 (2026-07-09)
개요
한선씨(크라우니어)의 [미디어] 도메인 커버리지를 대표과제 10종으로 정량 실측. 컴파일+실행 로그 기반 채점.
결과 요약
- coverage_pct = 75% (full 6 / partial 3 / none 1, 10개 과제 중)
- 산출 파일:
/Users/ef/CrownyOS/docs/한선씨-전영역커버리지-20260709/도메인_미디어.psv
- 자산: 핵심 미디어 처리 libs ~87개(장르/산업 템플릿 제외 순수 처리 로직 기준, 전체는 314+), 관련 opcode ~107개(ISA729_IMPL.md), 실행 검증 예제 9개
무엇을 했는지 (과제별 핵심 발견)
- 이미지 로드/디코드(PNG) — full. stb_image 경유 진짜 디코드, 크기 정확.
- 오디오 파형+WAV저장 — full. 실제 PCM 톤 WAV 생성 확인(xxd).
- 이미지 리사이즈(배열기반) — full. 최근접이웃 리사이즈 정확.
- WAV 파싱 — full. 음녹음()으로 실WAV 로드(이름은 "녹음"이지만 실제론 파일로드).
- 이미지 필터체인(그레이스케일/반전) — full. ITU-R BT.601 그레이값 정확 일치.
- WAV DSP 필터 — partial.
필터()(opcode 422 AUD_FILTER)가 C 구현에서 push()를 호출하지 않음 — 반환값을 변수에 대입하면 스택 오염(무효 핸들 0). 문장으로만 호출하고 원핸들 재사용해야 동작. 버그 위치: /Users/ef/CrownyOS/crownyc/crownyc.c:11227 case 422.
- 폰트 로드+렌더 — full. 실TTF 로드+FB_TEXT_AA(788)로 실제 AA 글리프 프레임버퍼 드로잉 확인.
- PNG/JPG 픽셀 실접근 — partial.
crowny_image_handle_pixels()(crowny_media.c:410) 함수가 존재하나 crownyc.c 어디서도 호출되지 않음(미배선) — 디코드는 되나 픽셀값을 한선씨 레벨에서 꺼낼 opcode가 없음.
- 비디오 프레임(CVF) — none. opcode 740~749(VID_FRAME~VID_SAVE) 10종 전부 이름 매핑만 있고
exec_opcode 스위치에 실행부(case body) 자체가 없음 — 완전 스텁. CLI에도 video 변환 명령 없음(wav2caf/caf2wav만 존재).
- 오디오 재생/캡처 — partial. 녹음시작/녹음프레임 소프트웨어 버퍼 시뮬레이션은 실동작 확인(WAV 생성 성공). 실 스피커재생/마이크캡처는 규칙상(하드웨어 금지) 미실행.
관련 파일 경로
- 실측 스크립트/로그:
/tmp/cov_sandbox/미디어/*.한선, *.toau, *.err (세션 종료 후 소거될 수 있음, 재현 절차는 위 psv "증거" 열 참조)
- 판정 PSV:
/Users/ef/CrownyOS/docs/한선씨-전영역커버리지-20260709/도메인_미디어.psv
- 근거 소스:
/Users/ef/CrownyOS/crownyc/crownyc.c(opcode 422, 740~749, 757~759), /Users/ef/CrownyOS/crownyc/crowny_media.c, /Users/ef/CrownyOS/crownyc/hanseonc_high.c(builtin whitelist)
잔여 이슈 (top gaps)
- opcode 422(AUD_FILTER) —
push() 누락 1줄 패치 필요 (S).
crowny_image_handle_pixels() — VM 배선 안 됨. IMAGE_PIXEL(핸들,x,y)→RGBA opcode 신규 필요 (M).
- CVF 비디오 코덱(opcode 740~749) — 전면 미구현, 신규 구현 필요 (L, 1달+).
추가로 확인된 부수 이슈:
RGBA.한선 라이브러리의 채널추출 함수가 32비트 나눗셈-내림 관용구를 쓰는데, VM의
/ 연산자가 "자연반올림"(트렁케이션 아님) 방식이라 픽셀 언패킹이 틀어짐. 트릿 기반
비트곱/
오른시프트(opcode 90,95)도 실제로는 이진 비트연산이 아니라 3진(trit) 연산이라 표준 RGBA 비트패킹에 못 씀 — 참고용 발견(과제 채점에는 직접 포함 안 했으나 향후 세션 참고 가치 높음).