libdvdread -- off by 1 errors (not your fault)
James Tappin <[email protected]>
| Newsgroups | gmane.comp.video.ogle.devel |
|---|---|
| Message-ID | <[email protected]> |
There would appear to be at least 1 dvd authoring package out there that is generating DVDs with off-by-one errors in the lengths of some fields. Since the validity of these fields is check by an assert in libdvdread, to play said DVDs I have had to comment out the relevant assertions (and print the values instead). Line numbers refer to release 0.93. The first is at line 950 of ifo_read.c: assert(n > 0 && (n % 4) == 0; These DVDs have n=61 the other is at line 184 of nav_read.c: assert(dsi->dsi_gi.zero1 == 0); these have dsi->dsi_gi.zero1 == 1 This affects both ogle and xine-dvdnav playback (xine-dvdnav also fails another assert in xine-lib that I've not yet tracked down in detail). While it's pretty obvious to me that the author of the writing software has double-allowed for the null at the end of a string, this is probably a commercial package for windows or mac so I doubt there's much chance of exterminating it. Is it reasonable that these asserts be downgraded to some kind of warning message as the DVD plays correctly in ogle when they are ignored. Best regards, James -- James Tappin, O__ "I forget the punishment for using [email protected] -- \/` Microsoft --- Something lingering http://www.xena.uklinux.net/ with data loss in it I fancy"