Control: tags -1 + patch
I believe the following patch solve the issue. commit a4eefac2cb90ecc5b7c7b634bf8c3884835d2ac8 Author: Petter Reinholdtsen <p...@debian.org> Date: Sun Sep 29 12:49:56 2024 +0200 Avoid rejecting DVDs with overlapping blocks. Adjust overlapping ranges to avoid the overlap, while still including the entire range. It do not matter if objects overlap, as long as all blocks contained within them are included in the backup. The error typically look something like this: RuntimeError: Overlap between <PartBupVmg object: begin: 354; end: 379> and <PartIfoVts object: begin: 363; end: 412> The code will detect two types of overlaps: [-----------self-----------] [XXX--------other1--------] [--------------other2------------------XXX] In the other1 case, the two are resized like this: [-----------self-----------] [X-other1-] In the other2 case, the two are resized like this if other2 end after self: [-----------self----------XXX] [---other2--] or like this, if the end of other2 is within self: [-----------self----------] [--other2---] Related to BTS issue #723079. Closes: #818117 diff --git a/dvdvideo-backup-image b/dvdvideo-backup-image index b7ff179..95ead9a 100755 --- a/dvdvideo-backup-image +++ b/dvdvideo-backup-image @@ -94,7 +94,11 @@ class PartFile(Part): continue if (self.begin <= other.begin and other.begin < self.end or self.begin < other.end and other.end <= self.end): - raise RuntimeError('Overlap between %r and %r' % (self, other)) + print('Overlap between %r and %r, adjusted borders' % (self, other)) + # Either truncate other or truncate other and extend self + if self.end < other.end: + self.end = other.end + other.end = self.begin class PartIfo(PartFile): -- Happy hacking Petter Reinholdtsen