[DVDnav-discuss] r1150 - in trunk/libdvdread/src: bswap.h dvd_input.c dvd_reader.c dvd_udf.c dvdread_internal.h ifo_print.c ifo_read.c ifo_types.h md5.c md5.h nav_print.c nav_read.c nav_types.h

diego subversion at mplayerhq.hu
Thu Sep 25 11:17:44 CEST 2008


Author: diego
Date: Thu Sep 25 11:17:42 2008
New Revision: 1150

Log:
cosmetics: Sync indentation and similar changes from libdvdread 0.9.5.


Modified:
   trunk/libdvdread/src/bswap.h
   trunk/libdvdread/src/dvd_input.c
   trunk/libdvdread/src/dvd_reader.c
   trunk/libdvdread/src/dvd_udf.c
   trunk/libdvdread/src/dvdread_internal.h
   trunk/libdvdread/src/ifo_print.c
   trunk/libdvdread/src/ifo_read.c
   trunk/libdvdread/src/ifo_types.h
   trunk/libdvdread/src/md5.c
   trunk/libdvdread/src/md5.h
   trunk/libdvdread/src/nav_print.c
   trunk/libdvdread/src/nav_read.c
   trunk/libdvdread/src/nav_types.h

Modified: trunk/libdvdread/src/bswap.h
==============================================================================
--- trunk/libdvdread/src/bswap.h	(original)
+++ trunk/libdvdread/src/bswap.h	Thu Sep 25 11:17:42 2008
@@ -74,15 +74,15 @@
  */
 
 #elif defined(__FreeBSD__) || defined(__sun) || defined(__bsdi__) || defined(WIN32) || defined(__CYGWIN__) || defined(__BEOS__)
-#define B2N_16(x) \
- x = ((((x) & 0xff00) >> 8) | \
+#define B2N_16(x)                             \
+ x = ((((x) & 0xff00) >> 8) |                 \
       (((x) & 0x00ff) << 8))
-#define B2N_32(x) \
- x = ((((x) & 0xff000000) >> 24) | \
-      (((x) & 0x00ff0000) >>  8) | \
-      (((x) & 0x0000ff00) <<  8) | \
+#define B2N_32(x)                             \
+ x = ((((x) & 0xff000000) >> 24) |            \
+      (((x) & 0x00ff0000) >>  8) |            \
+      (((x) & 0x0000ff00) <<  8) |            \
       (((x) & 0x000000ff) << 24))
-#define B2N_64(x) \
+#define B2N_64(x)                             \
  x = ((((x) & 0xff00000000000000ULL) >> 56) | \
       (((x) & 0x00ff000000000000ULL) >> 40) | \
       (((x) & 0x0000ff0000000000ULL) >> 24) | \

Modified: trunk/libdvdread/src/dvd_input.c
==============================================================================
--- trunk/libdvdread/src/dvd_input.c	(original)
+++ trunk/libdvdread/src/dvd_input.c	Thu Sep 25 11:17:42 2008
@@ -198,7 +198,7 @@ static int file_seek(dvd_input_t dev, in
 
   pos = lseek(dev->fd, (off_t)blocks * (off_t)DVD_VIDEO_LB_LEN, SEEK_SET);
   if(pos < 0) {
-      return pos;
+    return pos;
   }
   /* assert pos % DVD_VIDEO_LB_LEN == 0 */
   return (int) (pos / DVD_VIDEO_LB_LEN);

Modified: trunk/libdvdread/src/dvd_reader.c
==============================================================================
--- trunk/libdvdread/src/dvd_reader.c	(original)
+++ trunk/libdvdread/src/dvd_reader.c	Thu Sep 25 11:17:42 2008
@@ -53,7 +53,7 @@ static inline int _private_gettimeofday(
 #define lseek64 _lseeki64
 #endif
 
-#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__bsdi__)|| defined(__DARWIN__)
+#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__bsdi__) || defined(__DARWIN__)
 #define SYS_BSD 1
 #endif
 
@@ -73,49 +73,49 @@ static inline int _private_gettimeofday(
 #define DEFAULT_UDF_CACHE_LEVEL 1
 
 struct dvd_reader_s {
-    /* Basic information. */
-    int isImageFile;
+  /* Basic information. */
+  int isImageFile;
 
-    /* Hack for keeping track of the css status.
-     * 0: no css, 1: perhaps (need init of keys), 2: have done init */
-    int css_state;
-    int css_title; /* Last title that we have called dvdinpute_title for. */
+  /* Hack for keeping track of the css status.
+   * 0: no css, 1: perhaps (need init of keys), 2: have done init */
+  int css_state;
+  int css_title; /* Last title that we have called dvdinpute_title for. */
 
-    /* Information required for an image file. */
-    dvd_input_t dev;
+  /* Information required for an image file. */
+  dvd_input_t dev;
 
-    /* Information required for a directory path drive. */
-    char *path_root;
+  /* Information required for a directory path drive. */
+  char *path_root;
 
-    /* Filesystem cache */
-    int udfcache_level; /* 0 - turned off, 1 - on */
-    void *udfcache;
+  /* Filesystem cache */
+  int udfcache_level; /* 0 - turned off, 1 - on */
+  void *udfcache;
 };
 
 #define TITLES_MAX 9
 
 struct dvd_file_s {
-    /* Basic information. */
-    dvd_reader_t *dvd;
+  /* Basic information. */
+  dvd_reader_t *dvd;
 
-    /* Hack for selecting the right css title. */
-    int css_title;
+  /* Hack for selecting the right css title. */
+  int css_title;
 
-    /* Information required for an image file. */
-    uint32_t lb_start;
-    uint32_t seek_pos;
+  /* Information required for an image file. */
+  uint32_t lb_start;
+  uint32_t seek_pos;
 
-    /* Information required for a directory path drive. */
-    size_t title_sizes[ TITLES_MAX ];
-    dvd_input_t title_devs[ TITLES_MAX ];
+  /* Information required for a directory path drive. */
+  size_t title_sizes[ TITLES_MAX ];
+  dvd_input_t title_devs[ TITLES_MAX ];
 
-    /* Calculated at open-time, size in blocks. */
-    ssize_t filesize;
+  /* Calculated at open-time, size in blocks. */
+  ssize_t filesize;
 };
 
 int UDFReadBlocksRaw( dvd_reader_t *device, uint32_t lb_number,
-                     size_t block_count, unsigned char *data,
-                     int encrypted );
+                      size_t block_count, unsigned char *data,
+                      int encrypted );
 
 /**
  * Set the level of caching on udf
@@ -156,68 +156,67 @@ void SetUDFCacheHandle(dvd_reader_t *dev
 /* Loop over all titles and call dvdcss_title to crack the keys. */
 static int initAllCSSKeys( dvd_reader_t *dvd )
 {
-    struct timeval all_s, all_e;
-    struct timeval t_s, t_e;
-    char filename[ MAX_UDF_FILE_NAME_LEN ];
-    uint32_t start, len;
-    int title;
-
-    char *nokeys_str = getenv("DVDREAD_NOKEYS");
-    if(nokeys_str != NULL)
-      return 0;
+  struct timeval all_s, all_e;
+  struct timeval t_s, t_e;
+  char filename[ MAX_UDF_FILE_NAME_LEN ];
+  uint32_t start, len;
+  int title;
 
-    fprintf( stderr, "\n" );
-    fprintf( stderr, "libdvdread: Attempting to retrieve all CSS keys\n" );
-    fprintf( stderr, "libdvdread: This can take a _long_ time, "
-             "please be patient\n\n" );
+  char *nokeys_str = getenv("DVDREAD_NOKEYS");
+  if(nokeys_str != NULL)
+    return 0;
 
-    gettimeofday(&all_s, NULL);
+  fprintf( stderr, "\n" );
+  fprintf( stderr, "libdvdread: Attempting to retrieve all CSS keys\n" );
+  fprintf( stderr, "libdvdread: This can take a _long_ time, "
+           "please be patient\n\n" );
+  gettimeofday(&all_s, NULL);
 
-    for( title = 0; title < 100; title++ ) {
-        gettimeofday( &t_s, NULL );
-        if( title == 0 ) {
-            sprintf( filename, "/VIDEO_TS/VIDEO_TS.VOB" );
-        } else {
-            sprintf( filename, "/VIDEO_TS/VTS_%02d_%d.VOB", title, 0 );
-        }
-        start = UDFFindFile( dvd, filename, &len );
-        if( start != 0 && len != 0 ) {
-            /* Perform CSS key cracking for this title. */
-            fprintf( stderr, "libdvdread: Get key for %s at 0x%08x\n",
-                     filename, start );
-            if( dvdinput_title( dvd->dev, (int)start ) < 0 ) {
-                fprintf( stderr, "libdvdread: Error cracking CSS key for %s (0x%08x)\n", filename, start);
-            }
-            gettimeofday( &t_e, NULL );
-            fprintf( stderr, "libdvdread: Elapsed time %ld\n",
-                     (long int) t_e.tv_sec - t_s.tv_sec );
-        }
+  for( title = 0; title < 100; title++ ) {
+    gettimeofday( &t_s, NULL );
+    if( title == 0 ) {
+      sprintf( filename, "/VIDEO_TS/VIDEO_TS.VOB" );
+    } else {
+      sprintf( filename, "/VIDEO_TS/VTS_%02d_%d.VOB", title, 0 );
+    }
+    start = UDFFindFile( dvd, filename, &len );
+    if( start != 0 && len != 0 ) {
+      /* Perform CSS key cracking for this title. */
+      fprintf( stderr, "libdvdread: Get key for %s at 0x%08x\n",
+               filename, start );
+      if( dvdinput_title( dvd->dev, (int)start ) < 0 ) {
+        fprintf( stderr, "libdvdread: Error cracking CSS key for %s (0x%08x)\n", filename, start);
+      }
+      gettimeofday( &t_e, NULL );
+      fprintf( stderr, "libdvdread: Elapsed time %ld\n",
+               (long int) t_e.tv_sec - t_s.tv_sec );
+    }
 
-        if( title == 0 ) continue;
+    if( title == 0 ) continue;
 
-        gettimeofday( &t_s, NULL );
-        sprintf( filename, "/VIDEO_TS/VTS_%02d_%d.VOB", title, 1 );
-        start = UDFFindFile( dvd, filename, &len );
-        if( start == 0 || len == 0 ) break;
+    gettimeofday( &t_s, NULL );
+    sprintf( filename, "/VIDEO_TS/VTS_%02d_%d.VOB", title, 1 );
+    start = UDFFindFile( dvd, filename, &len );
+    if( start == 0 || len == 0 ) break;
 
-        /* Perform CSS key cracking for this title. */
-        fprintf( stderr, "libdvdread: Get key for %s at 0x%08x\n",
-                 filename, start );
-        if( dvdinput_title( dvd->dev, (int)start ) < 0 ) {
-            fprintf( stderr, "libdvdread: Error cracking CSS key for %s (0x%08x)!!\n", filename, start);
-        }
-        gettimeofday( &t_e, NULL );
-        fprintf( stderr, "libdvdread: Elapsed time %ld\n",
-                 (long int) t_e.tv_sec - t_s.tv_sec );
+    /* Perform CSS key cracking for this title. */
+    fprintf( stderr, "libdvdread: Get key for %s at 0x%08x\n",
+             filename, start );
+    if( dvdinput_title( dvd->dev, (int)start ) < 0 ) {
+      fprintf( stderr, "libdvdread: Error cracking CSS key for %s (0x%08x)!!\n", filename, start);
     }
-    title--;
-
-    fprintf( stderr, "libdvdread: Found %d VTS's\n", title );
-    gettimeofday(&all_e, NULL);
+    gettimeofday( &t_e, NULL );
     fprintf( stderr, "libdvdread: Elapsed time %ld\n",
-             (long int) all_e.tv_sec - all_s.tv_sec );
+             (long int) t_e.tv_sec - t_s.tv_sec );
+  }
+  title--;
 
-    return 0;
+  fprintf( stderr, "libdvdread: Found %d VTS's\n", title );
+  gettimeofday(&all_e, NULL);
+  fprintf( stderr, "libdvdread: Elapsed time %ld\n",
+           (long int) all_e.tv_sec - all_s.tv_sec );
+
+  return 0;
 }
 
 
@@ -227,60 +226,59 @@ static int initAllCSSKeys( dvd_reader_t 
  */
 static dvd_reader_t *DVDOpenImageFile( const char *location, int have_css )
 {
-    dvd_reader_t *dvd;
-    dvd_input_t dev;
+  dvd_reader_t *dvd;
+  dvd_input_t dev;
 
-    dev = dvdinput_open( location );
-    if( !dev ) {
-        fprintf( stderr, "libdvdread: Can't open %s for reading\n", location );
-        return NULL;
-    }
+  dev = dvdinput_open( location );
+  if( !dev ) {
+    fprintf( stderr, "libdvdread: Can't open %s for reading\n", location );
+    return NULL;
+  }
 
-    dvd = (dvd_reader_t *) malloc( sizeof( dvd_reader_t ) );
-    if( !dvd ) {
-        dvdinput_close(dev);
-        return NULL;
-    }
-    dvd->isImageFile = 1;
-    dvd->dev = dev;
-    dvd->path_root = NULL;
+  dvd = (dvd_reader_t *) malloc( sizeof( dvd_reader_t ) );
+  if( !dvd ) {
+    dvdinput_close(dev);
+    return NULL;
+  }
+  dvd->isImageFile = 1;
+  dvd->dev = dev;
+  dvd->path_root = NULL;
 
-    dvd->udfcache_level = DEFAULT_UDF_CACHE_LEVEL;
-    dvd->udfcache = NULL;
+  dvd->udfcache_level = DEFAULT_UDF_CACHE_LEVEL;
+  dvd->udfcache = NULL;
 
-    if( have_css ) {
-      /* Only if DVDCSS_METHOD = title, a bit if it's disc or if
-       * DVDCSS_METHOD = key but region missmatch. Unfortunaly we
-       * don't have that information. */
+  if( have_css ) {
+    /* Only if DVDCSS_METHOD = title, a bit if it's disc or if
+     * DVDCSS_METHOD = key but region missmatch. Unfortunaly we
+     * don't have that information. */
 
-      dvd->css_state = 1; /* Need key init. */
-    }
-    dvd->css_title = 0;
+    dvd->css_state = 1; /* Need key init. */
+  }
+  dvd->css_title = 0;
 
-    return dvd;
+  return dvd;
 }
 
 static dvd_reader_t *DVDOpenPath( const char *path_root )
 {
-    dvd_reader_t *dvd;
-
-    dvd = (dvd_reader_t *) malloc( sizeof( dvd_reader_t ) );
-    if( !dvd ) return NULL;
-    dvd->isImageFile = 0;
-    dvd->dev = 0;
-    dvd->path_root = strdup( path_root );
-    if(!dvd->path_root) {
-      free(dvd);
-      return 0;
-    }
+  dvd_reader_t *dvd;
 
-    dvd->udfcache_level = DEFAULT_UDF_CACHE_LEVEL;
-    dvd->udfcache = NULL;
+  dvd = (dvd_reader_t *) malloc( sizeof( dvd_reader_t ) );
+  if( !dvd ) return NULL;
+  dvd->isImageFile = 0;
+  dvd->dev = 0;
+  dvd->path_root = strdup( path_root );
+  if(!dvd->path_root) {
+    free(dvd);
+    return 0;
+  }
+  dvd->udfcache_level = DEFAULT_UDF_CACHE_LEVEL;
+  dvd->udfcache = NULL;
 
-    dvd->css_state = 0; /* Only used in the UDF path */
-    dvd->css_title = 0; /* Only matters in the UDF path */
+  dvd->css_state = 0; /* Only used in the UDF path */
+  dvd->css_title = 0; /* Only matters in the UDF path */
 
-    return dvd;
+  return dvd;
 }
 
 #if defined(__sun)
@@ -289,19 +287,19 @@ static dvd_reader_t *DVDOpenPath( const 
    /vol/rdsk/<name> */
 static char *sun_block2char( const char *path )
 {
-    char *new_path;
+  char *new_path;
 
-    /* Must contain "/dsk/" */
-    if( !strstr( path, "/dsk/" ) ) return (char *) strdup( path );
+  /* Must contain "/dsk/" */
+  if( !strstr( path, "/dsk/" ) ) return (char *) strdup( path );
 
-    /* Replace "/dsk/" with "/rdsk/" */
-    new_path = malloc( strlen(path) + 2 );
-    strcpy( new_path, path );
-    strcpy( strstr( new_path, "/dsk/" ), "" );
-    strcat( new_path, "/rdsk/" );
-    strcat( new_path, strstr( path, "/dsk/" ) + strlen( "/dsk/" ) );
+  /* Replace "/dsk/" with "/rdsk/" */
+  new_path = malloc( strlen(path) + 2 );
+  strcpy( new_path, path );
+  strcpy( strstr( new_path, "/dsk/" ), "" );
+  strcat( new_path, "/rdsk/" );
+  strcat( new_path, strstr( path, "/dsk/" ) + strlen( "/dsk/" ) );
 
-    return new_path;
+  return new_path;
 }
 #endif
 
@@ -313,252 +311,253 @@ static char *sun_block2char( const char 
    BSD/OS  /dev/sr0c (if not mounted) or /dev/rsr0c ('c' any letter will do) */
 static char *bsd_block2char( const char *path )
 {
-    char *new_path;
+  char *new_path;
 
-    /* If it doesn't start with "/dev/" or does start with "/dev/r" exit */
-    if( !strncmp( path, "/dev/",  5 ) || strncmp( path, "/dev/r", 6 ) )
-      return (char *) strdup( path );
+  /* If it doesn't start with "/dev/" or does start with "/dev/r" exit */
+  if( !strncmp( path, "/dev/",  5 ) || strncmp( path, "/dev/r", 6 ) )
+    return (char *) strdup( path );
 
-    /* Replace "/dev/" with "/dev/r" */
-    new_path = malloc( strlen(path) + 2 );
-    strcpy( new_path, "/dev/r" );
-    strcat( new_path, path + strlen( "/dev/" ) );
+  /* Replace "/dev/" with "/dev/r" */
+  new_path = malloc( strlen(path) + 2 );
+  strcpy( new_path, "/dev/r" );
+  strcat( new_path, path + strlen( "/dev/" ) );
 
-    return new_path;
+  return new_path;
 }
 #endif
 
+
 dvd_reader_t *DVDOpen( const char *ppath )
 {
-    struct stat fileinfo;
-    int ret;
-    int have_css;
-        dvd_reader_t *ret_val = NULL;
-    char *dev_name = NULL;
-        char *path;
+  struct stat fileinfo;
+  int ret, have_css;
+  dvd_reader_t *ret_val = NULL;
+  char *dev_name = NULL;
+  char *path;
 
 #ifdef _MSC_VER
-        int len;
+      int len;
 #endif
 
-    if( ppath == NULL )
-      return 0;
+  if( ppath == NULL )
+    return 0;
 
-        path = strdup(ppath);
-    if( path == NULL )
-      return 0;
+      path = strdup(ppath);
+  if( path == NULL )
+    return 0;
 
-    /* Try to open libdvdcss or fall back to standard functions */
-    have_css = dvdinput_setup();
+  /* Try to open libdvdcss or fall back to standard functions */
+  have_css = dvdinput_setup();
 
 #ifdef _MSC_VER
-        /* Strip off the trailing \ if it is not a drive */
-        len = strlen(path);
-        if ((len > 1) &&
-                (path[len - 1] == '\\')  &&
-                (path[len - 2] != ':'))
-        {
-                path[len-1] = '\0';
-        }
+  /* Strip off the trailing \ if it is not a drive */
+  len = strlen(path);
+  if ((len > 1) &&
+      (path[len - 1] == '\\')  &&
+      (path[len - 2] != ':'))
+  {
+    path[len-1] = '\0';
+  }
 #endif
 
-    ret = stat( path, &fileinfo );
-
-    if( ret < 0 ) {
+  ret = stat( path, &fileinfo );
 
-        /* maybe "host:port" url? try opening it with acCeSS library */
-        if( strchr(path,':') ) {
-                        ret_val = DVDOpenImageFile( path, have_css );
-                        free(path);
-                return ret_val;
-        }
+  if( ret < 0 ) {
 
-        /* If we can't stat the file, give up */
-        fprintf( stderr, "libdvdread: Can't stat %s\n", path );
-        perror("");
-        free(path);
-        return NULL;
+    /* maybe "host:port" url? try opening it with acCeSS library */
+    if( strchr(path,':') ) {
+                    ret_val = DVDOpenImageFile( path, have_css );
+                    free(path);
+            return ret_val;
     }
 
-    /* First check if this is a block/char device or a file*/
-    if( S_ISBLK( fileinfo.st_mode ) ||
-        S_ISCHR( fileinfo.st_mode ) ||
-        S_ISREG( fileinfo.st_mode ) ) {
+    /* If we can't stat the file, give up */
+    fprintf( stderr, "libdvdread: Can't stat %s\n", path );
+    perror("");
+    free(path);
+    return NULL;
+  }
 
-        /**
-         * Block devices and regular files are assumed to be DVD-Video images.
-         */
+  /* First check if this is a block/char device or a file*/
+  if( S_ISBLK( fileinfo.st_mode ) ||
+      S_ISCHR( fileinfo.st_mode ) ||
+      S_ISREG( fileinfo.st_mode ) ) {
+
+    /**
+     * Block devices and regular files are assumed to be DVD-Video images.
+     */
 #if defined(__sun)
-        ret_val = DVDOpenImageFile( sun_block2char( path ), have_css );
+    ret_val = DVDOpenImageFile( sun_block2char( path ), have_css );
 #elif defined(SYS_BSD)
-        ret_val = DVDOpenImageFile( bsd_block2char( path ), have_css );
+    ret_val = DVDOpenImageFile( bsd_block2char( path ), have_css );
 #else
-        ret_val = DVDOpenImageFile( path, have_css );
+    ret_val = DVDOpenImageFile( path, have_css );
 #endif
 
-        free(path);
-        return ret_val;
+    free(path);
+    return ret_val;
 
-    } else if( S_ISDIR( fileinfo.st_mode ) ) {
-        dvd_reader_t *auth_drive = 0;
-        char *path_copy;
+  } else if( S_ISDIR( fileinfo.st_mode ) ) {
+    dvd_reader_t *auth_drive = 0;
+    char *path_copy;
 #if defined(SYS_BSD)
-        struct fstab* fe;
+    struct fstab* fe;
 #elif defined(__sun) || defined(__linux__)
-        FILE *mntfile;
+    FILE *mntfile;
 #endif
 
-        /* XXX: We should scream real loud here. */
-        if( !(path_copy = strdup( path ) ) ) {
-                free(path);
-                return NULL;
-        }
+    /* XXX: We should scream real loud here. */
+    if( !(path_copy = strdup( path ) ) ) {
+      free(path);
+      return NULL;
+    }
 
 #ifndef WIN32 /* don't have fchdir, and getcwd( NULL, ... ) is strange */
               /* Also WIN32 does not have symlinks, so we don't need this bit of code. */
 
-        /* Resolve any symlinks and get the absolut dir name. */
-        {
-            char *new_path;
-            int cdir = open( ".", O_RDONLY );
+    /* Resolve any symlinks and get the absolut dir name. */
+    {
+      char *new_path;
+      int cdir = open( ".", O_RDONLY );
 
-            if( cdir >= 0 ) {
-                chdir( path_copy );
-                new_path = malloc(PATH_MAX+1);
-                if(!new_path) {
-                  free(path);
-                  return NULL;
-                }
-                getcwd(new_path, PATH_MAX );
-                fchdir( cdir );
-                close( cdir );
-                    free( path_copy );
-                    path_copy = new_path;
-            }
+      if( cdir >= 0 ) {
+        chdir( path_copy );
+        new_path = malloc(PATH_MAX+1);
+        if(!new_path) {
+          free(path);
+          return NULL;
         }
+        getcwd(new_path, PATH_MAX );
+        fchdir( cdir );
+        close( cdir );
+          free( path_copy );
+          path_copy = new_path;
+      }
+    }
 #endif
-        /**
-         * If we're being asked to open a directory, check if that directory
-         * is the mountpoint for a DVD-ROM which we can use instead.
-         */
 
-        if( strlen( path_copy ) > 1 ) {
-            if( path_copy[ strlen( path_copy ) - 1 ] == '/' )
-                path_copy[ strlen( path_copy ) - 1 ] = '\0';
-        }
+    /**
+     * If we're being asked to open a directory, check if that directory
+     * is the mountpoint for a DVD-ROM which we can use instead.
+     */
 
-        if( strlen( path_copy ) > TITLES_MAX ) {
-            if( !strcasecmp( &(path_copy[ strlen( path_copy ) - TITLES_MAX ]),
-                             "/video_ts" ) ) {
-              path_copy[ strlen( path_copy ) - TITLES_MAX ] = '\0';
-            }
-        }
+    if( strlen( path_copy ) > 1 ) {
+      if( path_copy[ strlen( path_copy ) - 1 ] == '/' ) {
+        path_copy[ strlen( path_copy ) - 1 ] = '\0';
+      }
+    }
 
-        if(path_copy[0] == '\0') {
-            path_copy[0] = '/';
-            path_copy[1] = '\0';
-        }
+    if( strlen( path_copy ) > TITLES_MAX ) {
+      if( !strcasecmp( &(path_copy[ strlen( path_copy ) - TITLES_MAX ]),
+                       "/video_ts" ) ) {
+        path_copy[ strlen( path_copy ) - TITLES_MAX ] = '\0';
+      }
+    }
+
+    if(path_copy[0] == '\0') {
+      path_copy[0] = '/';
+      path_copy[1] = '\0';
+    }
 
 #if defined(SYS_BSD)
-        if( ( fe = getfsfile( path_copy ) ) ) {
-            dev_name = bsd_block2char( fe->fs_spec );
-            fprintf( stderr,
-                     "libdvdread: Attempting to use device %s"
-                     " mounted on %s for CSS authentication\n",
-                     dev_name,
-                     fe->fs_file );
-            auth_drive = DVDOpenImageFile( dev_name, have_css );
-        }
+    if( ( fe = getfsfile( path_copy ) ) ) {
+      dev_name = bsd_block2char( fe->fs_spec );
+      fprintf( stderr,
+               "libdvdread: Attempting to use device %s"
+               " mounted on %s for CSS authentication\n",
+               dev_name,
+               fe->fs_file );
+      auth_drive = DVDOpenImageFile( dev_name, have_css );
+    }
 #elif defined(__sun)
-        mntfile = fopen( MNTTAB, "r" );
-        if( mntfile ) {
-            struct mnttab mp;
-            int res;
+    mntfile = fopen( MNTTAB, "r" );
+    if( mntfile ) {
+      struct mnttab mp;
+      int res;
 
-            while( ( res = getmntent( mntfile, &mp ) ) != -1 ) {
-                if( res == 0 && !strcmp( mp.mnt_mountp, path_copy ) ) {
-                    dev_name = sun_block2char( mp.mnt_special );
-                    fprintf( stderr,
-                             "libdvdread: Attempting to use device %s"
-                             " mounted on %s for CSS authentication\n",
-                             dev_name,
-                             mp.mnt_mountp );
-                    auth_drive = DVDOpenImageFile( dev_name, have_css );
-                    break;
-                }
-            }
-            fclose( mntfile );
+      while( ( res = getmntent( mntfile, &mp ) ) != -1 ) {
+        if( res == 0 && !strcmp( mp.mnt_mountp, path_copy ) ) {
+          dev_name = sun_block2char( mp.mnt_special );
+          fprintf( stderr,
+                   "libdvdread: Attempting to use device %s"
+                   " mounted on %s for CSS authentication\n",
+                   dev_name,
+                   mp.mnt_mountp );
+          auth_drive = DVDOpenImageFile( dev_name, have_css );
+          break;
         }
+      }
+      fclose( mntfile );
+    }
 #elif defined(__linux__)
-        mntfile = fopen( MOUNTED, "r" );
-        if( mntfile ) {
-            struct mntent *me;
+    mntfile = fopen( MOUNTED, "r" );
+    if( mntfile ) {
+      struct mntent *me;
 
-            while( ( me = getmntent( mntfile ) ) ) {
-                if( !strcmp( me->mnt_dir, path_copy ) ) {
-                    fprintf( stderr,
-                             "libdvdread: Attempting to use device %s"
-                             " mounted on %s for CSS authentication\n",
-                             me->mnt_fsname,
-                             me->mnt_dir );
-                    auth_drive = DVDOpenImageFile( me->mnt_fsname, have_css );
-                    dev_name = strdup(me->mnt_fsname);
-                    break;
-                }
-            }
-            fclose( mntfile );
+      while( ( me = getmntent( mntfile ) ) ) {
+        if( !strcmp( me->mnt_dir, path_copy ) ) {
+          fprintf( stderr,
+                   "libdvdread: Attempting to use device %s"
+                   " mounted on %s for CSS authentication\n",
+                   me->mnt_fsname,
+                   me->mnt_dir );
+          auth_drive = DVDOpenImageFile( me->mnt_fsname, have_css );
+          dev_name = strdup(me->mnt_fsname);
+          break;
         }
+      }
+      fclose( mntfile );
+    }
 #elif defined(_MSC_VER)
     auth_drive = DVDOpenImageFile( path, have_css );
 #endif
 
 #ifndef _MSC_VER
-        if( !dev_name ) {
-          fprintf( stderr, "libdvdread: Couldn't find device name.\n" );
-        } else if( !auth_drive ) {
-            fprintf( stderr, "libdvdread: Device %s inaccessible, "
-                     "CSS authentication not available.\n", dev_name );
-        }
+    if( !dev_name ) {
+      fprintf( stderr, "libdvdread: Couldn't find device name.\n" );
+    } else if( !auth_drive ) {
+      fprintf( stderr, "libdvdread: Device %s inaccessible, "
+               "CSS authentication not available.\n", dev_name );
+    }
 #else
-        if( !auth_drive ) {
-            fprintf( stderr, "libdvdread: Device %s inaccessible, "
-                     "CSS authentication not available.\n", dev_name );
-        }
+    if( !auth_drive ) {
+        fprintf( stderr, "libdvdread: Device %s inaccessible, "
+                 "CSS authentication not available.\n", dev_name );
+    }
 #endif
 
-        free( dev_name );
-        free( path_copy );
-
-        /**
-         * If we've opened a drive, just use that.
-         */
-        if( auth_drive ) {
-                free(path);
-                return auth_drive;
-        }
+    free( dev_name );
+    free( path_copy );
 
-        /**
-         * Otherwise, we now try to open the directory tree instead.
-         */
-        ret_val = DVDOpenPath( path );
-                free( path );
-                return ret_val;
+    /**
+     * If we've opened a drive, just use that.
+     */
+    if( auth_drive ) {
+      free(path);
+      return auth_drive;
     }
+    /**
+     * Otherwise, we now try to open the directory tree instead.
+     */
+    ret_val = DVDOpenPath( path );
+      free( path );
+      return ret_val;
+  }
 
-    /* If it's none of the above, screw it. */
-    fprintf( stderr, "libdvdread: Could not open %s\n", path );
-        free( path );
-    return NULL;
+  /* If it's none of the above, screw it. */
+  fprintf( stderr, "libdvdread: Could not open %s\n", path );
+    free( path );
+  return NULL;
 }
 
 void DVDClose( dvd_reader_t *dvd )
 {
-    if( dvd ) {
-        if( dvd->dev ) dvdinput_close( dvd->dev );
-        if( dvd->path_root ) free( dvd->path_root );
-        if( dvd->udfcache ) FreeUDFCache( dvd->udfcache );
-        free( dvd );
-    }
+  if( dvd ) {
+    if( dvd->dev ) dvdinput_close( dvd->dev );
+    if( dvd->path_root ) free( dvd->path_root );
+    if( dvd->udfcache ) FreeUDFCache( dvd->udfcache );
+    free( dvd );
+  }
 }
 
 /**
@@ -566,28 +565,28 @@ void DVDClose( dvd_reader_t *dvd )
  */
 static dvd_file_t *DVDOpenFileUDF( dvd_reader_t *dvd, char *filename )
 {
-    uint32_t start, len;
-    dvd_file_t *dvd_file;
+  uint32_t start, len;
+  dvd_file_t *dvd_file;
 
-    start = UDFFindFile( dvd, filename, &len );
-    if( !start ) {
-      fprintf( stderr, "libdvdnav:DVDOpenFileUDF:UDFFindFile %s failed\n", filename );
-      return NULL;
-    }
+  start = UDFFindFile( dvd, filename, &len );
+  if( !start ) {
+    fprintf( stderr, "libdvdnav:DVDOpenFileUDF:UDFFindFile %s failed\n", filename );
+    return NULL;
+  }
 
-    dvd_file = (dvd_file_t *) malloc( sizeof( dvd_file_t ) );
-    if( !dvd_file ) {
-      fprintf( stderr, "libdvdnav:DVDOpenFileUDF:malloc failed\n" );
-      return NULL;
-    }
-    dvd_file->dvd = dvd;
-    dvd_file->lb_start = start;
-    dvd_file->seek_pos = 0;
-    memset( dvd_file->title_sizes, 0, sizeof( dvd_file->title_sizes ) );
-    memset( dvd_file->title_devs, 0, sizeof( dvd_file->title_devs ) );
-    dvd_file->filesize = len / DVD_VIDEO_LB_LEN;
+  dvd_file = (dvd_file_t *) malloc( sizeof( dvd_file_t ) );
+  if( !dvd_file ) {
+    fprintf( stderr, "libdvdnav:DVDOpenFileUDF:malloc failed\n" );
+    return NULL;
+  }
+  dvd_file->dvd = dvd;
+  dvd_file->lb_start = start;
+  dvd_file->seek_pos = 0;
+  memset( dvd_file->title_sizes, 0, sizeof( dvd_file->title_sizes ) );
+  memset( dvd_file->title_devs, 0, sizeof( dvd_file->title_devs ) );
+  dvd_file->filesize = len / DVD_VIDEO_LB_LEN;
 
-    return dvd_file;
+  return dvd_file;
 }
 
 /**
@@ -598,55 +597,54 @@ static dvd_file_t *DVDOpenFileUDF( dvd_r
  */
 static int findDirFile( const char *path, const char *file, char *filename )
 {
-    DIR *dir;
-    struct dirent *ent;
+  DIR *dir;
+  struct dirent *ent;
 
-    dir = opendir( path );
-    if( !dir ) return -2;
+  dir = opendir( path );
+  if( !dir ) return -2;
 
-    while( ( ent = readdir( dir ) ) != NULL ) {
-        if( !strcasecmp( ent->d_name, file ) ) {
-            sprintf( filename, "%s%s%s", path,
-                     ( ( path[ strlen( path ) - 1 ] == '/' ) ? "" : "/" ),
-                     ent->d_name );
-            closedir( dir );
-            return 0;
-        }
+  while( ( ent = readdir( dir ) ) != NULL ) {
+    if( !strcasecmp( ent->d_name, file ) ) {
+      sprintf( filename, "%s%s%s", path,
+               ( ( path[ strlen( path ) - 1 ] == '/' ) ? "" : "/" ),
+               ent->d_name );
+      closedir(dir);
+      return 0;
     }
-
-    closedir( dir );
-    return -1;
+  }
+  closedir(dir);
+  return -1;
 }
 
 static int findDVDFile( dvd_reader_t *dvd, const char *file, char *filename )
 {
-    char video_path[ PATH_MAX + 1 ];
-    const char *nodirfile;
-    int ret;
+  char video_path[ PATH_MAX + 1 ];
+  const char *nodirfile;
+  int ret;
 
-    /* Strip off the directory for our search */
-    if( !strncasecmp( "/VIDEO_TS/", file, 10 ) ) {
-        nodirfile = &(file[ 10 ]);
-    } else {
-        nodirfile = file;
-    }
+  /* Strip off the directory for our search */
+  if( !strncasecmp( "/VIDEO_TS/", file, 10 ) ) {
+    nodirfile = &(file[ 10 ]);
+  } else {
+    nodirfile = file;
+  }
 
-    ret = findDirFile( dvd->path_root, nodirfile, filename );
+  ret = findDirFile( dvd->path_root, nodirfile, filename );
+  if( ret < 0 ) {
+    /* Try also with adding the path, just in case. */
+    sprintf( video_path, "%s/VIDEO_TS/", dvd->path_root );
+    ret = findDirFile( video_path, nodirfile, filename );
     if( ret < 0 ) {
-        /* Try also with adding the path, just in case. */
-        sprintf( video_path, "%s/VIDEO_TS/", dvd->path_root );
-        ret = findDirFile( video_path, nodirfile, filename );
-        if( ret < 0 ) {
-            /* Try with the path, but in lower case. */
-            sprintf( video_path, "%s/video_ts/", dvd->path_root );
-            ret = findDirFile( video_path, nodirfile, filename );
-            if( ret < 0 ) {
-                return 0;
-            }
-        }
+      /* Try with the path, but in lower case. */
+      sprintf( video_path, "%s/video_ts/", dvd->path_root );
+      ret = findDirFile( video_path, nodirfile, filename );
+      if( ret < 0 ) {
+        return 0;
+      }
     }
+  }
 
-    return 1;
+  return 1;
 }
 
 /**
@@ -654,263 +652,264 @@ static int findDVDFile( dvd_reader_t *dv
  */
 static dvd_file_t *DVDOpenFilePath( dvd_reader_t *dvd, char *filename )
 {
-    char full_path[ PATH_MAX + 1 ];
-    dvd_file_t *dvd_file;
-    struct stat fileinfo;
-    dvd_input_t dev;
+  char full_path[ PATH_MAX + 1 ];
+  dvd_file_t *dvd_file;
+  struct stat fileinfo;
+  dvd_input_t dev;
 
-    /* Get the full path of the file. */
-    if( !findDVDFile( dvd, filename, full_path ) ) {
-      fprintf( stderr, "libdvdnav:DVDOpenFilePath:findDVDFile %s failed\n", filename );
-      return NULL;
-    }
+  /* Get the full path of the file. */
+  if( !findDVDFile( dvd, filename, full_path ) ) {
+    fprintf( stderr, "libdvdnav:DVDOpenFilePath:findDVDFile %s failed\n", filename );
+    return NULL;
+  }
 
-    dev = dvdinput_open( full_path );
-    if( !dev ) {
-      fprintf( stderr, "libdvdnav:DVDOpenFilePath:dvdinput_open %s failed\n", full_path );
-      return NULL;
-    }
+  dev = dvdinput_open( full_path );
+  if( !dev ) {
+    fprintf( stderr, "libdvdnav:DVDOpenFilePath:dvdinput_open %s failed\n", full_path );
+    return NULL;
+  }
 
-    dvd_file = (dvd_file_t *) malloc( sizeof( dvd_file_t ) );
-    if( !dvd_file ) {
-      fprintf( stderr, "libdvdnav:DVDOpenFilePath:dvd_file malloc failed\n" );
-      dvdinput_close(dev);
-      return NULL;
-    }
-    dvd_file->dvd = dvd;
-    dvd_file->lb_start = 0;
-    dvd_file->seek_pos = 0;
-    memset( dvd_file->title_sizes, 0, sizeof( dvd_file->title_sizes ) );
-    memset( dvd_file->title_devs, 0, sizeof( dvd_file->title_devs ) );
-    dvd_file->filesize = 0;
+  dvd_file = (dvd_file_t *) malloc( sizeof( dvd_file_t ) );
+  if( !dvd_file ) {
+    fprintf( stderr, "libdvdnav:DVDOpenFilePath:dvd_file malloc failed\n" );
+    dvdinput_close(dev);
+    return NULL;
+  }
+  dvd_file->dvd = dvd;
+  dvd_file->lb_start = 0;
+  dvd_file->seek_pos = 0;
+  memset( dvd_file->title_sizes, 0, sizeof( dvd_file->title_sizes ) );
+  memset( dvd_file->title_devs, 0, sizeof( dvd_file->title_devs ) );
+  dvd_file->filesize = 0;
 
-    if( stat( full_path, &fileinfo ) < 0 ) {
-        fprintf( stderr, "libdvdread: Can't stat() %s.\n", filename );
-        free( dvd_file );
-        return NULL;
-    }
-    dvd_file->title_sizes[ 0 ] = fileinfo.st_size / DVD_VIDEO_LB_LEN;
-    dvd_file->title_devs[ 0 ] = dev;
-    dvd_file->filesize = dvd_file->title_sizes[ 0 ];
+  if( stat( full_path, &fileinfo ) < 0 ) {
+    fprintf( stderr, "libdvdread: Can't stat() %s.\n", filename );
+    free( dvd_file );
+    return NULL;
+  }
+  dvd_file->title_sizes[ 0 ] = fileinfo.st_size / DVD_VIDEO_LB_LEN;
+  dvd_file->title_devs[ 0 ] = dev;
+  dvd_file->filesize = dvd_file->title_sizes[ 0 ];
 
-    return dvd_file;
+  return dvd_file;
 }
 
 static dvd_file_t *DVDOpenVOBUDF( dvd_reader_t *dvd, int title, int menu )
 {
-    char filename[ MAX_UDF_FILE_NAME_LEN ];
-    uint32_t start, len;
-    dvd_file_t *dvd_file;
+  char filename[ MAX_UDF_FILE_NAME_LEN ];
+  uint32_t start, len;
+  dvd_file_t *dvd_file;
 
-    if( title == 0 ) {
-        sprintf( filename, "/VIDEO_TS/VIDEO_TS.VOB" );
-    } else {
-        sprintf( filename, "/VIDEO_TS/VTS_%02d_%d.VOB", title, menu ? 0 : 1 );
-    }
-    start = UDFFindFile( dvd, filename, &len );
-    if( start == 0 ) return NULL;
+  if( title == 0 ) {
+    sprintf( filename, "/VIDEO_TS/VIDEO_TS.VOB" );
+  } else {
+    sprintf( filename, "/VIDEO_TS/VTS_%02d_%d.VOB", title, menu ? 0 : 1 );
+  }
+  start = UDFFindFile( dvd, filename, &len );
+  if( start == 0 ) return NULL;
 
-    dvd_file = (dvd_file_t *) malloc( sizeof( dvd_file_t ) );
-    if( !dvd_file ) return NULL;
-    dvd_file->dvd = dvd;
-    /*Hack*/ dvd_file->css_title = title << 1 | menu;
-    dvd_file->lb_start = start;
-    dvd_file->seek_pos = 0;
-    memset( dvd_file->title_sizes, 0, sizeof( dvd_file->title_sizes ) );
-    memset( dvd_file->title_devs, 0, sizeof( dvd_file->title_devs ) );
-    dvd_file->filesize = len / DVD_VIDEO_LB_LEN;
+  dvd_file = (dvd_file_t *) malloc( sizeof( dvd_file_t ) );
+  if( !dvd_file ) return NULL;
+  dvd_file->dvd = dvd;
+  /*Hack*/ dvd_file->css_title = title << 1 | menu;
+  dvd_file->lb_start = start;
+  dvd_file->seek_pos = 0;
+  memset( dvd_file->title_sizes, 0, sizeof( dvd_file->title_sizes ) );
+  memset( dvd_file->title_devs, 0, sizeof( dvd_file->title_devs ) );
+  dvd_file->filesize = len / DVD_VIDEO_LB_LEN;
 
-    /* Calculate the complete file size for every file in the VOBS */
-    if( !menu ) {
-        int cur;
+  /* Calculate the complete file size for every file in the VOBS */
+  if( !menu ) {
+    int cur;
 
-        for( cur = 2; cur < 10; cur++ ) {
-            sprintf( filename, "/VIDEO_TS/VTS_%02d_%d.VOB", title, cur );
-            if( !UDFFindFile( dvd, filename, &len ) ) break;
-            dvd_file->filesize += len / DVD_VIDEO_LB_LEN;
-        }
+    for( cur = 2; cur < 10; cur++ ) {
+      sprintf( filename, "/VIDEO_TS/VTS_%02d_%d.VOB", title, cur );
+      if( !UDFFindFile( dvd, filename, &len ) ) break;
+      dvd_file->filesize += len / DVD_VIDEO_LB_LEN;
     }
+  }
 
-    if( dvd->css_state == 1 /* Need key init */ ) {
-        initAllCSSKeys( dvd );
-        dvd->css_state = 2;
-    }
-    /*
-    if( dvdinput_title( dvd_file->dvd->dev, (int)start ) < 0 ) {
-        fprintf( stderr, "libdvdread: Error cracking CSS key for %s\n",
-                 filename );
-    }
-    */
+  if( dvd->css_state == 1 /* Need key init */ ) {
+    initAllCSSKeys( dvd );
+    dvd->css_state = 2;
+  }
+  /*
+  if( dvdinput_title( dvd_file->dvd->dev, (int)start ) < 0 ) {
+      fprintf( stderr, "libdvdread: Error cracking CSS key for %s\n",
+               filename );
+  }
+  */
 
-    return dvd_file;
+  return dvd_file;
 }
 
 static dvd_file_t *DVDOpenVOBPath( dvd_reader_t *dvd, int title, int menu )
 {
-    char filename[ MAX_UDF_FILE_NAME_LEN ];
-    char full_path[ PATH_MAX + 1 ];
-    struct stat fileinfo;
-    dvd_file_t *dvd_file;
-    int i;
+  char filename[ MAX_UDF_FILE_NAME_LEN ];
+  char full_path[ PATH_MAX + 1 ];
+  struct stat fileinfo;
+  dvd_file_t *dvd_file;
+  int i;
 
-    dvd_file = (dvd_file_t *) malloc( sizeof( dvd_file_t ) );
-    if( !dvd_file ) return NULL;
-    dvd_file->dvd = dvd;
-    /*Hack*/ dvd_file->css_title = title << 1 | menu;
-    dvd_file->lb_start = 0;
-    dvd_file->seek_pos = 0;
-    memset( dvd_file->title_sizes, 0, sizeof( dvd_file->title_sizes ) );
-    memset( dvd_file->title_devs, 0, sizeof( dvd_file->title_devs ) );
-    dvd_file->filesize = 0;
+  dvd_file = (dvd_file_t *) malloc( sizeof( dvd_file_t ) );
+  if( !dvd_file ) return NULL;
+  dvd_file->dvd = dvd;
+  /*Hack*/ dvd_file->css_title = title << 1 | menu;
+  dvd_file->lb_start = 0;
+  dvd_file->seek_pos = 0;
+  memset( dvd_file->title_sizes, 0, sizeof( dvd_file->title_sizes ) );
+  memset( dvd_file->title_devs, 0, sizeof( dvd_file->title_devs ) );
+  dvd_file->filesize = 0;
 
-    if( menu ) {
-        dvd_input_t dev;
+  if( menu ) {
+    dvd_input_t dev;
 
-        if( title == 0 ) {
-            sprintf( filename, "VIDEO_TS.VOB" );
-        } else {
-            sprintf( filename, "VTS_%02i_0.VOB", title );
-        }
-        if( !findDVDFile( dvd, filename, full_path ) ) {
-            free( dvd_file );
-            return NULL;
-        }
+    if( title == 0 ) {
+      sprintf( filename, "VIDEO_TS.VOB" );
+    } else {
+      sprintf( filename, "VTS_%02i_0.VOB", title );
+    }
+    if( !findDVDFile( dvd, filename, full_path ) ) {
+      free( dvd_file );
+      return NULL;
+    }
 
-        dev = dvdinput_open( full_path );
-        if( dev == NULL ) {
-            free( dvd_file );
-            return NULL;
-        }
+    dev = dvdinput_open( full_path );
+    if( dev == NULL ) {
+      free( dvd_file );
+      return NULL;
+    }
 
-        if( stat( full_path, &fileinfo ) < 0 ) {
-            fprintf( stderr, "libdvdread: Can't stat() %s.\n", filename );
-            dvdinput_close(dev);
-            free( dvd_file );
-            return NULL;
-        }
-        dvd_file->title_sizes[ 0 ] = fileinfo.st_size / DVD_VIDEO_LB_LEN;
-        dvd_file->title_devs[ 0 ] = dev;
-        dvdinput_title( dvd_file->title_devs[0], 0);
-        dvd_file->filesize = dvd_file->title_sizes[ 0 ];
+    if( stat( full_path, &fileinfo ) < 0 ) {
+      fprintf( stderr, "libdvdread: Can't stat() %s.\n", filename );
+      dvdinput_close(dev);
+      free( dvd_file );
+      return NULL;
+    }
+    dvd_file->title_sizes[ 0 ] = fileinfo.st_size / DVD_VIDEO_LB_LEN;
+    dvd_file->title_devs[ 0 ] = dev;
+    dvdinput_title( dvd_file->title_devs[0], 0);
+    dvd_file->filesize = dvd_file->title_sizes[ 0 ];
 
-    } else {
-        for( i = 0; i < TITLES_MAX; ++i ) {
+  } else {
+    for( i = 0; i < TITLES_MAX; ++i ) {
 
-            sprintf( filename, "VTS_%02i_%i.VOB", title, i + 1 );
-            if( !findDVDFile( dvd, filename, full_path ) ) {
-                break;
-            }
+      sprintf( filename, "VTS_%02i_%i.VOB", title, i + 1 );
+      if( !findDVDFile( dvd, filename, full_path ) ) {
+        break;
+      }
 
-            if( stat( full_path, &fileinfo ) < 0 ) {
-                fprintf( stderr, "libdvdread: Can't stat() %s.\n", filename );
-                break;
-            }
+      if( stat( full_path, &fileinfo ) < 0 ) {
+        fprintf( stderr, "libdvdread: Can't stat() %s.\n", filename );
+        break;
+      }
 
-            dvd_file->title_sizes[ i ] = fileinfo.st_size / DVD_VIDEO_LB_LEN;
-            dvd_file->title_devs[ i ] = dvdinput_open( full_path );
-            dvdinput_title( dvd_file->title_devs[ i ], 0 );
-            dvd_file->filesize += dvd_file->title_sizes[ i ];
-        }
-        if( !dvd_file->title_devs[ 0 ] ) {
-            free( dvd_file );
-            return NULL;
-        }
+      dvd_file->title_sizes[ i ] = fileinfo.st_size / DVD_VIDEO_LB_LEN;
+      dvd_file->title_devs[ i ] = dvdinput_open( full_path );
+      dvdinput_title( dvd_file->title_devs[ i ], 0 );
+      dvd_file->filesize += dvd_file->title_sizes[ i ];
     }
+    if( !dvd_file->title_devs[ 0 ] ) {
+      free( dvd_file );
+      return NULL;
+    }
+  }
 
-    return dvd_file;
+  return dvd_file;
 }
 
 dvd_file_t *DVDOpenFile( dvd_reader_t *dvd, int titlenum,
                          dvd_read_domain_t domain )
 {
-    char filename[ MAX_UDF_FILE_NAME_LEN ];
+  char filename[ MAX_UDF_FILE_NAME_LEN ];
 
-    /* Check arguments. */
-    if( dvd == NULL || titlenum < 0 )
-      return NULL;
+  /* Check arguments. */
+  if( dvd == NULL || titlenum < 0 )
+    return NULL;
 
-    switch( domain ) {
-    case DVD_READ_INFO_FILE:
-        if( titlenum == 0 ) {
-            sprintf( filename, "/VIDEO_TS/VIDEO_TS.IFO" );
-        } else {
-            sprintf( filename, "/VIDEO_TS/VTS_%02i_0.IFO", titlenum );
-        }
-        break;
-    case DVD_READ_INFO_BACKUP_FILE:
-        if( titlenum == 0 ) {
-            sprintf( filename, "/VIDEO_TS/VIDEO_TS.BUP" );
-        } else {
-            sprintf( filename, "/VIDEO_TS/VTS_%02i_0.BUP", titlenum );
-        }
-        break;
-    case DVD_READ_MENU_VOBS:
-        if( dvd->isImageFile ) {
-            return DVDOpenVOBUDF( dvd, titlenum, 1 );
-        } else {
-            return DVDOpenVOBPath( dvd, titlenum, 1 );
-        }
-        break;
-    case DVD_READ_TITLE_VOBS:
-        if( titlenum == 0 ) return 0;
-        if( dvd->isImageFile ) {
-            return DVDOpenVOBUDF( dvd, titlenum, 0 );
-        } else {
-            return DVDOpenVOBPath( dvd, titlenum, 0 );
-        }
-        break;
-    default:
-        fprintf( stderr, "libdvdread: Invalid domain for file open.\n" );
-        return NULL;
+  switch( domain ) {
+  case DVD_READ_INFO_FILE:
+    if( titlenum == 0 ) {
+      sprintf( filename, "/VIDEO_TS/VIDEO_TS.IFO" );
+    } else {
+      sprintf( filename, "/VIDEO_TS/VTS_%02i_0.IFO", titlenum );
     }
-
+    break;
+  case DVD_READ_INFO_BACKUP_FILE:
+    if( titlenum == 0 ) {
+      sprintf( filename, "/VIDEO_TS/VIDEO_TS.BUP" );
+    } else {
+      sprintf( filename, "/VIDEO_TS/VTS_%02i_0.BUP", titlenum );
+    }
+    break;
+  case DVD_READ_MENU_VOBS:
     if( dvd->isImageFile ) {
-        return DVDOpenFileUDF( dvd, filename );
+      return DVDOpenVOBUDF( dvd, titlenum, 1 );
     } else {
-        return DVDOpenFilePath( dvd, filename );
+      return DVDOpenVOBPath( dvd, titlenum, 1 );
     }
+    break;
+  case DVD_READ_TITLE_VOBS:
+    if( titlenum == 0 ) return 0;
+    if( dvd->isImageFile ) {
+      return DVDOpenVOBUDF( dvd, titlenum, 0 );
+    } else {
+      return DVDOpenVOBPath( dvd, titlenum, 0 );
+    }
+    break;
+  default:
+    fprintf( stderr, "libdvdread: Invalid domain for file open.\n" );
+    return NULL;
+  }
+
+  if( dvd->isImageFile ) {
+    return DVDOpenFileUDF( dvd, filename );
+  } else {
+    return DVDOpenFilePath( dvd, filename );
+  }
 }
 
 void DVDCloseFile( dvd_file_t *dvd_file )
 {
-    int i;
+  int i;
 
-    if( dvd_file ) {
-        if( dvd_file->dvd->isImageFile ) {
-            ;
-        } else {
-            for( i = 0; i < TITLES_MAX; ++i ) {
-                if( dvd_file->title_devs[ i ] ) {
-                    dvdinput_close( dvd_file->title_devs[i] );
-                }
-            }
+  if( dvd_file ) {
+    if( dvd_file->dvd->isImageFile ) {
+      ;
+    } else {
+      for( i = 0; i < TITLES_MAX; ++i ) {
+        if( dvd_file->title_devs[ i ] ) {
+          dvdinput_close( dvd_file->title_devs[i] );
         }
-
-        free( dvd_file );
-        dvd_file = 0;
+      }
     }
+
+    free( dvd_file );
+    dvd_file = 0;
+  }
 }
 
 /* Internal, but used from dvd_udf.c */
 int UDFReadBlocksRaw( dvd_reader_t *device, uint32_t lb_number,
-                         size_t block_count, unsigned char *data,
-                         int encrypted )
+                      size_t block_count, unsigned char *data,
+                      int encrypted )
 {
-   int ret;
-   if( !device->dev ) {
-        fprintf( stderr, "libdvdread: Fatal error in block read.\n" );
-        return 0;
-   }
+  int ret;
 
-   ret = dvdinput_seek( device->dev, (int) lb_number );
-   if( ret != (int) lb_number ) {
-        fprintf( stderr, "libdvdread: Can't seek to block %u\n", lb_number );
-        return 0;
-   }
+  if( !device->dev ) {
+    fprintf( stderr, "libdvdread: Fatal error in block read.\n" );
+    return 0;
+  }
 
-   ret = dvdinput_read( device->dev, (char *) data,
-                         (int) block_count, encrypted );
-   return ret;
+  ret = dvdinput_seek( device->dev, (int) lb_number );
+  if( ret != (int) lb_number ) {
+    fprintf( stderr, "libdvdread: Can't seek to block %u\n", lb_number );
+    return 0;
+  }
+
+  ret = dvdinput_read( device->dev, (char *) data,
+                       (int) block_count, encrypted );
+  return ret;
 }
 
 /* This is using a single input and starting from 'dvd_file->lb_start' offset.
@@ -923,8 +922,8 @@ static int DVDReadBlocksUDF( dvd_file_t 
                              size_t block_count, unsigned char *data,
                              int encrypted )
 {
-    return UDFReadBlocksRaw( dvd_file->dvd, dvd_file->lb_start + offset,
-                             block_count, data, encrypted );
+  return UDFReadBlocksRaw( dvd_file->dvd, dvd_file->lb_start + offset,
+                           block_count, data, encrypted );
 }
 
 /* This is using possibly several inputs and starting from an offset of '0'.
@@ -937,238 +936,240 @@ static int DVDReadBlocksPath( dvd_file_t
                               size_t block_count, unsigned char *data,
                               int encrypted )
 {
-    int i;
-    int ret, ret2, off;
+  int i;
+  int ret, ret2, off;
 
-    ret = 0;
-    ret2 = 0;
-    for( i = 0; i < TITLES_MAX; ++i ) {
-      if( !dvd_file->title_sizes[ i ] ) return 0; /* Past end of file */
+  ret = 0;
+  ret2 = 0;
+  for( i = 0; i < TITLES_MAX; ++i ) {
+    if( !dvd_file->title_sizes[ i ] ) return 0; /* Past end of file */
 
-        if( offset < dvd_file->title_sizes[ i ] ) {
-            if( ( offset + block_count ) <= dvd_file->title_sizes[ i ] ) {
-                off = dvdinput_seek( dvd_file->title_devs[ i ], (int)offset );
-                if( off < 0 || off != (int)offset ) {
-                    fprintf( stderr, "libdvdread: Can't seek to block %d\n",
-                             offset );
-                    return off < 0 ? off : 0;
-                }
-                ret = dvdinput_read( dvd_file->title_devs[ i ], data,
-                                     (int)block_count, encrypted );
-                break;
-            } else {
-                size_t part1_size = dvd_file->title_sizes[ i ] - offset;
-                /* FIXME: Really needs to be a while loop.
-                 * (This is only true if you try and read >1GB at a time) */
+    if( offset < dvd_file->title_sizes[ i ] ) {
+      if( ( offset + block_count ) <= dvd_file->title_sizes[ i ] ) {
+        off = dvdinput_seek( dvd_file->title_devs[ i ], (int)offset );
+        if( off < 0 || off != (int)offset ) {
+          fprintf( stderr, "libdvdread: Can't seek to block %d\n",
+                   offset );
+          return off < 0 ? off : 0;
+        }
+        ret = dvdinput_read( dvd_file->title_devs[ i ], data,
+                             (int)block_count, encrypted );
+        break;
+      } else {
+        size_t part1_size = dvd_file->title_sizes[ i ] - offset;
+        /* FIXME: Really needs to be a while loop.
+         * (This is only true if you try and read >1GB at a time) */
 
-                /* Read part 1 */
-                off = dvdinput_seek( dvd_file->title_devs[ i ], (int)offset );
-                if( off < 0 || off != (int)offset ) {
-                    fprintf( stderr, "libdvdread: Can't seek to block %d\n",
-                             offset );
-                    return off < 0 ? off : 0;
-                }
-                ret = dvdinput_read( dvd_file->title_devs[ i ], data,
-                                     (int)part1_size, encrypted );
-                if( ret < 0 ) return ret;
-                /* FIXME: This is wrong if i is the last file in the set.
-                 * also error from this read will not show in ret. */
+        /* Read part 1 */
+        off = dvdinput_seek( dvd_file->title_devs[ i ], (int)offset );
+        if( off < 0 || off != (int)offset ) {
+          fprintf( stderr, "libdvdread: Can't seek to block %d\n",
+                   offset );
+          return off < 0 ? off : 0;
+        }
+        ret = dvdinput_read( dvd_file->title_devs[ i ], data,
+                             (int)part1_size, encrypted );
+        if( ret < 0 ) return ret;
+        /* FIXME: This is wrong if i is the last file in the set.
+         * also error from this read will not show in ret. */
 
-                /* Does the next part exist? If not then return now. */
-                if( i + 1 >= TITLES_MAX || !dvd_file->title_devs[ i + 1 ] )
-                    return ret;
+        /* Does the next part exist? If not then return now. */
+        if( i + 1 >= TITLES_MAX || !dvd_file->title_devs[ i + 1 ] )
+          return ret;
 
-                /* Read part 2 */
-                off = dvdinput_seek( dvd_file->title_devs[ i + 1 ], 0 );
-                if( off < 0 || off != 0 ) {
-                    fprintf( stderr, "libdvdread: Can't seek to block %d\n",
-                             0 );
-                    return off < 0 ? off : 0;
-                }
-                ret2 = dvdinput_read( dvd_file->title_devs[ i + 1 ],
-                                      data + ( part1_size
-                                               * (int64_t)DVD_VIDEO_LB_LEN ),
-                                      (int)(block_count - part1_size),
-                                      encrypted );
-                if( ret2 < 0 ) return ret2;
-                break;
-            }
-        } else {
-            offset -= dvd_file->title_sizes[ i ];
+        /* Read part 2 */
+        off = dvdinput_seek( dvd_file->title_devs[ i + 1 ], 0 );
+        if( off < 0 || off != 0 ) {
+          fprintf( stderr, "libdvdread: Can't seek to block %d\n",
+                   0 );
+          return off < 0 ? off : 0;
         }
+        ret2 = dvdinput_read( dvd_file->title_devs[ i + 1 ],
+                              data + ( part1_size
+                                       * (int64_t)DVD_VIDEO_LB_LEN ),
+                              (int)(block_count - part1_size),
+                              encrypted );
+        if( ret2 < 0 ) return ret2;
+        break;
+      }
+    } else {
+      offset -= dvd_file->title_sizes[ i ];
     }
+  }
 
-    return ret + ret2;
+  return ret + ret2;
 }
 
 /* This is broken reading more than 2Gb at a time is ssize_t is 32-bit. */
 ssize_t DVDReadBlocks( dvd_file_t *dvd_file, int offset,
                        size_t block_count, unsigned char *data )
 {
-    int ret;
-    /* Check arguments. */
-    if( dvd_file == NULL || offset < 0 || data == NULL )
-      return -1;
+  int ret;
 
-    /* Hack, and it will still fail for multiple opens in a threaded app ! */
-    if( dvd_file->dvd->css_title != dvd_file->css_title ) {
-      dvd_file->dvd->css_title = dvd_file->css_title;
-      if( dvd_file->dvd->isImageFile ) {
-        dvdinput_title( dvd_file->dvd->dev, (int)dvd_file->lb_start );
-      }
-      /* Here each vobu has it's own dvdcss handle, so no need to update
-      else {
-        dvdinput_title( dvd_file->title_devs[ 0 ], (int)dvd_file->lb_start );
-      }*/
-    }
+  /* Check arguments. */
+  if( dvd_file == NULL || offset < 0 || data == NULL )
+    return -1;
 
+  /* Hack, and it will still fail for multiple opens in a threaded app ! */
+  if( dvd_file->dvd->css_title != dvd_file->css_title ) {
+    dvd_file->dvd->css_title = dvd_file->css_title;
     if( dvd_file->dvd->isImageFile ) {
-        ret = DVDReadBlocksUDF( dvd_file, (uint32_t)offset,
-                                block_count, data, DVDINPUT_READ_DECRYPT );
-    } else {
-        ret = DVDReadBlocksPath( dvd_file, (unsigned int)offset,
-                                 block_count, data, DVDINPUT_READ_DECRYPT );
+      dvdinput_title( dvd_file->dvd->dev, (int)dvd_file->lb_start );
     }
+    /* Here each vobu has it's own dvdcss handle, so no need to update
+    else {
+      dvdinput_title( dvd_file->title_devs[ 0 ], (int)dvd_file->lb_start );
+    }*/
+  }
 
-    return (ssize_t)ret;
+  if( dvd_file->dvd->isImageFile ) {
+    ret = DVDReadBlocksUDF( dvd_file, (uint32_t)offset,
+                            block_count, data, DVDINPUT_READ_DECRYPT );
+  } else {
+    ret = DVDReadBlocksPath( dvd_file, (unsigned int)offset,
+                             block_count, data, DVDINPUT_READ_DECRYPT );
+  }
+
+  return (ssize_t)ret;
 }
 
 int32_t DVDFileSeek( dvd_file_t *dvd_file, int32_t offset )
 {
-    /* Check arguments. */
-    if( dvd_file == NULL || offset < 0 )
-       return -1;
+  /* Check arguments. */
+  if( dvd_file == NULL || offset < 0 )
+    return -1;
 
-    if( offset > dvd_file->filesize * DVD_VIDEO_LB_LEN ) {
-       return -1;
-    }
-    dvd_file->seek_pos = (uint32_t) offset;
-    return offset;
+  if( offset > dvd_file->filesize * DVD_VIDEO_LB_LEN ) {
+    return -1;
+  }
+  dvd_file->seek_pos = (uint32_t) offset;
+  return offset;
 }
 
 int DVDFileSeekForce(dvd_file_t *dvd_file, int offset, int force_size)
 {
-    /* Check arguments. */
-    if( dvd_file == NULL || offset <= 0 )
-        return -1;
+  /* Check arguments. */
+  if( dvd_file == NULL || offset <= 0 )
+      return -1;
 
-    if( dvd_file->dvd->isImageFile ) {
-        if( force_size < 0 )
-            force_size = (offset - 1) / DVD_VIDEO_LB_LEN + 1;
-        if( dvd_file->filesize < force_size ) {
-            dvd_file->filesize = force_size;
-            fprintf(stderr, "libdvdread: Ignored size of file indicated in UDF.\n");
-        }
+  if( dvd_file->dvd->isImageFile ) {
+    if( force_size < 0 )
+      force_size = (offset - 1) / DVD_VIDEO_LB_LEN + 1;
+    if( dvd_file->filesize < force_size ) {
+      dvd_file->filesize = force_size;
+      fprintf(stderr, "libdvdread: Ignored size of file indicated in UDF.\n");
     }
+  }
 
-    if( offset > dvd_file->filesize * DVD_VIDEO_LB_LEN )
-        return -1;
+  if( offset > dvd_file->filesize * DVD_VIDEO_LB_LEN )
+    return -1;
 
-    dvd_file->seek_pos = (uint32_t) offset;
-    return offset;
+  dvd_file->seek_pos = (uint32_t) offset;
+  return offset;
 }
 
 ssize_t DVDReadBytes( dvd_file_t *dvd_file, void *data, size_t byte_size )
 {
-    unsigned char *secbuf_base, *secbuf;
-    unsigned int numsec, seek_sector, seek_byte;
-    int ret;
-
-    /* Check arguments. */
-    if( dvd_file == NULL || data == NULL )
-      return -1;
+  unsigned char *secbuf_base, *secbuf;
+  unsigned int numsec, seek_sector, seek_byte;
+  int ret;
 
-    seek_sector = dvd_file->seek_pos / DVD_VIDEO_LB_LEN;
-    seek_byte   = dvd_file->seek_pos % DVD_VIDEO_LB_LEN;
+  /* Check arguments. */
+  if( dvd_file == NULL || data == NULL )
+    return -1;
 
-    numsec = ( ( seek_byte + byte_size ) / DVD_VIDEO_LB_LEN ) +
-      ( ( ( seek_byte + byte_size ) % DVD_VIDEO_LB_LEN ) ? 1 : 0 );
+  seek_sector = dvd_file->seek_pos / DVD_VIDEO_LB_LEN;
+  seek_byte   = dvd_file->seek_pos % DVD_VIDEO_LB_LEN;
 
-    secbuf_base = (unsigned char *) malloc( numsec * DVD_VIDEO_LB_LEN + 2048 );
-    secbuf = (unsigned char *)(((uintptr_t)secbuf_base & ~((uintptr_t)2047)) + 2048);
-    if( !secbuf_base ) {
-        fprintf( stderr, "libdvdread: Can't allocate memory "
-                 "for file read!\n" );
-        return 0;
-    }
+  numsec = ( ( seek_byte + byte_size ) / DVD_VIDEO_LB_LEN ) +
+    ( ( ( seek_byte + byte_size ) % DVD_VIDEO_LB_LEN ) ? 1 : 0 );
 
-    if( dvd_file->dvd->isImageFile ) {
-        ret = DVDReadBlocksUDF( dvd_file, (uint32_t) seek_sector,
-                                (size_t) numsec, secbuf, DVDINPUT_NOFLAGS );
-    } else {
-        ret = DVDReadBlocksPath( dvd_file, seek_sector,
-                                 (size_t) numsec, secbuf, DVDINPUT_NOFLAGS );
-    }
+  secbuf_base = (unsigned char *) malloc( numsec * DVD_VIDEO_LB_LEN + 2048 );
+  secbuf = (unsigned char *)(((uintptr_t)secbuf_base & ~((uintptr_t)2047)) + 2048);
+  if( !secbuf_base ) {
+    fprintf( stderr, "libdvdread: Can't allocate memory "
+             "for file read!\n" );
+    return 0;
+  }
 
-    if( ret != (int) numsec ) {
-        free( secbuf_base );
-        return ret < 0 ? ret : 0;
-    }
+  if( dvd_file->dvd->isImageFile ) {
+    ret = DVDReadBlocksUDF( dvd_file, (uint32_t) seek_sector,
+                            (size_t) numsec, secbuf, DVDINPUT_NOFLAGS );
+  } else {
+    ret = DVDReadBlocksPath( dvd_file, seek_sector,
+                             (size_t) numsec, secbuf, DVDINPUT_NOFLAGS );
+  }
 
-    memcpy( data, &(secbuf[ seek_byte ]), byte_size );
+  if( ret != (int) numsec ) {
     free( secbuf_base );
+    return ret < 0 ? ret : 0;
+  }
 
-    DVDFileSeekForce(dvd_file, dvd_file->seek_pos + byte_size, -1);
-    return byte_size;
+  memcpy( data, &(secbuf[ seek_byte ]), byte_size );
+  free( secbuf_base );
+
+  DVDFileSeekForce(dvd_file, dvd_file->seek_pos + byte_size, -1);
+  return byte_size;
 }
 
 ssize_t DVDFileSize( dvd_file_t *dvd_file )
 {
-    /* Check arguments. */
-    if( dvd_file == NULL )
-      return -1;
+  /* Check arguments. */
+  if( dvd_file == NULL )
+    return -1;
 
-    return dvd_file->filesize;
+  return dvd_file->filesize;
 }
 
 int DVDDiscID( dvd_reader_t *dvd, unsigned char *discid )
 {
-    struct md5_ctx ctx;
-    int title;
-    int nr_of_files = 0;
+  struct md5_ctx ctx;
+  int title;
+  int nr_of_files = 0;
 
-    /* Check arguments. */
-    if( dvd == NULL || discid == NULL )
-      return 0;
+  /* Check arguments. */
+  if( dvd == NULL || discid == NULL )
+    return 0;
 
-    /* Go through the first 10 IFO:s, in order,
-     * and md5sum them, i.e  VIDEO_TS.IFO and VTS_0?_0.IFO */
-    md5_init_ctx( &ctx );
-    for( title = 0; title < 10; title++ ) {
-        dvd_file_t *dvd_file = DVDOpenFile( dvd, title, DVD_READ_INFO_FILE );
-        if( dvd_file != NULL ) {
-            ssize_t bytes_read;
-            size_t file_size = dvd_file->filesize * DVD_VIDEO_LB_LEN;
-            char *buffer_base = malloc( file_size + 2048 );
-            char *buffer = (char *)(((uintptr_t)buffer_base & ~((uintptr_t)2047)) + 2048);
+  /* Go through the first 10 IFO:s, in order,
+   * and md5sum them, i.e  VIDEO_TS.IFO and VTS_0?_0.IFO */
+  md5_init_ctx( &ctx );
+  for( title = 0; title < 10; title++ ) {
+    dvd_file_t *dvd_file = DVDOpenFile( dvd, title, DVD_READ_INFO_FILE );
+    if( dvd_file != NULL ) {
+      ssize_t bytes_read;
+      size_t file_size = dvd_file->filesize * DVD_VIDEO_LB_LEN;
+      char *buffer_base = malloc( file_size + 2048 );
+      char *buffer = (char *)(((uintptr_t)buffer_base & ~((uintptr_t)2047)) + 2048);
 
-            if( buffer_base == NULL ) {
-                DVDCloseFile( dvd_file );
-                fprintf( stderr, "libdvdread: DVDDiscId, failed to "
-                         "allocate memory for file read!\n" );
-                return -1;
-            }
-            bytes_read = DVDReadBytes( dvd_file, buffer, file_size );
-            if( bytes_read != file_size ) {
-                fprintf( stderr, "libdvdread: DVDDiscId read returned %zd bytes"
-                         ", wanted %zd\n", bytes_read, file_size );
-                DVDCloseFile( dvd_file );
-                free( buffer_base );
-                return -1;
-            }
+      if( buffer_base == NULL ) {
+          DVDCloseFile( dvd_file );
+          fprintf( stderr, "libdvdread: DVDDiscId, failed to "
+                   "allocate memory for file read!\n" );
+          return -1;
+      }
 
-            md5_process_bytes( buffer, file_size,  &ctx );
+      bytes_read = DVDReadBytes( dvd_file, buffer, file_size );
+      if( bytes_read != file_size ) {
+          fprintf( stderr, "libdvdread: DVDDiscId read returned %zd bytes"
+                   ", wanted %zd\n", bytes_read, file_size );
+          DVDCloseFile( dvd_file );
+          free( buffer_base );
+          return -1;
+      }
 
-            DVDCloseFile( dvd_file );
-            free( buffer_base );
-            nr_of_files++;
-        }
+      md5_process_bytes( buffer, file_size,  &ctx );
+
+      DVDCloseFile( dvd_file );
+      free( buffer_base );
+      nr_of_files++;
     }
-    md5_finish_ctx( &ctx, discid );
-    if(!nr_of_files)
-      return -1;
+  }
+  md5_finish_ctx( &ctx, discid );
+  if(!nr_of_files)
+    return -1;
 
-    return 0;
+  return 0;
 }
 
 

Modified: trunk/libdvdread/src/dvd_udf.c
==============================================================================
--- trunk/libdvdread/src/dvd_udf.c	(original)
+++ trunk/libdvdread/src/dvd_udf.c	Thu Sep 25 11:17:42 2008
@@ -44,8 +44,8 @@
 
 /* Private but located in/shared with dvd_reader.c */
 extern int UDFReadBlocksRaw( dvd_reader_t *device, uint32_t lb_number,
-                                size_t block_count, unsigned char *data,
-                                int encrypted );
+                             size_t block_count, unsigned char *data,
+                             int encrypted );
 
 /* It's required to either fail or deliver all the blocks asked for. */
 static int DVDReadLBUDF( dvd_reader_t *device, uint32_t lb_number,
@@ -56,6 +56,7 @@ static int DVDReadLBUDF( dvd_reader_t *d
   size_t count = block_count;
 
   while(count > 0) {
+
     ret = UDFReadBlocksRaw(device, lb_number, count, data, encrypted);
 
     if(ret <= 0) {
@@ -201,16 +202,16 @@ static int GetUDFCache(dvd_reader_t *dev
   case LBUDFCache:
     for(n = 0; n < c->lb_num; n++) {
       if(c->lbs[n].lb == nr) {
-      *(uint8_t **)data = c->lbs[n].data;
-      return 1;
+        *(uint8_t **)data = c->lbs[n].data;
+        return 1;
       }
     }
     break;
   case MapCache:
     for(n = 0; n < c->map_num; n++) {
       if(c->maps[n].lbn == nr) {
-       *(struct icbmap *)data = c->maps[n];
-       return 1;
+        *(struct icbmap *)data = c->maps[n];
+        return 1;
       }
     }
     break;
@@ -262,19 +263,19 @@ static int SetUDFCache(dvd_reader_t *dev
   case LBUDFCache:
     for(n = 0; n < c->lb_num; n++) {
       if(c->lbs[n].lb == nr) {
-       /* replace with new data */
-       c->lbs[n].data_base = ((uint8_t **)data)[0];
-       c->lbs[n].data = ((uint8_t **)data)[1];
-       c->lbs[n].lb = nr;
-       return 1;
+        /* replace with new data */
+        c->lbs[n].data_base = ((uint8_t **)data)[0];
+        c->lbs[n].data = ((uint8_t **)data)[1];
+        c->lbs[n].lb = nr;
+        return 1;
       }
     }
     c->lb_num++;
     tmp = realloc(c->lbs, c->lb_num * sizeof(struct lbudf));
     /*
     fprintf(stderr, "realloc lb: %d * %d = %d\n",
-      c->lb_num, sizeof(struct lbudf),
-      c->lb_num * sizeof(struct lbudf));
+    c->lb_num, sizeof(struct lbudf),
+    c->lb_num * sizeof(struct lbudf));
     */
     if(tmp == NULL) {
       if(c->lbs) free(c->lbs);
@@ -289,10 +290,10 @@ static int SetUDFCache(dvd_reader_t *dev
   case MapCache:
     for(n = 0; n < c->map_num; n++) {
       if(c->maps[n].lbn == nr) {
-       /* replace with new data */
-       c->maps[n] = *(struct icbmap *)data;
-       c->maps[n].lbn = nr;
-       return 1;
+        /* replace with new data */
+        c->maps[n] = *(struct icbmap *)data;
+        c->maps[n].lbn = nr;
+        return 1;
       }
     }
     c->map_num++;
@@ -322,94 +323,94 @@ static int SetUDFCache(dvd_reader_t *dev
 /* For direct data access, LSB first */
 #define GETN1(p) ((uint8_t)data[p])
 #define GETN2(p) ((uint16_t)data[p] | ((uint16_t)data[(p) + 1] << 8))
-#define GETN3(p) ((uint32_t)data[p] | ((uint32_t)data[(p) + 1] << 8) \
+#define GETN3(p) ((uint32_t)data[p] | ((uint32_t)data[(p) + 1] << 8)    \
                   | ((uint32_t)data[(p) + 2] << 16))
-#define GETN4(p) ((uint32_t)data[p] \
-                  | ((uint32_t)data[(p) + 1] << 8) \
-                  | ((uint32_t)data[(p) + 2] << 16) \
+#define GETN4(p) ((uint32_t)data[p]                     \
+                  | ((uint32_t)data[(p) + 1] << 8)      \
+                  | ((uint32_t)data[(p) + 2] << 16)     \
                   | ((uint32_t)data[(p) + 3] << 24))
 /* This is wrong with regard to endianess */
 #define GETN(p, n, target) memcpy(target, &data[p], n)
 
 static int Unicodedecode( uint8_t *data, int len, char *target )
 {
-    int p = 1, i = 0;
+  int p = 1, i = 0;
 
-    if( ( data[ 0 ] == 8 ) || ( data[ 0 ] == 16 ) ) do {
-        if( data[ 0 ] == 16 ) p++;  /* Ignore MSB of unicode16 */
-        if( p < len ) {
-            target[ i++ ] = data[ p++ ];
-        }
-    } while( p < len );
+  if( ( data[ 0 ] == 8 ) || ( data[ 0 ] == 16 ) ) do {
+    if( data[ 0 ] == 16 ) p++;  /* Ignore MSB of unicode16 */
+    if( p < len ) {
+      target[ i++ ] = data[ p++ ];
+    }
+  } while( p < len );
 
-    target[ i ] = '\0';
-    return 0;
+  target[ i ] = '\0';
+  return 0;
 }
 
 static int UDFDescriptor( uint8_t *data, uint16_t *TagID )
 {
-    *TagID = GETN2(0);
-    /* TODO: check CRC 'n stuff */
-    return 0;
+  *TagID = GETN2(0);
+  /* TODO: check CRC 'n stuff */
+  return 0;
 }
 
 static int UDFExtentAD( uint8_t *data, uint32_t *Length, uint32_t *Location )
 {
-    *Length   = GETN4(0);
-    *Location = GETN4(4);
-    return 0;
+  *Length   = GETN4(0);
+  *Location = GETN4(4);
+  return 0;
 }
 
 static int UDFShortAD( uint8_t *data, struct AD *ad,
                        struct Partition *partition )
 {
-    ad->Length = GETN4(0);
-    ad->Flags = ad->Length >> 30;
-    ad->Length &= 0x3FFFFFFF;
-    ad->Location = GETN4(4);
-    ad->Partition = partition->Number; /* use number of current partition */
-    return 0;
+  ad->Length = GETN4(0);
+  ad->Flags = ad->Length >> 30;
+  ad->Length &= 0x3FFFFFFF;
+  ad->Location = GETN4(4);
+  ad->Partition = partition->Number; /* use number of current partition */
+  return 0;
 }
 
 static int UDFLongAD( uint8_t *data, struct AD *ad )
 {
-    ad->Length = GETN4(0);
-    ad->Flags = ad->Length >> 30;
-    ad->Length &= 0x3FFFFFFF;
-    ad->Location = GETN4(4);
-    ad->Partition = GETN2(8);
-    /* GETN(10, 6, Use); */
-    return 0;
+  ad->Length = GETN4(0);
+  ad->Flags = ad->Length >> 30;
+  ad->Length &= 0x3FFFFFFF;
+  ad->Location = GETN4(4);
+  ad->Partition = GETN2(8);
+  /* GETN(10, 6, Use); */
+  return 0;
 }
 
 static int UDFExtAD( uint8_t *data, struct AD *ad )
 {
-    ad->Length = GETN4(0);
-    ad->Flags = ad->Length >> 30;
-    ad->Length &= 0x3FFFFFFF;
-    ad->Location = GETN4(12);
-    ad->Partition = GETN2(16);
-    /* GETN(10, 6, Use); */
-    return 0;
+  ad->Length = GETN4(0);
+  ad->Flags = ad->Length >> 30;
+  ad->Length &= 0x3FFFFFFF;
+  ad->Location = GETN4(12);
+  ad->Partition = GETN2(16);
+  /* GETN(10, 6, Use); */
+  return 0;
 }
 
 static int UDFICB( uint8_t *data, uint8_t *FileType, uint16_t *Flags )
 {
-    *FileType = GETN1(11);
-    *Flags = GETN2(18);
-    return 0;
+  *FileType = GETN1(11);
+  *Flags = GETN2(18);
+  return 0;
 }
 
 
 static int UDFPartition( uint8_t *data, uint16_t *Flags, uint16_t *Number,
                          char *Contents, uint32_t *Start, uint32_t *Length )
 {
-    *Flags = GETN2(20);
-    *Number = GETN2(22);
-    GETN(24, 32, Contents);
-    *Start = GETN4(188);
-    *Length = GETN4(192);
-    return 0;
+  *Flags = GETN2(20);
+  *Number = GETN2(22);
+  GETN(24, 32, Contents);
+  *Start = GETN4(188);
+  *Length = GETN4(192);
+  return 0;
 }
 
 /**
@@ -418,66 +419,66 @@ static int UDFPartition( uint8_t *data, 
  */
 static int UDFLogVolume( uint8_t *data, char *VolumeDescriptor )
 {
-    uint32_t lbsize, MT_L, N_PM;
-    Unicodedecode(&data[84], 128, VolumeDescriptor);
-    lbsize = GETN4(212);  /* should be 2048 */
-    MT_L = GETN4(264);    /* should be 6 */
-    N_PM = GETN4(268);    /* should be 1 */
-    if (lbsize != DVD_VIDEO_LB_LEN) return 1;
-    return 0;
+  uint32_t lbsize, MT_L, N_PM;
+  Unicodedecode(&data[84], 128, VolumeDescriptor);
+  lbsize = GETN4(212);  /* should be 2048 */
+  MT_L = GETN4(264);    /* should be 6 */
+  N_PM = GETN4(268);    /* should be 1 */
+  if (lbsize != DVD_VIDEO_LB_LEN) return 1;
+  return 0;
 }
 
 static int UDFFileEntry( uint8_t *data, uint8_t *FileType,
                          struct Partition *partition, struct AD *ad )
 {
-    uint16_t flags;
-    uint32_t L_EA, L_AD;
-    unsigned int p;
+  uint16_t flags;
+  uint32_t L_EA, L_AD;
+  unsigned int p;
 
-    UDFICB( &data[ 16 ], FileType, &flags );
+  UDFICB( &data[ 16 ], FileType, &flags );
 
-    /* Init ad for an empty file (i.e. there isn't a AD, L_AD == 0 ) */
-    ad->Length = GETN4( 60 ); /* Really 8 bytes a 56 */
-    ad->Flags = 0;
-    ad->Location = 0; /* what should we put here?  */
-    ad->Partition = partition->Number; /* use number of current partition */
+  /* Init ad for an empty file (i.e. there isn't a AD, L_AD == 0 ) */
+  ad->Length = GETN4( 60 ); /* Really 8 bytes a 56 */
+  ad->Flags = 0;
+  ad->Location = 0; /* what should we put here?  */
+  ad->Partition = partition->Number; /* use number of current partition */
 
-    L_EA = GETN4( 168 );
-    L_AD = GETN4( 172 );
-    p = 176 + L_EA;
-    while( p < 176 + L_EA + L_AD ) {
-        switch( flags & 0x0007 ) {
-            case 0: UDFShortAD( &data[ p ], ad, partition ); p += 8;  break;
-            case 1: UDFLongAD( &data[ p ], ad );  p += 16; break;
-            case 2: UDFExtAD( &data[ p ], ad );   p += 20; break;
-            case 3:
-                switch( L_AD ) {
-                    case 8:  UDFShortAD( &data[ p ], ad, partition ); break;
-                    case 16: UDFLongAD( &data[ p ], ad );  break;
-                    case 20: UDFExtAD( &data[ p ], ad );   break;
-                }
-                p += L_AD;
-                break;
-            default:
-                p += L_AD; break;
-        }
+  L_EA = GETN4( 168 );
+  L_AD = GETN4( 172 );
+  p = 176 + L_EA;
+  while( p < 176 + L_EA + L_AD ) {
+    switch( flags & 0x0007 ) {
+    case 0: UDFShortAD( &data[ p ], ad, partition ); p += 8;  break;
+    case 1: UDFLongAD( &data[ p ], ad );  p += 16; break;
+    case 2: UDFExtAD( &data[ p ], ad );   p += 20; break;
+    case 3:
+      switch( L_AD ) {
+      case 8:  UDFShortAD( &data[ p ], ad, partition ); break;
+      case 16: UDFLongAD( &data[ p ], ad );  break;
+      case 20: UDFExtAD( &data[ p ], ad );   break;
+      }
+      p += L_AD;
+      break;
+    default:
+      p += L_AD; break;
     }
-    return 0;
+  }
+  return 0;
 }
 
 static int UDFFileIdentifier( uint8_t *data, uint8_t *FileCharacteristics,
                               char *FileName, struct AD *FileICB )
 {
-    uint8_t L_FI;
-    uint16_t L_IU;
+  uint8_t L_FI;
+  uint16_t L_IU;
 
-    *FileCharacteristics = GETN1(18);
-    L_FI = GETN1(19);
-    UDFLongAD(&data[20], FileICB);
-    L_IU = GETN2(36);
-    if (L_FI) Unicodedecode(&data[38 + L_IU], L_FI, FileName);
-    else FileName[0] = '\0';
-    return 4 * ((38 + L_FI + L_IU + 3) / 4);
+  *FileCharacteristics = GETN1(18);
+  L_FI = GETN1(19);
+  UDFLongAD(&data[20], FileICB);
+  L_IU = GETN2(36);
+  if (L_FI) Unicodedecode(&data[38 + L_IU], L_FI, FileName);
+  else FileName[0] = '\0';
+  return 4 * ((38 + L_FI + L_IU + 3) / 4);
 }
 
 /**
@@ -490,37 +491,37 @@ static int UDFFileIdentifier( uint8_t *d
 static int UDFMapICB( dvd_reader_t *device, struct AD ICB, uint8_t *FileType,
                       struct Partition *partition, struct AD *File )
 {
-    uint8_t LogBlock_base[DVD_VIDEO_LB_LEN + 2048];
-    uint8_t *LogBlock = (uint8_t *)(((uintptr_t)LogBlock_base & ~((uintptr_t)2047)) + 2048);
-    uint32_t lbnum;
-    uint16_t TagID;
-    struct icbmap tmpmap;
+  uint8_t LogBlock_base[DVD_VIDEO_LB_LEN + 2048];
+  uint8_t *LogBlock = (uint8_t *)(((uintptr_t)LogBlock_base & ~((uintptr_t)2047)) + 2048);
+  uint32_t lbnum;
+  uint16_t TagID;
+  struct icbmap tmpmap;
 
-    lbnum = partition->Start + ICB.Location;
-    tmpmap.lbn = lbnum;
-    if(GetUDFCache(device, MapCache, lbnum, &tmpmap)) {
-      *FileType = tmpmap.filetype;
-      memcpy(File, &tmpmap.file, sizeof(tmpmap.file));
-      return 1;
-    }
+  lbnum = partition->Start + ICB.Location;
+  tmpmap.lbn = lbnum;
+  if(GetUDFCache(device, MapCache, lbnum, &tmpmap)) {
+    *FileType = tmpmap.filetype;
+    memcpy(File, &tmpmap.file, sizeof(tmpmap.file));
+    return 1;
+  }
 
-    do {
-        if( DVDReadLBUDF( device, lbnum++, 1, LogBlock, 0 ) <= 0 )
-            TagID = 0;
-        else
-            UDFDescriptor( LogBlock, &TagID );
+  do {
+    if( DVDReadLBUDF( device, lbnum++, 1, LogBlock, 0 ) <= 0 )
+      TagID = 0;
+    else
+      UDFDescriptor( LogBlock, &TagID );
 
-        if( TagID == 261 ) {
-            UDFFileEntry( LogBlock, FileType, partition, File );
-           memcpy(&tmpmap.file, File, sizeof(tmpmap.file));
-           tmpmap.filetype = *FileType;
-           SetUDFCache(device, MapCache, tmpmap.lbn, &tmpmap);
-            return 1;
-        };
-    } while( ( lbnum <= partition->Start + ICB.Location + ( ICB.Length - 1 )
+    if( TagID == 261 ) {
+      UDFFileEntry( LogBlock, FileType, partition, File );
+      memcpy(&tmpmap.file, File, sizeof(tmpmap.file));
+      tmpmap.filetype = *FileType;
+      SetUDFCache(device, MapCache, tmpmap.lbn, &tmpmap);
+      return 1;
+    };
+  } while( ( lbnum <= partition->Start + ICB.Location + ( ICB.Length - 1 )
              / DVD_VIDEO_LB_LEN ) && ( TagID != 261 ) );
 
-    return 0;
+  return 0;
 }
 
 /**
@@ -533,110 +534,110 @@ static int UDFScanDir( dvd_reader_t *dev
                        struct Partition *partition, struct AD *FileICB,
                        int cache_file_info)
 {
-    char filename[ MAX_UDF_FILE_NAME_LEN ];
-    uint8_t directory_base[ 2 * DVD_VIDEO_LB_LEN + 2048];
-    uint8_t *directory = (uint8_t *)(((uintptr_t)directory_base & ~((uintptr_t)2047)) + 2048);
-    uint32_t lbnum;
-    uint16_t TagID;
-    uint8_t filechar;
-    unsigned int p;
-    uint8_t *cached_dir_base = NULL, *cached_dir;
-    uint32_t dir_lba;
-    struct AD tmpICB;
-    int found = 0;
-    int in_cache = 0;
-
-    /* Scan dir for ICB of file */
-    lbnum = partition->Start + Dir.Location;
-
-    if(DVDUDFCacheLevel(device, -1) > 0) {
-      /* caching */
+  char filename[ MAX_UDF_FILE_NAME_LEN ];
+  uint8_t directory_base[ 2 * DVD_VIDEO_LB_LEN + 2048];
+  uint8_t *directory = (uint8_t *)(((uintptr_t)directory_base & ~((uintptr_t)2047)) + 2048);
+  uint32_t lbnum;
+  uint16_t TagID;
+  uint8_t filechar;
+  unsigned int p;
+  uint8_t *cached_dir_base = NULL, *cached_dir;
+  uint32_t dir_lba;
+  struct AD tmpICB;
+  int found = 0;
+  int in_cache = 0;
 
-      if(!GetUDFCache(device, LBUDFCache, lbnum, &cached_dir)) {
-          dir_lba = (Dir.Length + DVD_VIDEO_LB_LEN) / DVD_VIDEO_LB_LEN;
-          if((cached_dir_base = malloc(dir_lba * DVD_VIDEO_LB_LEN + 2048)) == NULL)
-            return 0;
+  /* Scan dir for ICB of file */
+  lbnum = partition->Start + Dir.Location;
 
-          cached_dir = (uint8_t *)(((uintptr_t)cached_dir_base & ~((uintptr_t)2047)) + 2048);
-          if( DVDReadLBUDF( device, lbnum, dir_lba, cached_dir, 0) <= 0 ) {
-            free(cached_dir_base);
-            cached_dir_base = NULL;
-            cached_dir = NULL;
-          }
-          /*
-          if(cached_dir) {
-            fprintf(stderr, "malloc dir: %d\n",  dir_lba * DVD_VIDEO_LB_LEN);
-          }
-          */
-          {
-            uint8_t *data[2];
-            data[0] = cached_dir_base;
-            data[1] = cached_dir;
-            SetUDFCache(device, LBUDFCache, lbnum, data);
-          }
-      } else
-        in_cache = 1;
+  if(DVDUDFCacheLevel(device, -1) > 0) {
+    /* caching */
 
-      if(cached_dir == NULL)
+    if(!GetUDFCache(device, LBUDFCache, lbnum, &cached_dir)) {
+      dir_lba = (Dir.Length + DVD_VIDEO_LB_LEN) / DVD_VIDEO_LB_LEN;
+      if((cached_dir_base = malloc(dir_lba * DVD_VIDEO_LB_LEN + 2048)) == NULL)
         return 0;
+      cached_dir = (uint8_t *)(((uintptr_t)cached_dir_base & ~((uintptr_t)2047)) + 2048);
+      if( DVDReadLBUDF( device, lbnum, dir_lba, cached_dir, 0) <= 0 ) {
+        free(cached_dir_base);
+        cached_dir_base = NULL;
+        cached_dir = NULL;
+      }
+      /*
+      if(cached_dir) {
+        fprintf(stderr, "malloc dir: %d\n",  dir_lba * DVD_VIDEO_LB_LEN);
+      }
+      */
+      {
+        uint8_t *data[2];
+        data[0] = cached_dir_base;
+        data[1] = cached_dir;
+        SetUDFCache(device, LBUDFCache, lbnum, data);
+      }
+    } else
+      in_cache = 1;
 
-      p = 0;
+    if(cached_dir == NULL)
+      return 0;
 
-      while( p < Dir.Length ) {
-        UDFDescriptor( &cached_dir[ p ], &TagID );
-        if( TagID == 257 ) {
-          p += UDFFileIdentifier( &cached_dir[ p ], &filechar, filename, &tmpICB );
-          if(cache_file_info && !in_cache) {
-            uint8_t tmpFiletype;
-            struct AD tmpFile;
+    p = 0;
 
-            if( !strcasecmp( FileName, filename ) ) {
-                memcpy(FileICB, &tmpICB, sizeof(tmpICB));
-                found = 1;
-            }
-            UDFMapICB(device, tmpICB, &tmpFiletype, partition, &tmpFile);
-          } else {
-            if( !strcasecmp( FileName, filename ) ) {
-                memcpy(FileICB, &tmpICB, sizeof(tmpICB));
-                return 1;
-            }
+    while( p < Dir.Length ) {
+      UDFDescriptor( &cached_dir[ p ], &TagID );
+      if( TagID == 257 ) {
+        p += UDFFileIdentifier( &cached_dir[ p ], &filechar,
+                                filename, &tmpICB );
+        if(cache_file_info && !in_cache) {
+          uint8_t tmpFiletype;
+          struct AD tmpFile;
+
+          if( !strcasecmp( FileName, filename ) ) {
+            memcpy(FileICB, &tmpICB, sizeof(tmpICB));
+            found = 1;
           }
+          UDFMapICB(device, tmpICB, &tmpFiletype, partition, &tmpFile);
         } else {
-          if(cache_file_info && (!in_cache) && found)
+          if( !strcasecmp( FileName, filename ) ) {
+            memcpy(FileICB, &tmpICB, sizeof(tmpICB));
             return 1;
-          return 0;
+          }
         }
+      } else {
+        if(cache_file_info && (!in_cache) && found)
+          return 1;
+        return 0;
       }
-      if(cache_file_info && (!in_cache) && found)
-        return 1;
-      return 0;
     }
+    if(cache_file_info && (!in_cache) && found)
+      return 1;
+    return 0;
+  }
 
-    if( DVDReadLBUDF( device, lbnum, 2, directory, 0 ) <= 0 )
-      return 0;
+  if( DVDReadLBUDF( device, lbnum, 2, directory, 0 ) <= 0 )
+    return 0;
 
-    p = 0;
-    while( p < Dir.Length ) {
-      if( p > DVD_VIDEO_LB_LEN ) {
-        ++lbnum;
-        p -= DVD_VIDEO_LB_LEN;
-        Dir.Length -= DVD_VIDEO_LB_LEN;
-        if( DVDReadLBUDF( device, lbnum, 2, directory, 0 ) <= 0 ) {
-            return 0;
-        }
+  p = 0;
+  while( p < Dir.Length ) {
+    if( p > DVD_VIDEO_LB_LEN ) {
+      ++lbnum;
+      p -= DVD_VIDEO_LB_LEN;
+      Dir.Length -= DVD_VIDEO_LB_LEN;
+      if( DVDReadLBUDF( device, lbnum, 2, directory, 0 ) <= 0 ) {
+        return 0;
       }
-      UDFDescriptor( &directory[ p ], &TagID );
-      if( TagID == 257 ) {
-        p += UDFFileIdentifier( &directory[ p ], &filechar,
-                                filename, FileICB );
-        if( !strcasecmp( FileName, filename ) ) {
-            return 1;
-        }
-      } else
-          return 0;
     }
+    UDFDescriptor( &directory[ p ], &TagID );
+    if( TagID == 257 ) {
+      p += UDFFileIdentifier( &directory[ p ], &filechar,
+                              filename, FileICB );
+      if( !strcasecmp( FileName, filename ) ) {
+        return 1;
+      }
+    } else
+      return 0;
+  }
 
-    return 0;
+  return 0;
 }
 
 
@@ -670,10 +671,9 @@ static int UDFGetAVDP( dvd_reader_t *dev
       if( terminate ) return 0; /* Final try failed */
 
       if( lastsector ) {
-        /*
-         * We already found the last sector.  Try #3, alternative
+        /* We already found the last sector.  Try #3, alternative
          * backup anchor.  If that fails, don't try again.
-        */
+         */
         lbnum = lastsector;
         terminate = 1;
       } else {
@@ -712,134 +712,139 @@ static int UDFGetAVDP( dvd_reader_t *dev
 static int UDFFindPartition( dvd_reader_t *device, int partnum,
                              struct Partition *part )
 {
-    uint8_t LogBlock_base[ DVD_VIDEO_LB_LEN + 2048 ];
-    uint8_t *LogBlock = (uint8_t *)(((uintptr_t)LogBlock_base & ~((uintptr_t)2047)) + 2048);
-    uint32_t lbnum, MVDS_location, MVDS_length;
-    uint16_t TagID;
-    int i, volvalid;
-    struct avdp_t avdp;
+  uint8_t LogBlock_base[ DVD_VIDEO_LB_LEN + 2048 ];
+  uint8_t *LogBlock = (uint8_t *)(((uintptr_t)LogBlock_base & ~((uintptr_t)2047)) + 2048);
+  uint32_t lbnum, MVDS_location, MVDS_length;
+  uint16_t TagID;
+  int i, volvalid;
+  struct avdp_t avdp;
 
-    if(!UDFGetAVDP(device, &avdp))
-      return 0;
+  if(!UDFGetAVDP(device, &avdp))
+    return 0;
 
-    /* Main volume descriptor */
-    MVDS_location = avdp.mvds.location;
-    MVDS_length = avdp.mvds.length;
+  /* Main volume descriptor */
+  MVDS_location = avdp.mvds.location;
+  MVDS_length = avdp.mvds.length;
 
-    part->valid = 0;
-    volvalid = 0;
-    part->VolumeDesc[ 0 ] = '\0';
-    i = 1;
+  part->valid = 0;
+  volvalid = 0;
+  part->VolumeDesc[ 0 ] = '\0';
+  i = 1;
+  do {
+    /* Find Volume Descriptor */
+    lbnum = MVDS_location;
     do {
-        /* Find Volume Descriptor */
-        lbnum = MVDS_location;
-        do {
 
-            if( DVDReadLBUDF( device, lbnum++, 1, LogBlock, 0 ) <= 0 )
-                TagID = 0;
-            else
-                UDFDescriptor( LogBlock, &TagID );
+      if( DVDReadLBUDF( device, lbnum++, 1, LogBlock, 0 ) <= 0 )
+        TagID = 0;
+      else
+        UDFDescriptor( LogBlock, &TagID );
 
-            if( ( TagID == 5 ) && ( !part->valid ) ) {
-                /* Partition Descriptor */
-                UDFPartition( LogBlock, &part->Flags, &part->Number,
-                              part->Contents, &part->Start, &part->Length );
-                part->valid = ( partnum == part->Number );
-            } else if( ( TagID == 6 ) && ( !volvalid ) ) {
-                /* Logical Volume Descriptor */
-                if( UDFLogVolume( LogBlock, part->VolumeDesc ) ) {
-                    /* TODO: sector size wrong! */
-                } else
-                    volvalid = 1;
-            }
+      if( ( TagID == 5 ) && ( !part->valid ) ) {
+        /* Partition Descriptor */
+        UDFPartition( LogBlock, &part->Flags, &part->Number,
+                      part->Contents, &part->Start, &part->Length );
+        part->valid = ( partnum == part->Number );
+      } else if( ( TagID == 6 ) && ( !volvalid ) ) {
+        /* Logical Volume Descriptor */
+        if( UDFLogVolume( LogBlock, part->VolumeDesc ) ) {
+          /* TODO: sector size wrong! */
+        } else
+          volvalid = 1;
+      }
 
-        } while( ( lbnum <= MVDS_location + ( MVDS_length - 1 )
-                 / DVD_VIDEO_LB_LEN ) && ( TagID != 8 )
-                 && ( ( !part->valid ) || ( !volvalid ) ) );
+    } while( ( lbnum <= MVDS_location + ( MVDS_length - 1 )
+               / DVD_VIDEO_LB_LEN ) && ( TagID != 8 )
+             && ( ( !part->valid ) || ( !volvalid ) ) );
 
-        if( ( !part->valid) || ( !volvalid ) ) {
-            /* Backup volume descriptor */
-            MVDS_location = avdp.mvds.location;
-            MVDS_length = avdp.mvds.length;
-        }
-    } while( i-- && ( ( !part->valid ) || ( !volvalid ) ) );
+    if( ( !part->valid) || ( !volvalid ) ) {
+      /* Backup volume descriptor */
+      MVDS_location = avdp.mvds.location;
+      MVDS_length = avdp.mvds.length;
+    }
+  } while( i-- && ( ( !part->valid ) || ( !volvalid ) ) );
 
-    /* We only care for the partition, not the volume */
-    return part->valid;
+  /* We only care for the partition, not the volume */
+  return part->valid;
 }
 
 uint32_t UDFFindFile( dvd_reader_t *device, char *filename,
                       uint32_t *filesize )
 {
-    uint8_t LogBlock_base[ DVD_VIDEO_LB_LEN + 2048 ];
-    uint8_t *LogBlock = (uint8_t *)(((uintptr_t)LogBlock_base & ~((uintptr_t)2047)) + 2048);
-    uint32_t lbnum;
-    uint16_t TagID;
-    struct Partition partition;
-    struct AD RootICB, File, ICB;
-    char tokenline[ MAX_UDF_FILE_NAME_LEN ];
-    char *token;
-    uint8_t filetype;
+  uint8_t LogBlock_base[ DVD_VIDEO_LB_LEN + 2048 ];
+  uint8_t *LogBlock = (uint8_t *)(((uintptr_t)LogBlock_base & ~((uintptr_t)2047)) + 2048);
+  uint32_t lbnum;
+  uint16_t TagID;
+  struct Partition partition;
+  struct AD RootICB, File, ICB;
+  char tokenline[ MAX_UDF_FILE_NAME_LEN ];
+  char *token;
+  uint8_t filetype;
 
-    *filesize = 0;
-    tokenline[0] = '\0';
-    strncat(tokenline, filename, MAX_UDF_FILE_NAME_LEN - 1);
-    memset(&ICB, 0, sizeof(ICB));
+  *filesize = 0;
+  tokenline[0] = '\0';
+  strncat(tokenline, filename, MAX_UDF_FILE_NAME_LEN - 1);
+  memset(&ICB, 0, sizeof(ICB));
 
-    if(!(GetUDFCache(device, PartitionCache, 0, &partition) &&
-        GetUDFCache(device, RootICBCache, 0, &RootICB))) {
-      /* Find partition, 0 is the standard location for DVD Video.*/
-      if( !UDFFindPartition( device, 0, &partition ) ) return 0;
-      SetUDFCache(device, PartitionCache, 0, &partition);
+  if(!(GetUDFCache(device, PartitionCache, 0, &partition) &&
+       GetUDFCache(device, RootICBCache, 0, &RootICB))) {
+    /* Find partition, 0 is the standard location for DVD Video.*/
+    if( !UDFFindPartition( device, 0, &partition ) ) return 0;
+    SetUDFCache(device, PartitionCache, 0, &partition);
 
-      /* Find root dir ICB */
-      lbnum = partition.Start;
-      do {
-        if( DVDReadLBUDF( device, lbnum++, 1, LogBlock, 0 ) <= 0 )
-            TagID = 0;
-        else
-            UDFDescriptor( LogBlock, &TagID );
+    /* Find root dir ICB */
+    lbnum = partition.Start;
+    do {
+      if( DVDReadLBUDF( device, lbnum++, 1, LogBlock, 0 ) <= 0 )
+        TagID = 0;
+      else
+        UDFDescriptor( LogBlock, &TagID );
 
-        /* File Set Descriptor */
-        if( TagID == 256 )  /* File Set Descriptor */
-            UDFLongAD( &LogBlock[ 400 ], &RootICB );
+      /* File Set Descriptor */
+      if( TagID == 256 )  /* File Set Descriptor */
+        UDFLongAD( &LogBlock[ 400 ], &RootICB );
     } while( ( lbnum < partition.Start + partition.Length )
              && ( TagID != 8 ) && ( TagID != 256 ) );
 
     /* Sanity checks. */
-    if( TagID != 256 ) return 0;
-    if( RootICB.Partition != 0 ) return 0;
+    if( TagID != 256 )
+      return 0;
+    if( RootICB.Partition != 0 )
+      return 0;
     SetUDFCache(device, RootICBCache, 0, &RootICB);
-    }
+  }
 
-    /* Find root dir */
-    if( !UDFMapICB( device, RootICB, &filetype, &partition, &File ) ) return 0;
-    if( filetype != 4 ) return 0;  /* Root dir should be dir */
+  /* Find root dir */
+  if( !UDFMapICB( device, RootICB, &filetype, &partition, &File ) )
+    return 0;
+  if( filetype != 4 )
+    return 0;  /* Root dir should be dir */
+  {
+    int cache_file_info = 0;
+    /* Tokenize filepath */
+    token = strtok(tokenline, "/");
 
-    {
-      int cache_file_info = 0;
-      /* Tokenize filepath */
-      token = strtok(tokenline, "/");
-      while( token != NULL ) {
-        if( !UDFScanDir( device, File, token, &partition, &ICB,
-                        cache_file_info))
-          return 0;
-        if( !UDFMapICB( device, ICB, &filetype, &partition, &File ) )
-          return 0;
-       if(!strcmp(token, "VIDEO_TS"))
-         cache_file_info = 1;
-         token = strtok( NULL, "/" );
-      }
+    while( token != NULL ) {
+      if( !UDFScanDir( device, File, token, &partition, &ICB,
+                       cache_file_info))
+        return 0;
+      if( !UDFMapICB( device, ICB, &filetype, &partition, &File ) )
+        return 0;
+      if(!strcmp(token, "VIDEO_TS"))
+        cache_file_info = 1;
+      token = strtok( NULL, "/" );
     }
+  }
 
-    /* Sanity check. */
-    if( File.Partition != 0 ) return 0;
-    *filesize = File.Length;
-    /* Hack to not return partition.Start for empty files. */
-    if( !File.Location )
-      return 0;
-    else
-      return partition.Start + File.Location;
+  /* Sanity check. */
+  if( File.Partition != 0 )
+    return 0;
+  *filesize = File.Length;
+  /* Hack to not return partition.Start for empty files. */
+  if( !File.Location )
+    return 0;
+  else
+    return partition.Start + File.Location;
 }
 
 
@@ -872,6 +877,7 @@ static int UDFGetDescriptor( dvd_reader_
   /* Main volume descriptor */
   MVDS_location = avdp.mvds.location;
   MVDS_length = avdp.mvds.length;
+
   i = 1;
   do {
     /* Find  Descriptor */
@@ -938,6 +944,7 @@ int UDFGetVolumeIdentifier(dvd_reader_t 
   if(volid_size > volid_len)
     volid_size = volid_len;
   Unicodedecode(pvd.VolumeIdentifier, volid_size, volid);
+
   return volid_len;
 }
 
@@ -964,5 +971,6 @@ int UDFGetVolumeSetIdentifier(dvd_reader
     volsetid_size = 128;
 
   memcpy(volsetid, pvd.VolumeSetIdentifier, volsetid_size);
+
   return 128;
 }

Modified: trunk/libdvdread/src/dvdread_internal.h
==============================================================================
--- trunk/libdvdread/src/dvdread_internal.h	(original)
+++ trunk/libdvdread/src/dvdread_internal.h	Thu Sep 25 11:17:42 2008
@@ -23,11 +23,11 @@
 #include <unistd.h>
 #endif /* _MSC_VER */
 
-#define CHECK_VALUE(arg) \
- if(!(arg)) { \
-   fprintf(stderr, "\n*** libdvdread: CHECK_VALUE failed in %s:%i ***" \
-                   "\n*** for %s ***\n\n", \
-                   __FILE__, __LINE__, # arg ); \
- }
+#define CHECK_VALUE(arg)                                                \
+  if(!(arg)) {                                                          \
+    fprintf(stderr, "\n*** libdvdread: CHECK_VALUE failed in %s:%i ***" \
+                    "\n*** for %s ***\n\n",                             \
+            __FILE__, __LINE__, # arg );                                \
+  }
 
 #endif /* LIBDVDREAD_DVDREAD_INTERNAL_H */

Modified: trunk/libdvdread/src/ifo_print.c
==============================================================================
--- trunk/libdvdread/src/ifo_print.c	(original)
+++ trunk/libdvdread/src/ifo_print.c	Thu Sep 25 11:17:42 2008
@@ -222,31 +222,31 @@ static void ifo_print_audio_attributes(i
   case 3:
     printf("mpeg2ext ");
     switch(attr->quantization) {
-      case 0:
-        printf("no drc ");
-        break;
-      case 1:
-        printf("drc ");
-        break;
-      default:
-        printf("(please send a bug report) mpeg reserved quant/drc  (%d)", attr->quantization);
+    case 0:
+      printf("no drc ");
+      break;
+    case 1:
+      printf("drc ");
+      break;
+    default:
+      printf("(please send a bug report) mpeg reserved quant/drc  (%d)", attr->quantization);
     }
     break;
   case 4:
     printf("lpcm ");
     switch(attr->quantization) {
-      case 0:
-        printf("16bit ");
-        break;
-      case 1:
-        printf("20bit ");
-        break;
-      case 2:
-        printf("24bit ");
-        break;
-      case 3:
-        printf("(please send a bug report) lpcm reserved quant/drc  (%d)", attr->quantization);
+    case 0:
+      printf("16bit ");
+      break;
+    case 1:
+      printf("20bit ");
+      break;
+    case 2:
+      printf("24bit ");
       break;
+    case 3:
+      printf("(please send a bug report) lpcm reserved quant/drc  (%d)", attr->quantization);
+    break;
     }
     break;
   case 5:
@@ -806,7 +806,7 @@ void ifo_print_TT_SRPT(tt_srpt_t *tt_srp
     printf("\tTitle playback type: (%02x)\n",
            *(uint8_t *)&(tt_srpt->title[i].pb_ty));
     printf("\t\t%s\n",
-       tt_srpt->title[i].pb_ty.multi_or_random_pgc_title ? "Random or Shuffle" : "Sequencial");
+           tt_srpt->title[i].pb_ty.multi_or_random_pgc_title ? "Random or Shuffle" : "Sequencial");
     if (tt_srpt->title[i].pb_ty.jlc_exists_in_cell_cmd) printf("\t\tJump/Link/Call exists in cell cmd\n");
     if (tt_srpt->title[i].pb_ty.jlc_exists_in_prepost_cmd) printf("\t\tJump/Link/Call exists in pre/post cmd\n");
     if (tt_srpt->title[i].pb_ty.jlc_exists_in_button_cmd) printf("\t\tJump/Link/Call exists in button cmd\n");
@@ -960,15 +960,15 @@ void ifo_print_PGCIT(pgcit_t *pgcit, int
     printf("\nProgram (PGC): %3i\n", i + 1);
     if (pgc_type) {
        printf("PGC Category: Entry PGC %d, Menu Type=0x%02x:%s (Entry id 0x%02x), ",
-            pgcit->pgci_srp[i].entry_id >> 7,
-            pgcit->pgci_srp[i].entry_id & 0xf,
-            ifo_print_menu_name(pgcit->pgci_srp[i].entry_id & 0xf),
-            pgcit->pgci_srp[i].entry_id);
+              pgcit->pgci_srp[i].entry_id >> 7,
+              pgcit->pgci_srp[i].entry_id & 0xf,
+              ifo_print_menu_name(pgcit->pgci_srp[i].entry_id & 0xf),
+              pgcit->pgci_srp[i].entry_id);
     } else {
        printf("PGC Category: %s VTS_TTN:0x%02x (Entry id 0x%02x), ",
-            pgcit->pgci_srp[i].entry_id >> 7 ? "At Start of" : "During",
-            pgcit->pgci_srp[i].entry_id & 0xf,
-            pgcit->pgci_srp[i].entry_id);
+              pgcit->pgci_srp[i].entry_id >> 7 ? "At Start of" : "During",
+              pgcit->pgci_srp[i].entry_id & 0xf,
+              pgcit->pgci_srp[i].entry_id);
     }
     printf("Parental ID mask 0x%04x\n", pgcit->pgci_srp[i].ptl_id_mask);
     ifo_print_PGC(pgcit->pgci_srp[i].pgc);

Modified: trunk/libdvdread/src/ifo_read.c
==============================================================================
--- trunk/libdvdread/src/ifo_read.c	(original)
+++ trunk/libdvdread/src/ifo_read.c	Thu Sep 25 11:17:42 2008
@@ -39,19 +39,19 @@
 #endif
 
 #ifndef NDEBUG
-#define CHECK_ZERO0(arg) \
-  if(arg != 0) { \
+#define CHECK_ZERO0(arg)                                                \
+  if(arg != 0) {                                                        \
     fprintf(stderr, "*** Zero check failed in %s:%i\n    for %s = 0x%x\n", \
-            __FILE__, __LINE__, # arg, arg); \
+            __FILE__, __LINE__, # arg, arg);                            \
   }
-#define CHECK_ZERO(arg) \
-  if(memcmp(my_friendly_zeros, &arg, sizeof(arg))) { \
-    unsigned int i_CZ; \
-    fprintf(stderr, "*** Zero check failed in %s:%i\n    for %s = 0x", \
-            __FILE__, __LINE__, # arg ); \
-    for(i_CZ = 0; i_CZ < sizeof(arg); i_CZ++) \
-      fprintf(stderr, "%02x", *((uint8_t *)&arg + i_CZ)); \
-    fprintf(stderr, "\n"); \
+#define CHECK_ZERO(arg)                                                 \
+  if(memcmp(my_friendly_zeros, &arg, sizeof(arg))) {                    \
+    unsigned int i_CZ;                                                  \
+    fprintf(stderr, "*** Zero check failed in %s:%i\n    for %s = 0x",  \
+            __FILE__, __LINE__, # arg );                                \
+    for(i_CZ = 0; i_CZ < sizeof(arg); i_CZ++)                           \
+      fprintf(stderr, "%02x", *((uint8_t *)&arg + i_CZ));               \
+    fprintf(stderr, "\n");                                              \
   }
 static const uint8_t my_friendly_zeros[2048];
 #else
@@ -345,7 +345,6 @@ ifo_handle_t *ifoOpen(dvd_reader_t *dvd,
       return NULL;
     }
 
-
     ifoRead_PGCI_UT(ifofile);
     ifoRead_VTS_TMAPT(ifofile);
     ifoRead_C_ADT(ifofile);
@@ -535,12 +534,12 @@ static int ifoRead_VMG(ifo_handle_t *ifo
   CHECK_VALUE(vmgi_mat->vmg_nr_of_title_sets != 0);
   CHECK_VALUE(vmgi_mat->vmgi_last_byte >= 341);
   CHECK_VALUE(vmgi_mat->vmgi_last_byte / DVD_BLOCK_LEN <=
-         vmgi_mat->vmgi_last_sector);
+              vmgi_mat->vmgi_last_sector);
   /* It seems that first_play_pgc is optional. */
   CHECK_VALUE(vmgi_mat->first_play_pgc < vmgi_mat->vmgi_last_byte);
   CHECK_VALUE(vmgi_mat->vmgm_vobs == 0 ||
-        (vmgi_mat->vmgm_vobs > vmgi_mat->vmgi_last_sector &&
-         vmgi_mat->vmgm_vobs < vmgi_mat->vmg_last_sector));
+              (vmgi_mat->vmgm_vobs > vmgi_mat->vmgi_last_sector &&
+               vmgi_mat->vmgm_vobs < vmgi_mat->vmg_last_sector));
   CHECK_VALUE(vmgi_mat->tt_srpt <= vmgi_mat->vmgi_last_sector);
   CHECK_VALUE(vmgi_mat->vmgm_pgci_ut <= vmgi_mat->vmgi_last_sector);
   CHECK_VALUE(vmgi_mat->ptl_mait <= vmgi_mat->vmgi_last_sector);
@@ -632,11 +631,11 @@ static int ifoRead_VTS(ifo_handle_t *ifo
   CHECK_VALUE(vtsi_mat->vtsi_last_sector*2 <= vtsi_mat->vts_last_sector);
   CHECK_VALUE(vtsi_mat->vtsi_last_byte/DVD_BLOCK_LEN <= vtsi_mat->vtsi_last_sector);
   CHECK_VALUE(vtsi_mat->vtsm_vobs == 0 ||
-       (vtsi_mat->vtsm_vobs > vtsi_mat->vtsi_last_sector &&
-         vtsi_mat->vtsm_vobs < vtsi_mat->vts_last_sector));
+              (vtsi_mat->vtsm_vobs > vtsi_mat->vtsi_last_sector &&
+               vtsi_mat->vtsm_vobs < vtsi_mat->vts_last_sector));
   CHECK_VALUE(vtsi_mat->vtstt_vobs == 0 ||
-        (vtsi_mat->vtstt_vobs > vtsi_mat->vtsi_last_sector &&
-         vtsi_mat->vtstt_vobs < vtsi_mat->vts_last_sector));
+              (vtsi_mat->vtstt_vobs > vtsi_mat->vtsi_last_sector &&
+               vtsi_mat->vtstt_vobs < vtsi_mat->vts_last_sector));
   CHECK_VALUE(vtsi_mat->vts_ptt_srpt <= vtsi_mat->vtsi_last_sector);
   CHECK_VALUE(vtsi_mat->vts_pgcit <= vtsi_mat->vtsi_last_sector);
   CHECK_VALUE(vtsi_mat->vtsm_pgci_ut <= vtsi_mat->vtsi_last_sector);
@@ -786,9 +785,9 @@ static int ifoRead_CELL_PLAYBACK_TBL(ifo
     read_cell_playback(&cell_playback[i]);
     /* Changed < to <= because this was false in the movie 'Pi'. */
     CHECK_VALUE(cell_playback[i].last_vobu_start_sector <=
-           cell_playback[i].last_sector);
+                cell_playback[i].last_sector);
     CHECK_VALUE(cell_playback[i].first_sector <=
-           cell_playback[i].last_vobu_start_sector);
+                cell_playback[i].last_vobu_start_sector);
   }
 
   return 1;
@@ -1314,13 +1313,13 @@ int ifoRead_PTL_MAIT(ifo_handle_t *ifofi
       return 0;
     }
     if(!(DVDReadBytes(ifofile->file, pf_temp, info_length))) {
-       fprintf(stderr, "libdvdread: Unable to read PTL_MAIT table.\n");
-       free(pf_temp);
-       free_ptl_mait(ptl_mait, i);
-       return 0;
+      fprintf(stderr, "libdvdread: Unable to read PTL_MAIT table.\n");
+      free(pf_temp);
+      free_ptl_mait(ptl_mait, i);
+      return 0;
     }
     for (j = 0; j < ((ptl_mait->nr_of_vtss + 1) * 8); j++) {
-        B2N_16(pf_temp[j]);
+      B2N_16(pf_temp[j]);
     }
     ptl_mait->countries[i].pf_ptl_mai = (pf_level_t *)malloc(info_length);
     if(!ptl_mait->countries[i].pf_ptl_mai) {
@@ -1350,7 +1349,7 @@ void ifoFree_PTL_MAIT(ifo_handle_t *ifof
 
   if(ifofile->ptl_mait) {
     for(i = 0; i < ifofile->ptl_mait->nr_of_countries; i++) {
-       free(ifofile->ptl_mait->countries[i].pf_ptl_mai);
+      free(ifofile->ptl_mait->countries[i].pf_ptl_mai);
     }
     free(ifofile->ptl_mait->countries);
     free(ifofile->ptl_mait);
@@ -1420,7 +1419,7 @@ int ifoRead_VTS_TMAPT(ifo_handle_t *ifof
   }
 
   for (i = 0; i < vts_tmapt->nr_of_tmaps; i++) {
-     B2N_32(vts_tmap_srp[i]);
+    B2N_32(vts_tmap_srp[i]);
   }
 
 
@@ -1600,7 +1599,7 @@ static int ifoRead_C_ADT_internal(ifo_ha
     CHECK_VALUE(c_adt->cell_adr_table[i].vob_id <= c_adt->nr_of_vobs);
     CHECK_VALUE(c_adt->cell_adr_table[i].cell_id > 0);
     CHECK_VALUE(c_adt->cell_adr_table[i].start_sector <
-           c_adt->cell_adr_table[i].last_sector);
+                c_adt->cell_adr_table[i].last_sector);
   }
 
   return 1;
@@ -1934,7 +1933,7 @@ int ifoRead_PGCI_UT(ifo_handle_t *ifofil
     free(data);
     free(pgci_ut);
     ifofile->pgci_ut = 0;
-   return 0;
+    return 0;
   }
   ptr = data;
   for(i = 0; i < pgci_ut->nr_of_lus; i++) {
@@ -1948,7 +1947,7 @@ int ifoRead_PGCI_UT(ifo_handle_t *ifofil
   for(i = 0; i < pgci_ut->nr_of_lus; i++) {
     /* Maybe this is only defined for v1.1 and later titles? */
     /* If the bits in 'lu[i].exists' are enumerated abcd efgh then:
-            VTS_x_yy.IFO        VIDEO_TS.IFO
+       VTS_x_yy.IFO        VIDEO_TS.IFO
        a == 0x83 "Root"         0x82 "Title"
        b == 0x84 "Subpicture"
        c == 0x85 "Audio"
@@ -1985,10 +1984,8 @@ int ifoRead_PGCI_UT(ifo_handle_t *ifofil
       ifofile->pgci_ut = 0;
       return 0;
     }
-    /*
-                 * FIXME: Iterate and verify that all menus that should exists accordingly
-                 * to pgci_ut->lu[i].exists really do?
-                 */
+    /* FIXME: Iterate and verify that all menus that should exists accordingly
+     * to pgci_ut->lu[i].exists really do? */
   }
 
   return 1;
@@ -2102,7 +2099,7 @@ int ifoRead_VTS_ATRT(ifo_handle_t *ifofi
   CHECK_VALUE(vts_atrt->nr_of_vtss != 0);
   CHECK_VALUE(vts_atrt->nr_of_vtss < 100); /* ?? */
   CHECK_VALUE((uint32_t)vts_atrt->nr_of_vtss * (4 + VTS_ATTRIBUTES_MIN_SIZE) +
-         VTS_ATRT_SIZE < vts_atrt->last_byte + 1);
+              VTS_ATRT_SIZE < vts_atrt->last_byte + 1);
 
   info_length = vts_atrt->nr_of_vtss * sizeof(uint32_t);
   data = (uint32_t *)malloc(info_length);
@@ -2209,4 +2206,3 @@ void ifoFree_TXTDT_MGI(ifo_handle_t *ifo
     ifofile->txtdt_mgi = 0;
   }
 }
-

Modified: trunk/libdvdread/src/ifo_types.h
==============================================================================
--- trunk/libdvdread/src/ifo_types.h	(original)
+++ trunk/libdvdread/src/ifo_types.h	Thu Sep 25 11:17:42 2008
@@ -211,6 +211,7 @@ typedef struct {
   unsigned int interleaved      : 1;
   unsigned int stc_discontinuity: 1;
   unsigned int seamless_angle   : 1;
+
   unsigned int playback_mode    : 1;  /**< When set, enter StillMode after each VOBU */
   unsigned int restricted       : 1;  /**< ?? drop out of fastforward? */
   unsigned int unknown2         : 6;

Modified: trunk/libdvdread/src/md5.c
==============================================================================
--- trunk/libdvdread/src/md5.c	(original)
+++ trunk/libdvdread/src/md5.c	Thu Sep 25 11:17:42 2008
@@ -41,7 +41,7 @@
 
 #ifdef WORDS_BIGENDIAN
 # define SWAP(n)                                                        \
-    (((n) << 24) | (((n) & 0xff00) << 8) | (((n) >> 8) & 0xff00) | ((n) >> 24))
+  (((n) << 24) | (((n) & 0xff00) << 8) | (((n) >> 8) & 0xff00) | ((n) >> 24))
 #else
 # define SWAP(n) (n)
 #endif
@@ -160,7 +160,7 @@ md5_stream (stream, resblock)
         break;
 
       /* Process buffer with BLOCKSIZE bytes.  Note that
-                        BLOCKSIZE % 64 == 0
+         BLOCKSIZE % 64 == 0
        */
       md5_process_block (buffer, BLOCKSIZE, &ctx);
     }
@@ -294,14 +294,14 @@ md5_process_block (buffer, len, ctx)
          before the computation.  To reduce the work for the next steps
          we store the swapped words in the array CORRECT_WORDS.  */
 
-#define OP(a, b, c, d, s, T)                                            \
-      do                                                                \
-        {                                                               \
-          a += FF (b, c, d) + (*cwp++ = SWAP (*words)) + T;             \
-          ++words;                                                      \
-          a = rol (a, s);                                               \
-          a += b;                                                       \
-        }                                                               \
+#define OP(a, b, c, d, s, T)                                    \
+      do                                                        \
+        {                                                       \
+          a += FF (b, c, d) + (*cwp++ = SWAP (*words)) + T;     \
+          ++words;                                              \
+          a = rol (a, s);                                       \
+          a += b;                                               \
+        }                                                       \
       while (0)
 
       /* Before we start, one word to the strange constants.
@@ -333,13 +333,13 @@ md5_process_block (buffer, len, ctx)
          in CORRECT_WORDS.  Redefine the macro to take an additional first
          argument specifying the function to use.  */
 #undef OP
-#define OP(f, a, b, c, d, k, s, T)                                      \
-      do                                                                \
-        {                                                               \
-          a += f (b, c, d) + correct_words[k] + T;                      \
-          a = rol (a, s);                                               \
-          a += b;                                                       \
-        }                                                               \
+#define OP(f, a, b, c, d, k, s, T)                      \
+      do                                                \
+        {                                               \
+          a += f (b, c, d) + correct_words[k] + T;      \
+          a = rol (a, s);                               \
+          a += b;                                       \
+        }                                               \
       while (0)
 
       /* Round 2.  */

Modified: trunk/libdvdread/src/md5.h
==============================================================================
--- trunk/libdvdread/src/md5.h	(original)
+++ trunk/libdvdread/src/md5.h	Thu Sep 25 11:17:42 2008
@@ -54,17 +54,17 @@ typedef u_int32_t md5_uint32;
 # endif
 
 # if UINT_MAX == UINT_MAX_32_BITS
-   typedef unsigned int md5_uint32;
+typedef unsigned int md5_uint32;
 # else
 #  if USHRT_MAX == UINT_MAX_32_BITS
-    typedef unsigned short md5_uint32;
+typedef unsigned short md5_uint32;
 #  else
 #   if ULONG_MAX == UINT_MAX_32_BITS
-     typedef unsigned long md5_uint32;
+typedef unsigned long md5_uint32;
 #   else
-     /* The following line is intended to evoke an error.
-        Using #error is not portable enough.  */
-     "Cannot determine unsigned 32-bit data type."
+/* The following line is intended to evoke an error.
+   Using #error is not portable enough.  */
+"Cannot determine unsigned 32-bit data type."
 #   endif
 #  endif
 # endif

Modified: trunk/libdvdread/src/nav_print.c
==============================================================================
--- trunk/libdvdread/src/nav_print.c	(original)
+++ trunk/libdvdread/src/nav_print.c	Thu Sep 25 11:17:42 2008
@@ -248,5 +248,3 @@ void navPrint_DSI(dsi_t *dsi) {
   navPrint_VOBU_SRI(&dsi->vobu_sri);
   navPrint_SYNCI(&dsi->synci);
 }
-
-

Modified: trunk/libdvdread/src/nav_read.c
==============================================================================
--- trunk/libdvdread/src/nav_read.c	(original)
+++ trunk/libdvdread/src/nav_read.c	Thu Sep 25 11:17:42 2008
@@ -140,7 +140,6 @@ void navRead_PCI(pci_t *pci, unsigned ch
   }
 
 
-
 #ifndef NDEBUG
   /* Asserts */
 
@@ -160,7 +159,7 @@ void navRead_PCI(pci_t *pci, unsigned ch
     CHECK_VALUE(pci->hli.hl_gi.btngr_ns != 0);
   } else {
     CHECK_VALUE((pci->hli.hl_gi.btn_ns != 0 && pci->hli.hl_gi.btngr_ns != 0)
-           || (pci->hli.hl_gi.btn_ns == 0 && pci->hli.hl_gi.btngr_ns == 0));
+                || (pci->hli.hl_gi.btn_ns == 0 && pci->hli.hl_gi.btngr_ns == 0));
   }
 
   /* pci hli btnit */
@@ -264,4 +263,3 @@ void navRead_DSI(dsi_t *dsi, unsigned ch
   /* dsi dsi gi */
   CHECK_VALUE(dsi->dsi_gi.zero1 == 0);
 }
-

Modified: trunk/libdvdread/src/nav_types.h
==============================================================================
--- trunk/libdvdread/src/nav_types.h	(original)
+++ trunk/libdvdread/src/nav_types.h	Thu Sep 25 11:17:42 2008
@@ -195,8 +195,8 @@ typedef struct {
  * Seamless Angle Infromation for one angle
  */
 typedef struct {
-    uint32_t address; /**< offset to next ILVU, high bit is before/after */
-    uint16_t size;    /**< byte size of the ILVU pointed to by address */
+  uint32_t address; /**< offset to next ILVU, high bit is before/after */
+  uint16_t size;    /**< byte size of the ILVU pointed to by address */
 } ATTRIBUTE_PACKED sml_agl_data_t;
 
 /**


More information about the DVDnav-discuss mailing list