diff stream/stream_dvd.c @ 28181:a02653498c15

Work around a dvdread bug where DVDReadBlocks would return values < 0 on read error, causing hangs e.g. when seeking to the very last chapter (which would read beyond the size of the DVD).
author reimar
date Wed, 31 Dec 2008 14:21:50 +0000
parents 55571c85e40e
children a39df27439b9
line wrap: on
line diff
--- a/stream/stream_dvd.c	Tue Dec 30 21:39:42 2008 +0000
+++ b/stream/stream_dvd.c	Wed Dec 31 14:21:50 2008 +0000
@@ -364,7 +364,8 @@
   }
 
   len = DVDReadBlocks(d->title, d->cur_pack, 1, data);
-  if(!len) return -1; //error
+  // only == 0 should indicate an error, but some dvdread version are buggy when used with dvdcss
+  if(len <= 0) return -1; //error
 
   if(data[38]==0 && data[39]==0 && data[40]==1 && data[41]==0xBF &&
     data[1024]==0 && data[1025]==0 && data[1026]==1 && data[1027]==0xBF) {