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"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.