On 11/04/2012 02:51 PM, Fabian Keil wrote: > John Stebbins <[email protected]> wrote: > >> This patch never got accepted (probably because it's touches a lot and >> made you nervous), but HandBrake has been applying this for 3 years now. >> >> Some discs have large numbers of repeated language units and pgc's that >> cause extreme memory consumption and file i/o issues. scanning all the >> titles on such discs is unusably slow. detect such repeats and ref-count >> the data structures to avoid reading and storing duplicate info. > A couple of days ago dvdbackup got killed after the system ran out of > swap space (2 GB), I applied this patch and it solved the problem. > Awesome. > > While I assumed that the changes from malloc() to calloc() might > also make crashes due to bogus pgc field values less likely, the > patch actually causes at least one crash that doesn't happen without > it: > > Program terminated with signal 10, Bus error. > #0 0x0000000802a2390a in dvdnav_describe_title_chapters (this=0x80cd03e00, > title=17, times=0x7fffff8fa298, duration=0x7fffff8fa2a0) > at > /usr/obj-ports/usr/ports/multimedia/libdvdnav/work/libdvdnav-4.2.0/src/searching.c:628 > 628 if(ptt[i].pgn > pgc->nr_of_programs) { > (gdb) p *pgc > Cannot access memory at address 0xe000e000000a620 > > Everyone's favourite function dvdnav_describe_title_chapters() strikes > again ... > > I haven't tracked down the cause yet. > > Letting the dup_* functions always return -1 doesn't seem to affect the > problem and neither does modifying find_dup_pgc() to compare the whole > pgc instead of just the start_byte or removing the added return in > ifoRead_VTS_PTT_SRPT(). > > As far as I can tell the DVD doesn't actually have duplicated pgcs. > > Fabian > What disc does it crash on? HandBrake does not use dvdnav_describe_title_chapters(), so this is a code path we have not tested well enough it sounds like. dvdbackup uses this?
_______________________________________________ DVDnav-discuss mailing list [email protected] https://lists.mplayerhq.hu/mailman/listinfo/dvdnav-discuss
