# #71 の追加確認用資材 実co64保存を1回完了。測定条件・各確認結果は report.md と results/。ユーザーmedia/libraryを使わず、実LibraryServiceを一時Release testから呼ぶ。 `python3 inspect_mp4.py /absolute/path/to/fixture.m4v` は、ファイルサイズ・割当済みブロック・inode と、moov の位置、stco/co64 の実 chunk offset をヘッダから読む。mdat の payload は読み込まない。テーブルの count と box 境界、offset と実ファイルサイズを検証する。 本検証には、実エンコードした H.264 と AAC のパケットを mux した物理ファイルを使う。co64 が存在するだけでは不十分で、offsetsBeyondUInt32 が正であることを確認する。巨大な free や truncate で作るスパース fixture はこの確認に使わない。 全ファイルの decode と保存前後の decoded streamhash は、ffmpeg の `-v error -i fixture.m4v -f null -` と `-v error -i fixture.m4v -f streamhash -hash sha256 -` を使う。結果を別ファイルに保存して比較する。 再生中保存の tap 収集例は既存の `/private/tmp/smp-issues-75-76/Issue75Bench.swift` を参考にするが、後続の専用 harness は sampleTime/hostTime/frameLength/sampleRate/peak を記録する。時間の進行だけで無音 gap がないとは扱わない。 生成は `python3 generate_co64.py /private/tmp/smp-issues-71 /opt/homebrew/bin/ffmpeg`。18 GiB以上の空きを確認し、既存fixtureの上書きを拒否する。12秒の実seedを作り、目標4.5 GiBまでパケットをmuxする。出力は4 GiB超・6 GiB以下、割当済み容量が論理サイズの95%以上であることを確認する。 保存: `python3 run_save.py ROOT CHECKOUT DERIVED PACKAGES`。ROOT/media/real-co64.m4v が必要。保存済みcloneがあれば拒否する。既存 #74 after snapshot の独立checkout/derivedDataを再利用した。CHECKOUTには実ソース・同じ依存版とtestsの有効なschemeが必要。一時追加testのrootだけを引数に差し替え、製品処理は変更しない。 全decode/hash照合: `python3 verify_saved_co64.py ROOT FFMPEG FFPROBE`。保存前の ffprobe/streamhash と layout-save-before.json が必要。生成時または保存前に ffprobe と ffmpeg の streamhash(decoded/-c copy)を results/ に保存する。今回コマンドは results/verify-commands.json を参照。 AVFoundation の末尾付近画像取得: `swiftc -parse-as-library AVCo64Probe.swift -o /private/tmp/av-co64-probe`、`/private/tmp/av-co64-probe /absolute/path/saved-real-co64.m4v`。その結果も nativeアプリUI再生として数えない。 source-provenance.md/source-snapshot//results/source-sha256.json が実compileした入口と関連製品sourceの由来。原本・APFS clone・seed・実行binary・trace・SQLite storeは再現scriptで作るためWikiへ保存しない。 ### test host 起動の範囲に関する補足 測定対象の `LibraryService` と `ModelContainer` は専用temp領域を使用した。一方、この実行のアプリhostには通常の `App.init` が残り、起動時の通常Serviceのpending removal再開/temporary cleanup/永続container初期化を分離していなかった。したがって全プロセスがユーザーデータへアクセスしない構成だったとは主張しない。ここに保存したsource snapshot/hashは、実際に測定した版の記録として変更しない。後続のnative互換fixture hostでは、専用temp Service、inMemory host container、専用bundle IDへ分離した。測定したAPIのtemp fixture/storeと起動hostの設定を区別する。