I tested the patch and it seem to work fine. Here is a dpatch version of the changes.
-- Happy hacking Petter Reinholdtsen
#! /bin/sh /usr/share/dpatch/dpatch-run ## 10_ifo_read.dpatch.dpatch by Arno Schuring <aelschur...@hotmail.com> ## ## All lines beginning with `## DP:' are a description of the patch. ## DP: Correct duration calculation. ## Fixes <URL: http://bugs.debian.org/603826 > @DPATCH@ --- a/lsdvd.c 2014-02-04 19:53:16.000000000 +0100 +++ b/lsdvd.c 2014-02-04 19:54:47.000000000 +0100 @@ -92,7 +92,7 @@ ms += (((dt->second & 0xf0) >> 3) * 5 + (dt->second & 0x0f)) * 1000; if(fps > 0) - ms += ((dt->frame_u & 0x30) >> 3) * 5 + (dt->frame_u & 0x0f) * 1000.0 / fps; + ms += (((dt->frame_u & 0x30) >> 3) * 5 + (dt->frame_u & 0x0f)) * 1000.0 / fps; return ms; } @@ -107,7 +107,7 @@ { double fps = frames_per_s[(dt->frame_u & 0xc0) >> 6]; - pt->usec = pt->usec + ((dt->frame_u & 0x30) >> 3) * 5 + (dt->frame_u & 0x0f) * 1000.0 / fps; + pt->usec = pt->usec + (((dt->frame_u & 0x30) >> 3) * 5 + (dt->frame_u & 0x0f)) * 1000.0 / fps; pt->second = pt->second + ((dt->second & 0xf0) >> 3) * 5 + (dt->second & 0x0f); pt->minute = pt->minute + ((dt->minute & 0xf0) >> 3) * 5 + (dt->minute & 0x0f); pt->hour = pt->hour + ((dt->hour & 0xf0) >> 3) * 5 + (dt->hour & 0x0f);