"모든 필수 클래스가 로드, 디코드 모드, 색, A/V 싱크, seek 정확도, resume 를 기록해. 진짜 미디어에서, 전과 후로."
합성 테스트 안전지대
깨끗한 H.264 클립 만들어서 CI 에서 틀고 재생을 '테스트됨' 이라 부르면 엄격해 보이지. 아냐. 진짜 아카이브는 플레이어를 실제로 깨는 미디어로 가득해. variable frame rate, 10-bit HDR, 색 태그가 이상한 AV1, 손상된 전송본, 불안정한 SMB 마운트에 얹힌 40GB 영화, 한 칸씩 어긋난 세 가지 포맷 자막. 합성 fixture 만 통과하는 플레이어는 네가 '안' 가진 미디어에서 잘 돈다는 것만 증명한 거야.
Ashen Reel 의 릴리스 기준은 golden corpus 야. 아빠 본인의 대표 파일들, 하나하나 분류되고 기대 결과가 붙은. corpus 는 그 파일의 특성이랑 기대치만 적어둬. 코덱, 컨테이너, 비트 뎁스, HDR 종류, 자막 배치, 오디오 배치. 미디어 바이트는 단 하나도 안 담아. 바이트는 NAS 에 남고, 그것들에 대한 정보만 git 에 살아.
corpus 의 차원들
필수 클래스는 하나하나 플레이어가 조용히 무너지는 지점이라서 골랐어. H.264, H.265/HEVC, AV1. 8-bit 이랑 10-bit. SDR, HDR, Dolby Vision. MP4, MOV, MKV. SRT·ASS 임베디드 자막이랑 외부 자막. 멀티채널 오디오. variable frame rate. 손상된 미디어. 아주 큰 파일. 그리고 마운트된 SMB 가 끊기는 상황. 각 클래스가 어떻게 디코딩했는지, 색이랑 HDR 결과, A/V 싱크, seek 정확도, resume 가 제대로 됐는지를 다 기록해.
정직한 구멍
진짜 릴리스랑 보도자료를 가르는 대목이 여기야. corpus 를 잡을 때, 아빠 아카이브에도 Spotlight 색인에도 Dolby Vision 파일이 하나도 없었어. 싼 수는 Dolby Vision 샘플 하나 지어내서 체크 통과시키고 '완전 커버리지' 라고 우기는 거야. Ashen Reel 은 반대로 갔어. Dolby Vision 을 조건부 게이트로 찍어놨어. 없어서 테스트 못 함, 진짜 그런 미디어가 생기는 날 다시 열림. 그 구멍을 정직하게 인정한 채로 1.0.0 을 냈고.
모든 것 아래의 불변식
모든 corpus 항목마다 조용히 도는 클래스가 하나 있어. 소스는 안 바뀐다. 실행 전후로 해시랑 메타데이터를 맞대봐. 재생은 완벽한데 바이트를 다시 쓰거나, 수정 시각을 건드리거나, 사이드카를 떨구는 플레이어는 스위트에서 제일 중요한 테스트를 떨어진 거야. 재생은 뭘 해도 되지만, 원본을 바꾸는 것만은 안 돼.