fix: clip metadata intervals to playable duration
This commit is contained in:
@@ -1614,8 +1614,10 @@ final class PlayerModel: ObservableObject {
|
||||
precondition(lifecycle.accept(metadata, identity: a, generation: first), "Current metadata is accepted")
|
||||
precondition(lifecycle.visibleIntervals(duration: 0).isEmpty, "Unknown duration hides bands")
|
||||
precondition(lifecycle.visibleIntervals(duration: 100).count == 2, "Actual duration permits exact-end bands")
|
||||
precondition(lifecycle.visibleIntervals(duration: 95).count == 1, "Duration shrink revalidates raw bands")
|
||||
precondition(lifecycle.visibleIntervals(duration: 100).count == 2, "Duration growth restores raw bands")
|
||||
precondition(lifecycle.visibleIntervals(duration: 95) == [
|
||||
metadata.intervals[0], MiruroInterval(kind: .outro, start: 90, end: 95, episode: 1)
|
||||
], "Duration shrink clips raw bands")
|
||||
precondition(lifecycle.visibleIntervals(duration: 100) == metadata.intervals, "Duration growth restores raw bands")
|
||||
_ = lifecycle.replace(identity: b, episode: 2)
|
||||
precondition(lifecycle.metadata == nil, "Replacement clears title and intervals")
|
||||
precondition(!lifecycle.accept(metadata, identity: a, generation: first), "Different-identity result is stale")
|
||||
|
||||
Reference in New Issue
Block a user