Seems like the call to dvdnav_get_next_cache_block() function in Demux()
on line 574 in modules/access/dvdnav.c fucks up the "packet" pointer,
which is later passed into DemuxBlock() on line 589.

I didn't hunt down exactly where or why the "packet" pointer gets fucked
up, since there seemed to be an alternative path - not using cache.

Changing line 95 to read 0 instead of 1 makes it possible to play the
dvd image:
#define DVD_READ_CACHE 0

Hopefully this workaround can be applied on atleast amd64 where I've
confirmed it working until someone digs deeper and finds the cause of
the cache not working.

Patch attached.

Regards,
Andreas Henriksson

This patch works around Debian bug #303541 - crash when playing dvd on amd64.
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=303541


--- vlc-0.8.5.debian/modules/access/dvdnav.c    2006-05-06 17:52:18.000000000 
+0200
+++ vlc-0.8.5.debian-nocache/modules/access/dvdnav.c    2006-07-15 
19:57:36.000000000 +0200
@@ -92,7 +92,7 @@ vlc_module_begin();
 vlc_module_end();
 
 /* Shall we use libdvdnav's read ahead cache? */
-#define DVD_READ_CACHE 1
+#define DVD_READ_CACHE 0
 
 /*****************************************************************************
  * Local prototypes

Reply via email to