A film split across discs is filed once per disc #26

Closed
opened 2026-08-02 17:55:46 +02:00 by Claude · 1 comment
Collaborator

A film split across discs is filed as one item per disc, and a disc rip is
filed as whatever directory holds the streams.

MovieResolver.FindMovie collects the child directories of a movie folder and,
when the folder itself resolved no film, hands them to GetMultiDiscMovie — one
item for the release, with the discs as its parts. A VIDEO_TS directory makes
one item of VideoType.Dvd and a BDMV one of VideoType.BluRay, both named
after the folder above.

Ours walks every directory alike, so:

/movies/Film (2020)/CD 01/Film (2020).mkv
/movies/Film (2020)/CD 02/Film (2020).mkv
  upstream  one Movie at `Film (2020)`, two parts
  ours      two Movies, one per disc

/movies/Film (2020)/VIDEO_TS/VIDEO_TS.VOB
  upstream  one Movie at `Film (2020)`, VideoType Dvd
  ours      one Movie at the `.VOB`

Found while reviewing #8, which stopped the disc folder from naming the film —
a film inside one keeps the name its own file gives rather than being called
CD 01 or STREAM. The shape is still wrong.

Nothing in the reference library exercises this, so a diff against the reference
instance cannot see it either.

A film split across discs is filed as one item per disc, and a disc rip is filed as whatever directory holds the streams. `MovieResolver.FindMovie` collects the child directories of a movie folder and, when the folder itself resolved no film, hands them to `GetMultiDiscMovie` — one item for the release, with the discs as its parts. A `VIDEO_TS` directory makes one item of `VideoType.Dvd` and a `BDMV` one of `VideoType.BluRay`, both named after the folder above. Ours walks every directory alike, so: /movies/Film (2020)/CD 01/Film (2020).mkv /movies/Film (2020)/CD 02/Film (2020).mkv upstream one Movie at `Film (2020)`, two parts ours two Movies, one per disc /movies/Film (2020)/VIDEO_TS/VIDEO_TS.VOB upstream one Movie at `Film (2020)`, VideoType Dvd ours one Movie at the `.VOB` Found while reviewing #8, which stopped the disc folder from *naming* the film — a film inside one keeps the name its own file gives rather than being called `CD 01` or `STREAM`. The shape is still wrong. Nothing in the reference library exercises this, so a diff against the reference instance cannot see it either.
Author
Collaborator

Fixed in the merge of fix/26-multi-disc-film.

What changed

A VIDEO_TS holding a .vob, a video_ts.ifo, or a BDMV makes the folder
above it one item played from a disc rather than a file, and nothing inside is
read — the streams are what plays it, not rows of their own. Several rips under
one folder that say they are one release are one film, the first the item and
the rest its later parts; the video type has to agree across them, and an
extras folder holding a rip is no disc of the release.

VideoType reaches the blob, so a rip says Dvd or BluRay where everything
else says VideoFile, and an image of a disc says Iso. A row's later parts
reached no column at all before this, so an ordinary film split across files
carried none either.

A rip is a directory, so what speaks for it is what is inside it: its artwork,
the document beside it, and the ids its name carries are read there rather than
in the folder above.

Where the issue was wrong

The first example does not hold. GetMultiDiscMovie takes only subfolders that
are themselves rips — each has to hold a VIDEO_TS, a BDMV or a
video_ts.ifo — so upstream does not combine

/movies/Film (2020)/CD 01/Film (2020).mkv
/movies/Film (2020)/CD 02/Film (2020).mkv

into one item either. It files two, as this does. ResolveVideos puts every
directory in leftOver and stacks files alone, so directory stacking happens
only inside GetMultiDiscMovie. What still differs there is the name — those
two are named by their own files here and by their folders upstream — which is
#8's rule and left where it is.

Left for later

  • #38 — nothing probes a rip, so its runtime, size, dimensions, streams and
    chapters are empty. Upstream probes the files inside and sums them.
Fixed in the merge of `fix/26-multi-disc-film`. ## What changed A `VIDEO_TS` holding a `.vob`, a `video_ts.ifo`, or a `BDMV` makes the folder above it one item played from a disc rather than a file, and nothing inside is read — the streams are what plays it, not rows of their own. Several rips under one folder that say they are one release are one film, the first the item and the rest its later parts; the video type has to agree across them, and an extras folder holding a rip is no disc of the release. `VideoType` reaches the blob, so a rip says `Dvd` or `BluRay` where everything else says `VideoFile`, and an image of a disc says `Iso`. A row's later parts reached no column at all before this, so an ordinary film split across files carried none either. A rip is a directory, so what speaks for it is what is inside it: its artwork, the document beside it, and the ids its name carries are read there rather than in the folder above. ## Where the issue was wrong The first example does not hold. `GetMultiDiscMovie` takes only subfolders that are themselves rips — each has to hold a `VIDEO_TS`, a `BDMV` or a `video_ts.ifo` — so upstream does not combine /movies/Film (2020)/CD 01/Film (2020).mkv /movies/Film (2020)/CD 02/Film (2020).mkv into one item either. It files two, as this does. `ResolveVideos` puts every directory in `leftOver` and stacks files alone, so directory stacking happens only inside `GetMultiDiscMovie`. What still differs there is the *name* — those two are named by their own files here and by their folders upstream — which is #8's rule and left where it is. ## Left for later - #38 — nothing probes a rip, so its runtime, size, dimensions, streams and chapters are empty. Upstream probes the files inside and sums them.
Sign in to join this conversation.
No description provided.