[MPlayer-users] Re: [Ogle-devel] Assertion in libdvdread fails

H}kan Hjort d95hjort at dtek.chalmers.se
Sat Nov 17 01:08:41 CET 2001


Thu Nov 08 2001, Frank Boehme wrote:
> Hi gang,
> 
> I compiled Mplayer on Mandrake 8.1. I enabled dvd support by using
> libdvdread-0.9.2. When I play a dvd, it crashes in function
> 
>   ifoRead_C_ADT_internal
> 
> from
> 
>   libdvdread-0.9.2, ifo_read.c line 1154
> 
> which actually reads
> 
>   assert(info_length / sizeof(cell_adr_t) >= c_adt->nr_of_vobs);
> 
> This asertion fails. I generously commented it out and recompiled
> libdvdread. Then, the movie played, but a huge number of frames were
> dropped and from time to time the screen froze for a few seconds.
> 
> I am not an expert in DVD internals. Any ideas?
> 
The asssert probably triggers becuse there is a mastering errro on the
DVD (I'd need a copy of the IFO file to make sure).

Since neither mplayer or Ogle (or any player using libdvdread that I
know of) use this info it's quite harmless to remove the assert.  
The day that some player want to use this however it's good to know 
that it's not allways reliable.

What the assert is saying is basicly that the header claims that there
are X number of VOBs but then there size of the table with the info
(one entrie per VOB) is not big enough to have X entries.
Looking at one IFO file that I have that breaks this assert, it claims
(c_adt->nr_of_vobs) that there are 94 VOBs.  Each entire is 12 bytes,
and the total size is 960 bytes.  This gives us only 80 entries.
Looking at all references to VOB Id's in the IFO file one can see that
only 1-80 are actually referenced.  So this is all because of broken
mastering software. There probably where 94 VOBs but at some time but
14 have been deleted and the c_adt->nr_of_vobs got out of sync with 
the actual number of used VOBs.
I'm going to make a fix/work around in libdvdread for this.

Mplayer could probably use a lower level interface to libdvdread and
in that way avoid reading in parts that it doesn't use.

-- 
Håkan Hjort
d95hjort at dtek.chalmers.se



More information about the MPlayer-users mailing list