Skip to content

feat: play_all-subset ordering, commentary relabel, disc10/disc11 fixtures#20

Merged
yxbh merged 6 commits intomainfrom
test/disc10-fixture
Feb 27, 2026
Merged

feat: play_all-subset ordering, commentary relabel, disc10/disc11 fixtures#20
yxbh merged 6 commits intomainfrom
test/disc10-fixture

Conversation

@yxbh
Copy link
Owner

@yxbh yxbh commented Feb 27, 2026

Summary

Add disc10-13 fixtures and fix analysis bugs for bonus disc patterns (play_all with commentary tracks).

Changes

Bug fixes

Play_all-subset ordering (ordering.py): When individual episode playlists are a clip-subset of a play_all playlist and the play_all has more episodes, prefer play_all decomposition. Previously, individual playlists were incorrectly preferred even when they only covered a subset of episodes (e.g. 3 commentary playlists vs 5 play_all episodes).

Commentary relabeling (__init__.py): After play_all episodes are chosen, individual playlists classified as episode that appear as special features are relabeled to commentary.

Title-hint commentary detection (__init__.py): In the title-hint supplement loop, episode-classified playlists that are NOT used as episode sources (episodes from play_all) are now treated as commentary specials instead of being silently skipped. Fixes disc13 where 00003.mpls was missed because all 9 IG special-feature buttons use register-indirect JumpTitle routing.

Fixtures

Fixture Episodes Specials Pattern
disc10 5 (play_all) 3 commentary 5 play_all eps, 3 individual commentary playlists
disc11 6 (play_all) 1 extra 6 play_all eps, 1 short extra (3.5 min)
disc12 5 (play_all) 3 commentary Same pattern as disc10
disc13 6 (play_all) 9 mixed 2 commentary + 5 creditless OP/ED + 2 extras

Tests

  • test_disc10_scan.py: 5 episodes from play_all, 3 commentary specials
  • test_disc11_scan.py: 6 episodes from play_all, 1 short extra
  • test_disc12_scan.py: 5 episodes from play_all, 3 commentary specials
  • test_disc13_scan.py: 6 episodes from play_all, 9 specials (2 commentary + 5 creditless + 2 extra)
  • test_disc_matrix.py: disc10-13 added to all 6 matrix parametrizations

Validation

  • 253 tests pass
  • ruff check + format clean
  • No copyrighted content (generic fixture titles, metadata-only files)

yxbh and others added 4 commits February 27, 2026 21:54
When the play_all decomposition yields more episodes than individual
playlists AND the individual episode clips are a strict subset of the
play_all clips, prefer play_all.  This handles discs where only some
episodes have individual playlists (e.g. for commentary audio) while
the full set is only available through the play_all.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
When a special feature's classification is 'episode' (individual
playlist bypassed in favour of play_all decomposition), relabel it
as 'commentary' since these are alternate-audio tracks, not distinct
episodes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Disc10 is a five-episode bonus disc with commentary specials:
- Play_all (00002.mpls) decomposes into 5 episodes at IG chapter
  marks [0, 6, 12, 18, 24], each ~24 min
- 3 individual playlists (00003-00005) are commentary tracks for
  episodes 1-3, detected via IG menu page 4 buttons
- Exercises the play_all-subset ordering fix and commentary relabeling

Adds disc10 to all 6 matrix parametrizations.  203 tests pass.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Disc11 is a six-episode bonus disc with one short special:
- Play_all (00002.mpls, 7 clips, 37 chapters) decomposes into 6
  episodes at IG chapter marks [0, 6, 12, 18, 24, 30], each ~24 min
- 1 special feature (00003.mpls, ~3.5 min extra)
- No individual episode playlists — all episodes from play_all
- No parsing fixes needed; existing logic handles this correctly

Adds disc11 to all 6 matrix parametrizations.  219 tests pass.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@yxbh yxbh changed the title feat: play_all-subset ordering, commentary relabel, disc10 fixture feat: play_all-subset ordering, commentary relabel, disc10/disc11 fixtures Feb 27, 2026
yxbh and others added 2 commits February 27, 2026 22:10
Disc12 is a five-episode bonus disc with 3 commentary specials (same
structure as disc10): play_all decomposes into 5 episodes at IG chapter
marks [0, 6, 12, 18, 24]; 3 individual playlists are commentary tracks.
No parsing fixes needed.  235 tests pass.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…e playlists

Disc13 (6 episodes + 9 specials) is the most complex special features
disc in the box set: 2 commentary tracks, 5 creditless OP/ED, 2 extras.

Fix: in the title-hint supplement loop, episode-classified playlists
that are NOT actually used as episode sources (episodes came from
play_all decomposition) are now relabeled as commentary specials
instead of being silently skipped.  This catches 00003.mpls on disc13
which was missed because all 9 IG special-feature buttons use
register-indirect JumpTitle routing to a single title.

- 253 tests pass, ruff clean

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@yxbh yxbh merged commit 257c8a2 into main Feb 27, 2026
1 check passed
@yxbh yxbh deleted the test/disc10-fixture branch February 27, 2026 12:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant