http://trac.videolan.org/vlc/changeset/12862
This is basically correct, the problem is that SET_TIME is an calculation based on position, which breaks because it presumes a fixed bitrate which usually isn't the case. dvdread can read the timeindex table in the IFO, but currently we don't use this. We should.
(In [14220]) * Fix the duration of the dvdread module. refs #198 (closed).
Now duration is accurate, but current time is still block based, so on VBR discs the duration of a second may have some weird variations. Getting accurate time is possible (see what was reverted in [12862]), but this will break the relative SET_TIME (might actually go seeking in the wrong direction for instance). The correct fix here is to expand dvdread with a method that checks the TMAPTI IFO table of a Title, to find what block approximately goes with a certain time. (the TMAPTI table is usually in .5 secs interpolation might possibly be required as well) As a backup an estimate can be made using the ADMAP table.
The behaviour of the dvdread module is now equal to that of the dvdnav module when it comes to time and seeking.