Re: libdvdread: about pgc_command_tbl_t in ifo_read.c and ifo_types.h

H}kan Hjort <[email protected]> Sun, 4 Apr 2004 21:57:44 +0200
Newsgroups gmane.comp.video.ogle.devel
Message-ID <[email protected]>
Sun Apr 04 2004, Yi-Shin Li wrote:
> Dear All,
> 
> The data structure pgc_command_tbl_t.zero_1 (line# 266) of
> ifo_types.h should actually be "last_byte". Am I correct?
> 
It would indeed seem so.  We don't really use all the info in
the IFO files, and the 'last_byte' info is not of much use...
It should always be equal too (or I guess larger than)
PGC_COMMAND_TBL_SIZE + total * COMMAND_DATA_SIZE
where total is the total number of commands (pre+post+cell).

Normaly I have CHECK_ZERO() asserts on all the 'unused' entries
but obviously missed this one.  All the other last_byte entries
are 32bit fields also...  
 
> If so, there should be a
> B2N_16(cmd_tbl->last_byte);
> in ifoRead_PGC_COMMAND_TBL() of ifo_read.c
> 
Adding that should not pose a problem.  I hope one is using the
zero_1 identifier though.  Anonymous unions would have come in
handy here.

> This might be a minor bug because I don't have problem using
> xine with it.
> 
No, the relevant data is still read as it shoul be, only a simple
validity check is missed (and for applications that are intrested
in the last_byte field).

/HÃ¥kan