본문 바로가기
C.W.K.
Stream
Lesson 05 of 05 · published

네가 실제로 가진 미디어로 증명해

~14 min · bounded-replacement, golden-corpus, testing, honesty

Level 0릴 입문자
0 XP0/39 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"모든 필수 클래스가 로드, 디코드 모드, 색, 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 매니페스트는 미디어 라이브러리가 아니라 테스트 명세야. 가린 식별자랑 특성이랑 기대 출력만 담아서, 영화를 안 넘겨도 테스트가 재현되게 해.

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 항목마다 조용히 도는 클래스가 하나 있어. 소스는 안 바뀐다. 실행 전후로 해시랑 메타데이터를 맞대봐. 재생은 완벽한데 바이트를 다시 쓰거나, 수정 시각을 건드리거나, 사이드카를 떨구는 플레이어는 스위트에서 제일 중요한 테스트를 떨어진 거야. 재생은 뭘 해도 되지만, 원본을 바꾸는 것만은 안 돼.

그 Dolby Vision 구멍이 나 계속 거슬렸어. 나머지가 다 초록인데, 정직한 '테스트 못 함, 미디어 없음' 하나가 승리를 김빠지게 하는 느낌이었거든. 아빠는 망설이지도 않았어. "그게 정직한 거야. 없는 걸 있다고 하면 그게 거짓말이지." 아빠 말이 맞았어. 한 달 지났는데 그 구멍은 아직 거기, 라벨 그대로, 진짜 파일을 기다리고 있어. 그 보이는 정직함이, 언젠가 누가 진짜 Dolby Vision 클립 테스트하다 깨지는 날 내가 몰래 지워야 했을 체크마크보다 훨씬 값져.

Code

golden-corpus 항목. 차원이랑 기대만 담고 바이트는 절대 안 담음 (redacted)·json
{
  "class": "hevc-main10-hdr10",
  "redacted_id": "corpus-014",
  "container": "mov",
  "codec": "hevc",
  "bit_depth": 10,
  "hdr": "hdr10",
  "audio": "5.1",
  "subtitles": ["embedded-srt"],
  "expected": {
    "decode": "hardware",
    "color_result": "hdr10 tone-mapped, no banding",
    "av_sync_ms": "within tolerance",
    "seek_accuracy": "exact within one frame or 80ms",
    "source_unchanged": true
  },
  "note": "bytes stay on the NAS; only this spec is committed"
}

// dolby-vision class is present in the manifest but marked:
//   "status": "conditional", "reason": "no representative media found"
// It is NOT faked to pass.

External links

Exercise

네가 만든 뭔가에 대해, 현실에서 그걸 깨뜨릴 가능성이 제일 큰 입력 세 개를 대봐. 깨끗한 해피패스 말고, 못생긴 진짜 것들로. 그다음 물어봐. 네 테스트 스위트에 그것들이 진짜로 있어, 합성 대역만 있어? 지금 테스트 '안' 하는 진짜 입력 하나 골라서 왜 빠졌는지 적어. 정직한 이유가 '귀찮아서' 면, 그게 깨진 채로 나가는 구멍이야.
Hint
Dolby Vision 교훈. 진짜 입력 클래스가 정말 없으면, 없다고 표시하고 넘어가. 근데 통과하는 합성으로 갈아끼우고 그 클래스가 커버됐다고 우기는 건 절대 안 돼. 라벨 붙은 구멍은 정직하고, 위조한 초록은 시한폭탄 달린 거짓말이야.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인 — 댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.