[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [VCDImager Bugs/Devel] vcdxrip rip errors
From: |
Steven M. Schultz |
Subject: |
Re: [VCDImager Bugs/Devel] vcdxrip rip errors |
Date: |
Sat, 13 Oct 2001 10:54:56 -0700 (PDT) |
Hi -
> it seems as if the problem is, that the read_mode2 function call
> doesn't return valid data;
>
> from vcd_xml_rip.c:
>
> vcd_image_source_read_mode2_sector (img, &pvd, ISO_PVD_SECTOR, false);
I think I am on the trail of the problem...
Using gdb I stopped the program in _read_mode2
#0 _read_mode2 (fd=6, buf=0x8046464, lba=16, nblocks=1, _workaround=false)
at vcd_image_bsdicd.c:155
#1 0x8058e39 in _read_mode2_sector (user_data=0x8070090, data=0x8046464,
lsn=16, form2=true) at vcd_image_bsdicd.c:222
#2 0x8058eb5 in _read_mode2_sector (user_data=0x8070090, data=0x8046de4,
lsn=16, form2=false) at vcd_image_bsdicd.c:248
#3 0x805620a in vcd_image_source_read_mode2_sector (obj=0x806f040,
buf=0x8046de4, lsn=16, mode2raw=false) at vcd_image.c:100
#4 0x8049a59 in _parse_pvd (obj=0x8047948, img=0x806f040) at vcd_xml_rip.c:216
#5 0x804c03b in main (argc=3, argv=0x80479f8) at vcd_xml_rip.c:1456
#6 0x804947e in __start ()
It is obviously trying to read lba 16 which is the ISO portion but it
is trying to do so with a 'mode2' read command.
It appears that the "read mode 2" and "read normal 2k" flag is
overloaded - "_workaround" means try different methods to read
mode2 sectors in _read_mode2() but earlier the flag is "form2"
meaning 'mode 2 sectors' or 'iso sized sectors'.
In earlier versions of vcdimager I did something this in
_read_mode2_sector():
if (form2)
ioctl(CDROMREADMOE2)
else
{
lseek(lsn * ISO_BLOCKSIZE)
read(buf,ISO_BLOCKSIZE)
}
That uses the 'form2' flag as "do a form2 read" or do a "regular
read".
Am I close to being right? ;)
Steven