[MPlayer-cvslog] r24070 - in trunk/dvdread: bswap.h dvd_input.c dvd_input.h dvd_reader.c dvd_reader.h dvd_udf.c dvd_udf.h dvdread_internal.h ifo_print.c ifo_print.h ifo_read.c ifo_read.h ifo_types.h md5.c md5.h nav_print.c nav_print.h nav_read.c nav_read.h nav_types.h

diego subversion at mplayerhq.hu
Wed Aug 15 13:57:31 CEST 2007


Author: diego
Date: Wed Aug 15 13:57:30 2007
New Revision: 24070

Log:
Sync libdvdread with version 0.9.5 (cosmetic changes).


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

Modified: trunk/dvdread/bswap.h
==============================================================================
--- trunk/dvdread/bswap.h	(original)
+++ trunk/dvdread/bswap.h	Wed Aug 15 13:57:30 2007
@@ -1,3 +1,4 @@
+/* -*- c-basic-offset: 2; indent-tabs-mode: nil -*- */
 #ifndef BSWAP_H_INCLUDED
 #define BSWAP_H_INCLUDED
 
@@ -126,23 +127,23 @@ inline static unsigned long long int bsw
  */
 
 #elif defined(__FreeBSD__) || defined(__sun) || defined(__bsdi__) || defined(WIN32) || defined(__BEOS__) || defined(__INTERIX) || defined(__CYGWIN__)
-#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) | \
-      (((x) & 0x000000ff) << 24))
-#define B2N_64(x) \
- x = ((((x) & 0xff00000000000000) >> 56) | \
-      (((x) & 0x00ff000000000000) >> 40) | \
-      (((x) & 0x0000ff0000000000) >> 24) | \
-      (((x) & 0x000000ff00000000) >>  8) | \
-      (((x) & 0x00000000ff000000) <<  8) | \
-      (((x) & 0x0000000000ff0000) << 24) | \
-      (((x) & 0x000000000000ff00) << 40) | \
-      (((x) & 0x00000000000000ff) << 56))
+#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) |             \
+       (((x) & 0x000000ff) << 24))
+#define B2N_64(x)                               \
+  x = ((((x) & 0xff00000000000000) >> 56) |     \
+       (((x) & 0x00ff000000000000) >> 40) |     \
+       (((x) & 0x0000ff0000000000) >> 24) |     \
+       (((x) & 0x000000ff00000000) >>  8) |     \
+       (((x) & 0x00000000ff000000) <<  8) |     \
+       (((x) & 0x0000000000ff0000) << 24) |     \
+       (((x) & 0x000000000000ff00) << 40) |     \
+       (((x) & 0x00000000000000ff) << 56))
 
 #else
 

Modified: trunk/dvdread/dvd_input.c
==============================================================================
--- trunk/dvdread/dvd_input.c	(original)
+++ trunk/dvdread/dvd_input.c	Wed Aug 15 13:57:30 2007
@@ -1,3 +1,4 @@
+/* -*- c-basic-offset: 2; indent-tabs-mode: nil -*- */
 /*
  * Copyright (C) 2002 Samuel Hocevar <sam at zoy.org>,
  *                    Håkan Hjort <d95hjort at dtek.chalmers.se>
@@ -212,7 +213,7 @@ static int file_seek(dvd_input_t dev, in
 
   pos = lseek(dev->fd, pos, SEEK_SET);
   if(pos < 0) {
-      return pos;
+    return pos;
   }
   /* assert pos % DVD_VIDEO_LB_LEN == 0 */
   return (int) (pos / DVD_VIDEO_LB_LEN);
@@ -234,7 +235,7 @@ static int file_read(dvd_input_t dev, vo
   size_t len;
   ssize_t ret;
   unsigned char *buf = buffer;
-  
+
   len = (size_t)blocks * DVD_VIDEO_LB_LEN;
   
   while(len > 0) {
@@ -250,7 +251,7 @@ static int file_read(dvd_input_t dev, vo
     
     if(ret == 0) {
       /* Nothing more to read.  Return the whole blocks, if any, that we got.
-	 and adjust the file possition back to the previous block boundary. */
+         and adjust the file possition back to the previous block boundary. */
       size_t bytes = (size_t)blocks * DVD_VIDEO_LB_LEN - len;
       off_t over_read = -(bytes % DVD_VIDEO_LB_LEN);
       /*off_t pos =*/ lseek(dev->fd, over_read, SEEK_CUR);
@@ -326,7 +327,7 @@ int dvdinput_setup(void)
   }
 
   verbose = get_verbose();
-
+  
 #ifdef HAVE_DVDCSS_DVDCSS_H
   /* linking to libdvdcss */
   dvdcss_library = &dvdcss_library;  /* Give it some value != NULL */
@@ -336,7 +337,7 @@ int dvdinput_setup(void)
 #else
 
   dvdcss_library = dlopen("libdvdcss.so.2", RTLD_LAZY);
-  
+
   if(dvdcss_library != NULL) {
 #if defined(__OpenBSD__) && !defined(__ELF__)
 #define U_S "_"
@@ -360,37 +361,37 @@ int dvdinput_setup(void)
 
     if(dlsym(dvdcss_library, U_S "dvdcss_crack")) {
       if(verbose >= 0) {
-      fprintf(stderr, 
-	      "libdvdread: Old (pre-0.0.2) version of libdvdcss found.\n"
-	      "libdvdread: You should get the latest version from "
-	      "http://www.videolan.org/\n" );
+        fprintf(stderr, 
+                "libdvdread: Old (pre-0.0.2) version of libdvdcss found.\n"
+                "libdvdread: You should get the latest version from "
+                "http://www.videolan.org/\n" );
       }
       dlclose(dvdcss_library);
       dvdcss_library = NULL;
     } else if(!DVDcss_open  || !DVDcss_close || !DVDcss_title || !DVDcss_seek
-	      || !DVDcss_read || !DVDcss_error || !dvdcss_version) {
+              || !DVDcss_read || !DVDcss_error || !dvdcss_version) {
       if(verbose >= 0) {
-      fprintf(stderr,  "libdvdread: Missing symbols in libdvdcss.so.2, "
-	      "this shouldn't happen !\n");
+        fprintf(stderr,  "libdvdread: Missing symbols in libdvdcss.so.2, "
+                "this shouldn't happen !\n");
       }
       dlclose(dvdcss_library);
       dvdcss_library = NULL;
     }
   }
 #endif /* HAVE_DVDCSS_DVDCSS_H */
-  
+
   dvdcss_library_init = 1;
   
   if(dvdcss_library) {
     /*
-    char *psz_method = getenv( "DVDCSS_METHOD" );
-    char *psz_verbose = getenv( "DVDCSS_VERBOSE" );
-    fprintf(stderr, "DVDCSS_METHOD %s\n", psz_method);
-    fprintf(stderr, "DVDCSS_VERBOSE %s\n", psz_verbose);
+      char *psz_method = getenv( "DVDCSS_METHOD" );
+      char *psz_verbose = getenv( "DVDCSS_VERBOSE" );
+      fprintf(stderr, "DVDCSS_METHOD %s\n", psz_method);
+      fprintf(stderr, "DVDCSS_VERBOSE %s\n", psz_verbose);
     */
     if(verbose >= 1) {
-    fprintf(stderr, "libdvdread: Using libdvdcss version %s for DVD access\n",
-	    *dvdcss_version);
+      fprintf(stderr, "libdvdread: Using libdvdcss version %s for DVD access\n",
+              *dvdcss_version);
     }
     /* libdvdcss wrapper functions */
     dvdinput_open  = css_open;
@@ -403,7 +404,7 @@ int dvdinput_setup(void)
     
   } else {
     if(verbose >= 1) {
-    fprintf(stderr, "libdvdread: Encrypted DVD support unavailable.\n");
+      fprintf(stderr, "libdvdread: Encrypted DVD support unavailable.\n");
     }
     /* libdvdcss replacement functions */
     dvdinput_open  = file_open;

Modified: trunk/dvdread/dvd_input.h
==============================================================================
--- trunk/dvdread/dvd_input.h	(original)
+++ trunk/dvdread/dvd_input.h	Wed Aug 15 13:57:30 2007
@@ -1,3 +1,4 @@
+/* -*- c-basic-offset: 2; indent-tabs-mode: nil -*- */
 #ifndef DVD_INPUT_H_INCLUDED
 #define DVD_INPUT_H_INCLUDED
 

Modified: trunk/dvdread/dvd_reader.c
==============================================================================
--- trunk/dvdread/dvd_reader.c	(original)
+++ trunk/dvdread/dvd_reader.c	Wed Aug 15 13:57:30 2007
@@ -1,3 +1,4 @@
+/* -*- c-basic-offset: 2; indent-tabs-mode: nil -*- */
 /*
  * Copyright (C) 2001, 2002, 2003 Billy Biggs <vektor at dumbterm.net>,
  *                                Håkan Hjort <d95hjort at dtek.chalmers.se>,
@@ -36,7 +37,7 @@
 #include <limits.h>
 #include <dirent.h>
  
-#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__bsdi__)|| defined(__DARWIN__) || defined(__DragonFly__)
+#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__bsdi__) || defined(__DARWIN__) || defined(__DragonFly__)
 #define SYS_BSD 1
 #endif
 
@@ -70,23 +71,23 @@ static void gettimeofday(struct timeval*
 #define DEFAULT_UDF_CACHE_LEVEL 0
 
 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;
 
   /* block aligned malloc */
   void *align;
@@ -96,22 +97,22 @@ struct dvd_reader_s {
 };
 
 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[ 9 ];
-    dvd_input_t title_devs[ 9 ];
+  /* Information required for a directory path drive. */
+  size_t title_sizes[ 9 ];
+  dvd_input_t title_devs[ 9 ];
 
-    /* Calculated at open-time, size in blocks. */
-    ssize_t filesize;
+  /* Calculated at open-time, size in blocks. */
+  ssize_t filesize;
 };
 
 
@@ -214,84 +215,84 @@ static int gettimeofday( struct timeval 
 /* 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;
+        
+  char *nokeys_str = getenv("DVDREAD_NOKEYS");
+  if(nokeys_str != NULL)
+    return 0;
     
   if(dvd->verbose >= 1) {
     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" );
+             "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. */
+  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. */
       if(dvd->verbose >= 1) {
-	    fprintf( stderr, "libdvdread: Get key for %s at 0x%08x\n", 
-		     filename, start );
+        fprintf( stderr, "libdvdread: Get key for %s at 0x%08x\n", 
+                 filename, start );
       }
-	    if( dvdinput_title( dvd->dev, (int)start ) < 0 ) {
+      if( dvdinput_title( dvd->dev, (int)start ) < 0 ) {
         if(dvd->verbose >= 0) {
-		fprintf( stderr, "libdvdread: Error cracking CSS key for %s (0x%08x)\n", filename, start);
-	    }
+          fprintf( stderr, "libdvdread: Error cracking CSS key for %s (0x%08x)\n", filename, start);
+        }
       }
-	    gettimeofday( &t_e, NULL );
+      gettimeofday( &t_e, NULL );
       if(dvd->verbose >= 1) {
-	    fprintf( stderr, "libdvdread: Elapsed time %ld\n",  
-		     (long int) t_e.tv_sec - t_s.tv_sec );
-	}
+        fprintf( stderr, "libdvdread: Elapsed time %ld\n",  
+                 (long int) t_e.tv_sec - t_s.tv_sec );
+      }
     }
-	    
-	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;
-	    
-	/* Perform CSS key cracking for this title. */
+            
+    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;
+            
+    /* Perform CSS key cracking for this title. */
     if(dvd->verbose >= 1) {
-	fprintf( stderr, "libdvdread: Get key for %s at 0x%08x\n", 
-		 filename, start );
+      fprintf( stderr, "libdvdread: Get key for %s at 0x%08x\n", 
+               filename, start );
     }
-	if( dvdinput_title( dvd->dev, (int)start ) < 0 ) {
+    if( dvdinput_title( dvd->dev, (int)start ) < 0 ) {
       if(dvd->verbose >= 0) {
-	    fprintf( stderr, "libdvdread: Error cracking CSS key for %s (0x%08x)!!\n", filename, start);
-	}
+        fprintf( stderr, "libdvdread: Error cracking CSS key for %s (0x%08x)!!\n", filename, start);
+      }
     }
-	gettimeofday( &t_e, NULL );
+    gettimeofday( &t_e, NULL );
     if(dvd->verbose >= 1) {
-	fprintf( stderr, "libdvdread: Elapsed time %ld\n",  
-		 (long int) t_e.tv_sec - t_s.tv_sec );
+      fprintf( stderr, "libdvdread: Elapsed time %ld\n",  
+               (long int) t_e.tv_sec - t_s.tv_sec );
     }
   }
-    title--;
+  title--;
     
   if(dvd->verbose >= 1) {
     fprintf( stderr, "libdvdread: Found %d VTS's\n", title );
   }
-    gettimeofday(&all_e, NULL);
+  gettimeofday(&all_e, NULL);
   if(dvd->verbose >= 1) {
     fprintf( stderr, "libdvdread: Elapsed time %ld\n",  
-	     (long int) all_e.tv_sec - all_s.tv_sec );
+             (long int) all_e.tv_sec - all_s.tv_sec );
   }
-    return 0;
+  return 0;
 }
 
 
@@ -303,22 +304,22 @@ 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;
   int verbose;
 
   verbose = get_verbose();
-    
-    dev = dvdinput_open( location );
-    if( !dev ) {
+
+  dev = dvdinput_open( location );
+  if( !dev ) {
     if(verbose >= 1) {
       fprintf( stderr, "libdvdread: Can't open '%s' for reading: %s\n",
                location, strerror(errno));
     }
     return NULL;
-    }
+  }
 
-    dvd = (dvd_reader_t *) malloc( sizeof( dvd_reader_t ) );
+  dvd = (dvd_reader_t *) malloc( sizeof( dvd_reader_t ) );
   if( !dvd ) {
     int tmp_errno = errno;
     dvdinput_close(dev);
@@ -326,24 +327,24 @@ static dvd_reader_t *DVDOpenImageFile( c
     return NULL;
   }
   dvd->verbose = verbose;
-    dvd->isImageFile = 1;
-    dvd->dev = dev;
+  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;
 
   dvd->align = 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. */
-    
-      dvd->css_state = 1; /* Need key init. */
-    }
-    dvd->css_title = 0;
+  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;
+  
   /* sanity check, is it a valid UDF image, can we find the root dir */
   if(!UDFFindFile(dvd, "/", NULL)) {
     dvdinput_close(dvd->dev);
@@ -358,34 +359,34 @@ static dvd_reader_t *DVDOpenImageFile( c
     free(dvd);
     return NULL;
   }
-    return dvd;
+  return dvd;
 }
 
 static dvd_reader_t *DVDOpenPath( const char *path_root )
 {
-    dvd_reader_t *dvd;
+  dvd_reader_t *dvd;
 
-    dvd = (dvd_reader_t *) malloc( sizeof( dvd_reader_t ) );
+  dvd = (dvd_reader_t *) malloc( sizeof( dvd_reader_t ) );
   if( !dvd ) {
     return NULL;
   }
   dvd->verbose = get_verbose();
-    dvd->isImageFile = 0;
-    dvd->dev = 0;
-    dvd->path_root = strdup( path_root );
+  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->udfcache_level = DEFAULT_UDF_CACHE_LEVEL;
+  dvd->udfcache = NULL;
+
   dvd->align = 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)
@@ -394,19 +395,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
 
@@ -423,26 +424,27 @@ static char *bsd_block2char( const char 
 }
 #else
 {
-    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 /* __FreeBSD__ */
 #endif
 
+
 dvd_reader_t *DVDOpen( const char *path )
 {
-    struct stat fileinfo;
-    int ret, have_css;
+  struct stat fileinfo;
+  int ret, have_css;
   char *dev_name = NULL;
   int internal_errno = 0;
   int verbose;
@@ -455,65 +457,65 @@ dvd_reader_t *DVDOpen( const char *path 
   verbose = get_verbose();
 
 #ifdef WIN32
-    /* Stat doesn't work on devices under mingwin/cygwin. */
-    if( path[0] && path[1] == ':' && path[2] == '\0' )
+  /* Stat doesn't work on devices under mingwin/cygwin. */
+  if( path[0] && path[1] == ':' && path[2] == '\0' )
     {
-        /* Don't try to stat the file */
-        fileinfo.st_mode = S_IFBLK;
+      /* Don't try to stat the file */
+      fileinfo.st_mode = S_IFBLK;
     }
-    else
+  else
 #endif
     {
-    ret = stat( path, &fileinfo );
-    if( ret < 0 ) {
+      ret = stat( path, &fileinfo );
+      if( ret < 0 ) {
         int tmp_errno = errno;
-	/* If we can't stat the file, give up */
+        /* If we can't stat the file, give up */
         if(verbose >= 1) {
           fprintf( stderr, "libdvdread: Can't stat '%s': %s\n",
                    path, strerror(errno));
         }
         errno = tmp_errno;
         return NULL;
-    }
+      }
     }
 
-    /* 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();
 
-    /* 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 ) ) {
+  /* 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.
-	 */
+    /**
+     * Block devices and regular files are assumed to be DVD-Video images.
+     */
 #if defined(__sun)
-	return DVDOpenImageFile( sun_block2char( path ), have_css );
+    return DVDOpenImageFile( sun_block2char( path ), have_css );
 #elif defined(SYS_BSD)
-	return DVDOpenImageFile( bsd_block2char( path ), have_css );
+    return DVDOpenImageFile( bsd_block2char( path ), have_css );
 #else
-	return DVDOpenImageFile( path, have_css );
+    return DVDOpenImageFile( path, have_css );
 #endif
 
-    } 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__) || defined(__CYGWIN__)
-	FILE *mntfile;
+    FILE *mntfile;
 #endif
 
-	/* XXX: We should scream real loud here. */
-	if( !(path_copy = strdup( path ) ) ) return 0;
+    /* XXX: We should scream real loud here. */
+    if( !(path_copy = strdup( path ) ) ) return 0;
 
 #ifndef WIN32 /* don't have fchdir, and getcwd( NULL, ... ) is strange */
-	/* Resolve any symlinks and get the absolut dir name. */
-	{
-	    char *new_path;
+    /* Resolve any symlinks and get the absolut dir name. */
+    {
+      char *new_path;
       char *current_path;
-	    
+
       current_path = malloc(PATH_MAX);
       if(current_path) {
         if(!getcwd(current_path, PATH_MAX)) {
@@ -522,7 +524,7 @@ dvd_reader_t *DVDOpen( const char *path 
         }
       }
       if(current_path) {
-		chdir( path_copy );
+        chdir( path_copy );
         new_path = malloc(PATH_MAX);
         if(new_path) {
           if(!getcwd(new_path, PATH_MAX )) {
@@ -533,147 +535,147 @@ dvd_reader_t *DVDOpen( const char *path 
 
         chdir(current_path);
         free(current_path);
-		if( new_path ) {
-		    free( path_copy );
-		    path_copy = new_path;
-		}
-	    }
-	}
+        if( new_path ) {
+          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 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( strlen( path_copy ) > 1 ) {
       if( path_copy[ strlen( path_copy ) - 1 ] == '/' ) {
-		path_copy[ strlen( path_copy ) - 1 ] = '\0';
-	}
+        path_copy[ strlen( path_copy ) - 1 ] = '\0';
+      }
     }
 
     if( strlen( path_copy ) >= 9 ) {
-	    if( !strcasecmp( &(path_copy[ strlen( path_copy ) - 9 ]), 
-			     "/video_ts" ) ) {
-	      path_copy[ strlen( path_copy ) - 9 ] = '\0';
+      if( !strcasecmp( &(path_copy[ strlen( path_copy ) - 9 ]), 
+                       "/video_ts" ) ) {
+        path_copy[ strlen( path_copy ) - 9 ] = '\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 );
+    if( ( fe = getfsfile( path_copy ) ) ) {
+      dev_name = bsd_block2char( fe->fs_spec );
       if(verbose >= 1) {
-	    fprintf( stderr,
-		     "libdvdread: Attempting to use device %s"
+        fprintf( stderr,
+                 "libdvdread: Attempting to use device %s"
                  " mounted on %s%s\n",
-		     dev_name,
+                 dev_name,
                  fe->fs_file,
                  have_css ? " for CSS authentication" : "");
       }
-	    auth_drive = DVDOpenImageFile( dev_name, have_css );
+      auth_drive = DVDOpenImageFile( dev_name, have_css );
       if(!auth_drive) {
         internal_errno = errno;
       }
-	}
+    }
 #elif defined(__sun)
-	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 );
+    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 );
           if(verbose >= 1) {
-		    fprintf( stderr, 
-			     "libdvdread: Attempting to use device %s"
+            fprintf( stderr, 
+                     "libdvdread: Attempting to use device %s"
                      " mounted on %s%s\n",
-			     dev_name,
+                     dev_name,
                      mp.mnt_mountp,
                      have_css ? " for CSS authentication" : "");
           }
-		    auth_drive = DVDOpenImageFile( dev_name, have_css );
+          auth_drive = DVDOpenImageFile( dev_name, have_css );
           if(!auth_drive) {
             internal_errno = errno;
           }
-		    break;
-		}
-	    }
-	    fclose( mntfile );
-	}
+          break;
+        }
+      }
+      fclose( mntfile );
+    }
 #elif defined(__linux__) || defined(__CYGWIN__)
-        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 ) ) {
+      while( ( me = getmntent( mntfile ) ) ) {
+        if( !strcmp( me->mnt_dir, path_copy ) ) {
           if(verbose >= 1) {
-		    fprintf( stderr, 
-			     "libdvdread: Attempting to use device %s"
+            fprintf( stderr, 
+                     "libdvdread: Attempting to use device %s"
                      " mounted on %s%s\n",
-			     me->mnt_fsname,
+                     me->mnt_fsname,
                      me->mnt_dir,
                      have_css ? " for CSS authentication" : "");
           }
-                    auth_drive = DVDOpenImageFile( me->mnt_fsname, have_css );
+          auth_drive = DVDOpenImageFile( me->mnt_fsname, have_css );
           if(!auth_drive) {
             internal_errno = errno;
           }
-		    dev_name = strdup(me->mnt_fsname);
-                    break;
-                }
-            }
-            fclose( mntfile );
-	}
-#elif defined(__MINGW32__)	
-	dev_name = strdup(path);
-	auth_drive = DVDOpenImageFile( path, have_css );
+          dev_name = strdup(me->mnt_fsname);
+          break;
+        }
+      }
+      fclose( mntfile );
+    }
+#elif defined(__MINGW32__)
+    dev_name = strdup(path);
+    auth_drive = DVDOpenImageFile( path, have_css );
 #endif
-	if( !dev_name ) {
+    if( !dev_name ) {
       if(verbose >= 1) {
-	  fprintf( stderr, "libdvdread: Couldn't find device name.\n" );
+        fprintf( stderr, "libdvdread: Couldn't find device name.\n" );
       }
-	} else if( !auth_drive ) {
+    } else if( !auth_drive ) {
       if(verbose >= 1) {
         fprintf( stderr, "libdvdread: Device %s inaccessible%s: %s\n",
                  dev_name,
                  have_css ? ", CSS authentication not available" : "",
                  strerror(internal_errno));
       }
-	}
+    }
 
-	free( dev_name );
-	free( path_copy );
+    free( dev_name );
+    free( path_copy );
 
-        /**
-         * If we've opened a drive, just use that.
-         */
+    /**
+     * If we've opened a drive, just use that.
+     */
     if( auth_drive ) {
       return auth_drive;
     }
-        /**
-         * Otherwise, we now try to open the directory tree instead.
-         */
-        return DVDOpenPath( path );
-    }
+    /**
+     * Otherwise, we now try to open the directory tree instead.
+     */
+    return DVDOpenPath( path );
+  }
 
-    /* If it's none of the above, screw it. */
+  /* If it's none of the above, screw it. */
   if(verbose >= 1) {
     fprintf( stderr, "libdvdread: Could not open %s\n", path );
   }
-    return 0;
+  return 0;
 }
 
 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 ) {
+    if( dvd->dev ) dvdinput_close( dvd->dev );
+    if( dvd->path_root ) free( dvd->path_root );
     if( dvd->udfcache ) FreeUDFCache( dvd, dvd->udfcache );
     if(dvd->align) {
       if(dvd->verbose >= 0) {
@@ -681,8 +683,8 @@ void DVDClose( dvd_reader_t *dvd )
       }
     }
     dvdinput_free();
-        free( dvd );
-    }
+    free( dvd );
+  }
 }
 
 void DVDInit(void)
@@ -700,22 +702,22 @@ void DVDFinish(void)
  */
 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 ) return 0;
+  start = UDFFindFile( dvd, filename, &len );
+  if( !start ) return 0;
 
-    dvd_file = (dvd_file_t *) malloc( sizeof( dvd_file_t ) );
-    if( !dvd_file ) return 0;
-    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 ) return 0;
+  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;
 }
 
 /**
@@ -726,54 +728,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 );
+  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;
-        }
+      return 0;
     }
+  }
   closedir(dir);
-    return -1;
+  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;
 }
 
 /**
@@ -781,241 +783,241 @@ 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 ) ) return 0;
+  /* Get the full path of the file. */
+  if( !findDVDFile( dvd, filename, full_path ) ) return 0;
 
-    dev = dvdinput_open( full_path );
-    if( !dev ) return 0;
+  dev = dvdinput_open( full_path );
+  if( !dev ) return 0;
 
-    dvd_file = (dvd_file_t *) malloc( sizeof( dvd_file_t ) );
-    if( !dvd_file ) return 0;
-    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 ) return 0;
+  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 ) {
+  if( stat( full_path, &fileinfo ) < 0 ) {
     if(dvd->verbose >= 1) {
-        fprintf( stderr, "libdvdread: Can't stat() %s.\n", filename );
-    }
-        free( dvd_file );
-        return 0;
+      fprintf( stderr, "libdvdread: Can't stat() %s.\n", filename );
     }
-    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 ];
+    free( dvd_file );
+    return 0;
+  }
+  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 0;
+  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 0;
 
-    dvd_file = (dvd_file_t *) malloc( sizeof( dvd_file_t ) );
-    if( !dvd_file ) return 0;
-    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 0;
+  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 ) {
+  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 );
-    }
-    */
+        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 0;
-    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 0;
+  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 0;
-        }
+    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 0;
+    }
 
-        dev = dvdinput_open( full_path );
-        if( dev == NULL ) {
-            free( dvd_file );
-            return 0;
-        }
+    dev = dvdinput_open( full_path );
+    if( dev == NULL ) {
+      free( dvd_file );
+      return 0;
+    }
 
-        if( stat( full_path, &fileinfo ) < 0 ) {
+    if( stat( full_path, &fileinfo ) < 0 ) {
       if(dvd->verbose >= 1) {
-            fprintf( stderr, "libdvdread: Can't stat() %s.\n", filename );
+        fprintf( stderr, "libdvdread: Can't stat() %s.\n", filename );
       }
-            free( dvd_file );
-            return 0;
-        }
-        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 ];
+      free( dvd_file );
+      return 0;
+    }
+    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 < 9; ++i ) {
+  } else {
+    for( i = 0; i < 9; ++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 ) {
+      if( stat( full_path, &fileinfo ) < 0 ) {
         if(dvd->verbose >= 1) {
-                fprintf( stderr, "libdvdread: Can't stat() %s.\n", filename );
+          fprintf( stderr, "libdvdread: Can't stat() %s.\n", filename );
         }
-                break;
-            }
+        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 0;
-        }
+      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 0;
     }
+  }
 
-    return dvd_file;
+  return dvd_file;
 }
 
 dvd_file_t *DVDOpenFile( dvd_reader_t *dvd, int titlenum, 
-			 dvd_read_domain_t domain )
+                         dvd_read_domain_t domain )
 {
-    char filename[ MAX_UDF_FILE_NAME_LEN ];
+  char filename[ MAX_UDF_FILE_NAME_LEN ];
     
-    /* Check arguments. */
+  /* Check arguments. */
   if( dvd == NULL || titlenum < 0 ) {
     errno = EINVAL;
-      return NULL;
+    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:
-    if(dvd->verbose >= 1) {
-        fprintf( stderr, "libdvdread: Invalid domain for file open.\n" );
+  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 );
     }
-    errno = EINVAL;
-        return NULL;
+    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:
+    if(dvd->verbose >= 1) {
+      fprintf( stderr, "libdvdread: Invalid domain for file open.\n" );
     }
+    errno = EINVAL;
+    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 < 9; ++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 < 9; ++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;
+  }
 }
 
 /**
@@ -1033,30 +1035,30 @@ void DVDCloseFile( dvd_file_t *dvd_file 
  * @param return Returns number of blocks read on success, negative on error
  */
 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;
+  int ret;
 
-   if( !device->dev ) {
+  if( !device->dev ) {
     if(device->verbose >= 1) {
-     	fprintf( stderr, "libdvdread: Fatal error in block read.\n" );
+      fprintf( stderr, "libdvdread: Fatal error in block read.\n" );
     }
-	return 0;
-   }
+    return 0;
+  }
 
-   ret = dvdinput_seek( device->dev, (int) lb_number );
-   if( ret != (int) lb_number ) {
+  ret = dvdinput_seek( device->dev, (int) lb_number );
+  if( ret != (int) lb_number ) {
     if(device->verbose >= 1) {
       fprintf( stderr,
                "libdvdread: UDFReadBlocksRaw: Can't seek to block %u\n",
                lb_number );
     }
-	return 0;
-   }
+    return 0;
+  }
 
-   return dvdinput_read( device->dev, (char *) data, 
-			 (int) block_count, encrypted );
+  return dvdinput_read( device->dev, (char *) data, 
+                        (int) block_count, encrypted );
 }
 
 /**
@@ -1074,11 +1076,11 @@ int UDFReadBlocksRaw( dvd_reader_t *devi
  * @return Returns the number of blocks read on success or a negative error.
  */
 static int DVDReadBlocksUDF( dvd_file_t *dvd_file, uint32_t offset,
-			     size_t block_count, unsigned char *data,
-			     int encrypted )
+                             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 );
 }
 
 /**
@@ -1095,123 +1097,123 @@ static int DVDReadBlocksUDF( dvd_file_t 
  * @return Returns number of blocks read on success, negative on error.
  */
 static int DVDReadBlocksPath( dvd_file_t *dvd_file, unsigned int offset,
-			      size_t block_count, unsigned char *data,
-			      int encrypted )
+                              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 < 9; ++i ) {
-      if( !dvd_file->title_sizes[ i ] ) return 0; /* Past end of file */
+  ret = 0;
+  ret2 = 0;
+  for( i = 0; i < 9; ++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 ) {
+    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 ) {
           if(dvd_file->dvd->verbose >= 1) {
             fprintf( stderr, "libdvdread: DVDReadBlocksPath1: Can't seek to block %d\n", 
-			     offset );
+                     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 ) {
+          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 ) {
           if(dvd_file->dvd->verbose >= 1) {
             fprintf( stderr, "libdvdread: DVDReadBlocksPath2: Can't seek to block %d\n", 
-			     offset );
+                     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( !dvd_file->title_devs[ i + 1 ] ) return ret;
+          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( !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 ) {
+        /* Read part 2 */
+        off = dvdinput_seek( dvd_file->title_devs[ i + 1 ], 0 );
+        if( off < 0 || off != 0 ) {
           if(dvd_file->dvd->verbose >= 1) {
             fprintf( stderr, "libdvdread: DVDReadBlocksPath3: 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 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 if ssize_t is 32-bit.
  */
 ssize_t DVDReadBlocks( dvd_file_t *dvd_file, int offset, 
-		       size_t block_count, unsigned char *data )
+                       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;
 }
 
 int DVDFileSeek( dvd_file_t *dvd_file, int 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;
 }
 
 #ifndef HAVE_UINTPTR_T
@@ -1226,122 +1228,122 @@ ssize_t DVDReadBytes( dvd_file_t *dvd_fi
 {
   unsigned char *secbuf_start;
   unsigned char *secbuf; //must be aligned to 2048-bytes for raw/O_DIRECT
-    unsigned int numsec, seek_sector, seek_byte;
-    int ret;
+  unsigned int numsec, seek_sector, seek_byte;
+  int ret;
     
-    /* Check arguments. */
+  /* Check arguments. */
   if( dvd_file == NULL || data == NULL ) {
     errno = EINVAL;
-      return -1;
+    return -1;
   }
-    seek_sector = dvd_file->seek_pos / DVD_VIDEO_LB_LEN;
-    seek_byte   = dvd_file->seek_pos % DVD_VIDEO_LB_LEN;
+  seek_sector = dvd_file->seek_pos / DVD_VIDEO_LB_LEN;
+  seek_byte   = dvd_file->seek_pos % DVD_VIDEO_LB_LEN;
+
+  numsec = ( ( seek_byte + byte_size ) / DVD_VIDEO_LB_LEN ) +
+    ( ( ( seek_byte + byte_size ) % DVD_VIDEO_LB_LEN ) ? 1 : 0 );
 
-    numsec = ( ( seek_byte + byte_size ) / DVD_VIDEO_LB_LEN ) +
-      ( ( ( seek_byte + byte_size ) % DVD_VIDEO_LB_LEN ) ? 1 : 0 );
-    
   /* must align to 2048 bytes if we are reading from raw/O_DIRECT */
   secbuf_start = (unsigned char *) malloc( (numsec+1) * DVD_VIDEO_LB_LEN );
   if( !secbuf_start ) {
     /* errno will be set to ENOMEM by malloc */
     return -1;
-    }
-    
+  }
+
   secbuf = DVD_ALIGN(secbuf_start);
 
-    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 );
-    }
+  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 );
+  }
 
-    if( ret != (int) numsec ) {
+  if( ret != (int) numsec ) {
     free( secbuf_start );
-        return ret < 0 ? ret : 0;
-    }
+    return ret < 0 ? ret : 0;
+  }
 
-    memcpy( data, &(secbuf[ seek_byte ]), byte_size );
+  memcpy( data, &(secbuf[ seek_byte ]), byte_size );
   free( secbuf_start );
 
-    dvd_file->seek_pos += byte_size;
-    return byte_size;
+  dvd_file->seek_pos += byte_size;
+  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;
+  struct md5_ctx ctx;
+  int title;
   int nr_of_files = 0;
   int tmp_errno;
   int nofiles_errno = ENOENT;
-    /* Check arguments. */
+  /* Check arguments. */
   if( dvd == NULL || discid == NULL ) {
     errno = EINVAL;
     return -1;
   }
-    /* 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 = malloc( file_size );
-	    
+  /* 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 = malloc( file_size );
+
       nr_of_files++;
 
-	    if( buffer == NULL ) {
+      if( buffer == NULL ) {
         /* errno will be set to ENOMEM by malloc */
-		return -1;
-	    }
+        return -1;
+      }
 
-	    bytes_read = DVDReadBytes( dvd_file, buffer, file_size );
-	    if( bytes_read != file_size ) {
+      bytes_read = DVDReadBytes( dvd_file, buffer, file_size );
+      if( bytes_read != file_size ) {
         tmp_errno = errno;
         if(dvd->verbose >= 1) {
-		fprintf( stderr, "libdvdread: DVDDiscId read returned %d bytes"
+          fprintf( stderr, "libdvdread: DVDDiscId read returned %d bytes"
                    ", wanted %d\n", (int)bytes_read, (int)file_size );
         }
         free(buffer);
-		DVDCloseFile( dvd_file );
+        DVDCloseFile( dvd_file );
         errno = tmp_errno;
-		return -1;
-	    }
-	    
-	    md5_process_bytes( buffer, file_size,  &ctx );
-	    
-	    DVDCloseFile( dvd_file );
-	    free( buffer );
+        return -1;
+      }
+            
+      md5_process_bytes( buffer, file_size,  &ctx );
+            
+      DVDCloseFile( dvd_file );
+      free( buffer );
     } else {
       if(errno != ENOENT) {
         nofiles_errno = errno;
       }
-	}
     }
-    md5_finish_ctx( &ctx, discid );
+  }
+  md5_finish_ctx( &ctx, discid );
   if(nr_of_files == 0) {
     errno = nofiles_errno;
     return -1;
   }
-    return 0;
+  return 0;
 }
 
 
 int DVDISOVolumeInfo( dvd_reader_t *dvd,
-		      char *volid, unsigned int volid_size,
-		      unsigned char *volsetid, unsigned int volsetid_size )
+                      char *volid, unsigned int volid_size,
+                      unsigned char *volsetid, unsigned int volsetid_size )
 {
   unsigned char *buffer; /* must be aligned to 2048 for raw/O_DIRECT */
   unsigned char *buffer_start; 
@@ -1369,8 +1371,8 @@ int DVDISOVolumeInfo( dvd_reader_t *dvd,
   ret = UDFReadBlocksRaw( dvd, 16, 1, buffer, 0 );
   if( ret != 1 ) {
     if(dvd->verbose >= 1) {
-    fprintf( stderr, "libdvdread: DVDISOVolumeInfo, failed to "
-	     "read ISO9660 Primary Volume Descriptor!\n" );
+      fprintf( stderr, "libdvdread: DVDISOVolumeInfo, failed to "
+               "read ISO9660 Primary Volume Descriptor!\n" );
     }
     free(buffer_start);
     return -1;
@@ -1380,7 +1382,7 @@ int DVDISOVolumeInfo( dvd_reader_t *dvd,
     unsigned int n;
     for(n = 0; n < 32; n++) {
       if(buffer[40+n] == 0x20) {
-	break;
+        break;
       }
     }
     
@@ -1405,8 +1407,8 @@ int DVDISOVolumeInfo( dvd_reader_t *dvd,
 
 
 int DVDUDFVolumeInfo( dvd_reader_t *dvd,
-		      char *volid, unsigned int volid_size,
-		      unsigned char *volsetid, unsigned int volsetid_size )
+                      char *volid, unsigned int volid_size,
+                      unsigned char *volsetid, unsigned int volsetid_size )
 {
   int ret;
   /* Check arguments. */

Modified: trunk/dvdread/dvd_reader.h
==============================================================================
--- trunk/dvdread/dvd_reader.h	(original)
+++ trunk/dvdread/dvd_reader.h	Wed Aug 15 13:57:30 2007
@@ -1,3 +1,4 @@
+/* -*- c-basic-offset: 2; indent-tabs-mode: nil -*- */
 #ifndef DVD_READER_H_INCLUDED
 #define DVD_READER_H_INCLUDED
 
@@ -140,8 +141,8 @@ typedef enum {
   DVD_READ_INFO_BACKUP_FILE, /**< VIDEO_TS.BUP  or VTS_XX_0.BUP (title) */
   DVD_READ_MENU_VOBS,        /**< VIDEO_TS.VOB  or VTS_XX_0.VOB (title) */
   DVD_READ_TITLE_VOBS        /**< VTS_XX_[1-9].VOB (title).  All files in 
-				  the title set are opened and read as a
-				  single file. */
+                                the title set are opened and read as a
+                                single file. */
 } dvd_read_domain_t;
 
 /**
@@ -214,7 +215,7 @@ int DVDFileSeek( dvd_file_t *, int );
  * bytes_read = DVDReadBytes(dvd_file, data, bytes);
  */
 ssize_t DVDReadBytes( dvd_file_t *, void *, size_t );
-
+  
 /**
  * Returns the file size in blocks.
  *
@@ -224,7 +225,7 @@ ssize_t DVDReadBytes( dvd_file_t *, void
  * blocks = DVDFileSize(dvd_file);
  */
 ssize_t DVDFileSize( dvd_file_t * );
-
+  
 /**
  * Get a unique 128 bit disc ID.
  * This is the MD5 sum of VIDEO_TS.IFO and the VTS_0?_0.IFO files
@@ -259,7 +260,7 @@ int DVDDiscID( dvd_reader_t *, unsigned 
  * @return 0 on success, -1 on error.
  */
 int DVDUDFVolumeInfo( dvd_reader_t *, char *, unsigned int,
-		      unsigned char *, unsigned int );
+                      unsigned char *, unsigned int );
 
 /**
  * Get the ISO9660 VolumeIdentifier and VolumeSetIdentifier
@@ -283,7 +284,7 @@ int DVDUDFVolumeInfo( dvd_reader_t *, ch
  * @return 0 on success, -1 on error.
  */
 int DVDISOVolumeInfo( dvd_reader_t *, char *, unsigned int,
-		      unsigned char *, unsigned int );
+                      unsigned char *, unsigned int );
 
 /**
  * Sets the level of caching that is done when reading from a device
@@ -298,7 +299,7 @@ int DVDISOVolumeInfo( dvd_reader_t *, ch
  * @return The level of caching.
  */
 int DVDUDFCacheLevel( dvd_reader_t *, int );
-
+  
 #ifdef __cplusplus
 };
 #endif

Modified: trunk/dvdread/dvd_udf.c
==============================================================================
--- trunk/dvdread/dvd_udf.c	(original)
+++ trunk/dvdread/dvd_udf.c	Wed Aug 15 13:57:30 2007
@@ -1,3 +1,4 @@
+/* -*- c-basic-offset: 2; indent-tabs-mode: nil -*- */
 /*
  * This code is based on dvdudf by:
  *   Christian Wolff <scarabaeus at convergence.de>.
@@ -6,15 +7,15 @@
  *   Billy Biggs <vektor at dumbterm.net>.
  *   Björn Englund <d4bjorn at dtek.chalmers.se>.
  *
- * Modified for use with MPlayer, changes contained in libdvdread_changes.diff.
- * detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
- * $Id$
- *
  * dvdudf: parse and read the UDF volume information of a DVD Video
  * Copyright (C) 1999 Christian Wolff for convergence integrated media
  * GmbH The author can be reached at scarabaeus at convergence.de, the
  * project's page is at http://linuxtv.org/dvd/
  * 
+ * Modified for use with MPlayer, changes contained in libdvdread_changes.diff.
+ * detailed changelog at http://svn.mplayerhq.hu/mplayer/trunk/
+ * $Id$
+ *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or (at
@@ -193,8 +194,8 @@ static void dvdalign_lbfree(dvd_reader_t
 
 /* 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 );
 
 /** @internal
  * Its required to either fail or deliver all the blocks asked for. 
@@ -205,8 +206,8 @@ extern int UDFReadBlocksRaw( dvd_reader_
  *   reading from raw/O_DIRECT device.
  */
 static int DVDReadLBUDF( 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;
   size_t count = block_count;
@@ -234,21 +235,21 @@ static int DVDReadLBUDF( dvd_reader_t *d
 #endif
 
 struct Partition {
-    int valid;
-    char VolumeDesc[128];
-    uint16_t Flags;
-    uint16_t Number;
-    char Contents[32];
-    uint32_t AccessType;
-    uint32_t Start;
-    uint32_t Length;
+  int valid;
+  char VolumeDesc[128];
+  uint16_t Flags;
+  uint16_t Number;
+  char Contents[32];
+  uint32_t AccessType;
+  uint32_t Start;
+  uint32_t Length;
 };
 
 struct AD {
-    uint32_t Location;
-    uint32_t Length;
-    uint8_t  Flags;
-    uint16_t Partition;
+  uint32_t Location;
+  uint32_t Length;
+  uint8_t  Flags;
+  uint16_t Partition;
 };
 
 struct extent_ad {
@@ -328,7 +329,7 @@ void FreeUDFCache(dvd_reader_t *device, 
 
 
 static int GetUDFCache(dvd_reader_t *device, UDFCacheType type,
-		       uint32_t nr, void *data)
+                       uint32_t nr, void *data)
 {
   int n;
   struct udf_cache *c;
@@ -371,16 +372,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;
@@ -392,7 +393,7 @@ static int GetUDFCache(dvd_reader_t *dev
 }
 
 static int SetUDFCache(dvd_reader_t *device, UDFCacheType type,
-		       uint32_t nr, void *data)
+                       uint32_t nr, void *data)
 {
   int n;
   struct udf_cache *c;
@@ -433,18 +434,18 @@ 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 = *(uint8_t **)data;
-       c->lbs[n].lb = nr;
-       return 1;
+        /* replace with new data */
+        c->lbs[n].data = *(uint8_t **)data;
+        c->lbs[n].lb = nr;
+        return 1;
       }
     }
     c->lb_num++;
     c->lbs = 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));
+      fprintf(stderr, "realloc lb: %d * %d = %d\n",
+      c->lb_num, sizeof(struct lbudf),
+      c->lb_num * sizeof(struct lbudf));
     */
     if(c->lbs == NULL) {
       c->lb_num = 0;
@@ -456,18 +457,18 @@ 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++;
     c->maps = realloc(c->maps, c->map_num * sizeof(struct icbmap));
     /*
-    fprintf(stderr, "realloc maps: %d * %d = %d\n",
-	    c->map_num, sizeof(struct icbmap),
-	    c->map_num * sizeof(struct icbmap));
+      fprintf(stderr, "realloc maps: %d * %d = %d\n",
+      c->map_num, sizeof(struct icbmap),
+      c->map_num * sizeof(struct icbmap));
     */
     if(c->maps == NULL) {
       c->map_num = 0;
@@ -487,94 +488,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) \
-		  | ((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))
+#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)     \
+                  | ((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 ) 
+                       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 )
+                         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;
 }
 
 /**
@@ -583,66 +584,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 )
+                         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 )
+                              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);
 }
 
 /**
@@ -653,46 +654,46 @@ static int UDFFileIdentifier( uint8_t *d
  * return 1 on success, 0 on error;
  */
 static int UDFMapICB( dvd_reader_t *device, struct AD ICB, uint8_t *FileType,
-		      struct Partition *partition, struct AD *File ) 
+                      struct Partition *partition, struct AD *File ) 
 {
   uint8_t *LogBlock;
-    uint32_t lbnum;
-    uint16_t TagID;
-    struct icbmap tmpmap;
+  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;
-      *File = tmpmap.file;
-      return 1;
-    }
+  lbnum = partition->Start + ICB.Location;
+  tmpmap.lbn = lbnum;
+  if(GetUDFCache(device, MapCache, lbnum, &tmpmap)) {
+    *FileType = tmpmap.filetype;
+    *File = tmpmap.file;
+    return 1;
+  }
 
   LogBlock = dvdalign_lbmalloc(device, 1);
   if(!LogBlock) {
     return 0;
   }
     
-    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 );
-           tmpmap.file = *File;
-           tmpmap.filetype = *FileType;
-           SetUDFCache(device, MapCache, tmpmap.lbn, &tmpmap);
+    if( TagID == 261 ) {
+      UDFFileEntry( LogBlock, FileType, partition, File );
+      tmpmap.file = *File;
+      tmpmap.filetype = *FileType;
+      SetUDFCache(device, MapCache, tmpmap.lbn, &tmpmap);
       dvdalign_lbfree(device, LogBlock);
-            return 1;
-        };
-    } while( ( lbnum <= partition->Start + ICB.Location + ( ICB.Length - 1 )
+      return 1;
+    };
+  } while( ( lbnum <= partition->Start + ICB.Location + ( ICB.Length - 1 )
              / DVD_VIDEO_LB_LEN ) && ( TagID != 261 ) );
 
   dvdalign_lbfree(device, LogBlock);
-    return 0;
+  return 0;
 }
 
 /**
@@ -703,122 +704,122 @@ static int UDFMapICB( dvd_reader_t *devi
  */
 static int UDFScanDir( dvd_reader_t *device, struct AD Dir, char *FileName,
                        struct Partition *partition, struct AD *FileICB,
-		       int cache_file_info) 
+                       int cache_file_info) 
 {
-    char filename[ MAX_UDF_FILE_NAME_LEN ];
+  char filename[ MAX_UDF_FILE_NAME_LEN ];
   uint8_t *directory;
-    uint32_t lbnum;
-    uint16_t TagID;
-    uint8_t filechar;
-    unsigned int p;
-    uint8_t *cached_dir = NULL;
-    uint32_t dir_lba;
-    struct AD tmpICB;
-    int found = 0;
-    int in_cache = 0;
+  uint32_t lbnum;
+  uint16_t TagID;
+  uint8_t filechar;
+  unsigned int p;
+  uint8_t *cached_dir = NULL;
+  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;
+  /* Scan dir for ICB of file */
+  lbnum = partition->Start + Dir.Location;
     
-    if(DVDUDFCacheLevel(device, -1) > 0) {
-      /* caching */
+  if(DVDUDFCacheLevel(device, -1) > 0) {
+    /* caching */
       
-      if(!GetUDFCache(device, LBUDFCache, lbnum, &cached_dir)) {
-	dir_lba = (Dir.Length + DVD_VIDEO_LB_LEN) / DVD_VIDEO_LB_LEN;
+    if(!GetUDFCache(device, LBUDFCache, lbnum, &cached_dir)) {
+      dir_lba = (Dir.Length + DVD_VIDEO_LB_LEN) / DVD_VIDEO_LB_LEN;
       if((cached_dir = dvdalign_lbmalloc(device, dir_lba)) == NULL) {
-	  return 0;
-	}
-	if( DVDReadLBUDF( device, lbnum, dir_lba, cached_dir, 0) <= 0 ) {
+        return 0;
+      }
+      if( DVDReadLBUDF( device, lbnum, dir_lba, cached_dir, 0) <= 0 ) {
         dvdalign_lbfree(device, cached_dir);
-	  cached_dir = NULL;
-	}
-	SetUDFCache(device, LBUDFCache, lbnum, &cached_dir);
-      } else {
-	in_cache = 1;
+        cached_dir = NULL;
       }
+      SetUDFCache(device, LBUDFCache, lbnum, &cached_dir);
+    } else {
+      in_cache = 1;
+    }
       
-      if(cached_dir == NULL) {
-	return 0;
-      }
+    if(cached_dir == NULL) {
+      return 0;
+    }
       
-      p = 0;
+    p = 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;
-	    
-	    if( !strcasecmp( FileName, filename ) ) {
-	      *FileICB = tmpICB;
-	      found = 1;
-	      
-	    }
-	    UDFMapICB(device, tmpICB, &tmpFiletype,
-		      partition, &tmpFile);
-	  } else {
-	    if( !strcasecmp( FileName, filename ) ) {
-	      *FileICB = 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 ) ) {
+            *FileICB = tmpICB;
+            found = 1;
+              
+          }
+          UDFMapICB(device, tmpICB, &tmpFiletype,
+                    partition, &tmpFile);
         } else {
-	  if(cache_file_info && (!in_cache) && found) {
-	    return 1;
-	  }
-	  return 0;
+          if( !strcasecmp( FileName, filename ) ) {
+            *FileICB = tmpICB;
+            return 1;
+          }
         }
+      } 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;
+  }
 
   directory = dvdalign_lbmalloc(device, 2);
   if(!directory) {
     return 0;
   }
-    if( DVDReadLBUDF( device, lbnum, 2, directory, 0 ) <= 0 ) {
+  if( DVDReadLBUDF( device, lbnum, 2, directory, 0 ) <= 0 ) {
     dvdalign_lbfree(device, directory);
-        return 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 ) {
+  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 ) {
         dvdalign_lbfree(device, directory);
-                return 0;
-            }
-        }
-        UDFDescriptor( &directory[ p ], &TagID );
-        if( TagID == 257 ) {
-            p += UDFFileIdentifier( &directory[ p ], &filechar,
-                                    filename, FileICB );
-            if( !strcasecmp( FileName, filename ) ) {
+        return 0;
+      }
+    }
+    UDFDescriptor( &directory[ p ], &TagID );
+    if( TagID == 257 ) {
+      p += UDFFileIdentifier( &directory[ p ], &filechar,
+                              filename, FileICB );
+      if( !strcasecmp( FileName, filename ) ) {
         dvdalign_lbfree(device, directory);
-                return 1;
-            }
-        } else {
+        return 1;
+      }
+    } else {
       dvdalign_lbfree(device, directory);
-            return 0;
-        }
+      return 0;
     }
+  }
 
   dvdalign_lbfree(device, directory);
-    return 0;
+  return 0;
 }
 
 
 static int UDFGetAVDP( dvd_reader_t *device,
-		       struct avdp_t *avdp)
+                       struct avdp_t *avdp)
 {
   uint8_t *Anchor;
   uint32_t lbnum, MVDS_location, MVDS_length;
@@ -830,7 +831,7 @@ static int UDFGetAVDP( dvd_reader_t *dev
   if(GetUDFCache(device, AVDPCache, 0, avdp)) {
     return 1;
   }
-
+  
   /* Find Anchor */
   lastsector = 0;
   lbnum = 256;   /* Try #1, prime anchor */
@@ -855,22 +856,22 @@ static int UDFGetAVDP( dvd_reader_t *dev
       } 
       
       if( lastsector ) {
-	/* We already found the last sector.  Try #3, alternative
-	 * backup anchor.  If that fails, don't try again.
-	 */
-	lbnum = lastsector;
-	terminate = 1;
+        /* We already found the last sector.  Try #3, alternative
+         * backup anchor.  If that fails, don't try again.
+         */
+        lbnum = lastsector;
+        terminate = 1;
       } else {
-	/* TODO: Find last sector of the disc (this is optional). */
-	if( lastsector ) {
-	  /* Try #2, backup anchor */
-	  lbnum = lastsector - 256;
-	} else {
-	  /* Unable to find last sector */
+        /* TODO: Find last sector of the disc (this is optional). */
+        if( lastsector ) {
+          /* Try #2, backup anchor */
+          lbnum = lastsector - 256;
+        } else {
+          /* Unable to find last sector */
           dvdalign_lbfree(device, Anchor);
           errno = EMEDIUMTYPE;
-	  return 0;
-	}
+          return 0;
+        }
       }
     } else {
       /* It's an anchor! We can leave */
@@ -899,116 +900,116 @@ static int UDFGetAVDP( dvd_reader_t *dev
  *   part: structure to fill with the partition information
  */
 static int UDFFindPartition( dvd_reader_t *device, int partnum,
-			     struct Partition *part ) 
+                             struct Partition *part ) 
 {
   uint8_t *LogBlock;
-    uint32_t lbnum, MVDS_location, MVDS_length;
-    uint16_t TagID;
-    int i, volvalid;
-    struct avdp_t avdp;
+  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;
+  }
 
   LogBlock = dvdalign_lbmalloc(device, 1);
   if(!LogBlock) {
     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 ) ) );
 
   dvdalign_lbfree(device, LogBlock);
-    /* 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 )
+                      uint32_t *filesize )
 {
   uint8_t *LogBlock;
-    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;
-
+  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;
+  
   if(filesize) {
     *filesize = 0;
   }
-    tokenline[0] = '\0';
-    strcat( tokenline, filename );
+  tokenline[0] = '\0';
+  strcat( tokenline, filename );
 
     
-    if(!(GetUDFCache(device, PartitionCache, 0, &partition) &&
-        GetUDFCache(device, RootICBCache, 0, &RootICB))) {
-      /* Find partition, 0 is the standard location for DVD Video.*/
+  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);
-      
+    SetUDFCache(device, PartitionCache, 0, &partition);
+    
     LogBlock = dvdalign_lbmalloc(device, 1);
     if(!LogBlock) {
       return 0;
     }
-      /* 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 ) );
 
@@ -1022,50 +1023,50 @@ uint32_t UDFFindFile( dvd_reader_t *devi
       return 0;
     }
     SetUDFCache(device, RootICBCache, 0, &RootICB);
-    }
+  }
 
-    /* Find root 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 ) {
       
-      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, "/" );
+      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. */
+  /* Sanity check. */
   if( File.Partition != 0 ) {
     return 0;
   }
-   
+
   if(filesize) {
     *filesize = File.Length;
   }
-    /* Hack to not return partition.Start for empty files. */
+  /* Hack to not return partition.Start for empty files. */
   if( !File.Location ) {
-      return 0;
+    return 0;
   } else {
-      return partition.Start + File.Location;
-}
+    return partition.Start + File.Location;
+  }
 }
 
 
@@ -1078,7 +1079,7 @@ uint32_t UDFFindFile( dvd_reader_t *devi
  * and aligned for raw/O_DIRECT read.
  */
 static int UDFGetDescriptor( dvd_reader_t *device, int id,
-			     uint8_t *descriptor, int bufsize) 
+                             uint8_t *descriptor, int bufsize) 
 {
   uint32_t lbnum, MVDS_location, MVDS_length;
   struct avdp_t avdp;
@@ -1109,18 +1110,18 @@ static int UDFGetDescriptor( dvd_reader_
     do {
       
       if( DVDReadLBUDF( device, lbnum++, 1, descriptor, 0 ) <= 0 ) {
-	TagID = 0;
+        TagID = 0;
       } else {
-	UDFDescriptor( descriptor, &TagID );
+        UDFDescriptor( descriptor, &TagID );
       }
       
       if( (TagID == id) && ( !desc_found ) ) {
-	/* Descriptor */
-	desc_found = 1;
+        /* Descriptor */
+        desc_found = 1;
       }
     } while( ( lbnum <= MVDS_location + ( MVDS_length - 1 )
-	       / DVD_VIDEO_LB_LEN ) && ( TagID != 8 )
-	     && ( !desc_found) );
+               / DVD_VIDEO_LB_LEN ) && ( TagID != 8 )
+             && ( !desc_found) );
     
     if( !desc_found ) {
       /* Backup volume descriptor */
@@ -1128,7 +1129,7 @@ static int UDFGetDescriptor( dvd_reader_
       MVDS_length = avdp.rvds.length;
     }
   } while( i-- && ( !desc_found )  );
-  
+
   
   return desc_found;
 }
@@ -1141,7 +1142,7 @@ static int UDFGetPVD(dvd_reader_t *devic
   if(GetUDFCache(device, PVDCache, 0, pvd)) {
     return 1;
   }
-
+  
   pvd_buf = dvdalign_lbmalloc(device, 1);
   if(!pvd_buf) {
     return 0;
@@ -1167,7 +1168,7 @@ static int UDFGetPVD(dvd_reader_t *devic
  * returns the size of buffer needed for all data
  */
 int UDFGetVolumeIdentifier(dvd_reader_t *device, char *volid,
-			   unsigned int volid_size)
+                           unsigned int volid_size)
 {
   struct pvd_t pvd;
   unsigned int volid_len;
@@ -1200,7 +1201,7 @@ int UDFGetVolumeIdentifier(dvd_reader_t 
  * or 0 on error
  */
 int UDFGetVolumeSetIdentifier(dvd_reader_t *device, uint8_t *volsetid,
-			      unsigned int volsetid_size)
+                              unsigned int volsetid_size)
 {
   struct pvd_t pvd;
 

Modified: trunk/dvdread/dvd_udf.h
==============================================================================
--- trunk/dvdread/dvd_udf.h	(original)
+++ trunk/dvdread/dvd_udf.h	Wed Aug 15 13:57:30 2007
@@ -1,3 +1,4 @@
+/* -*- c-basic-offset: 2; indent-tabs-mode: nil -*- */
 #ifndef DVD_UDF_H_INCLUDED
 #define DVD_UDF_H_INCLUDED
 
@@ -51,12 +52,12 @@ extern "C" {
  * the file in bytes.
  */
 uint32_t UDFFindFile( dvd_reader_t *device, char *filename, uint32_t *size );
-
+  
 void FreeUDFCache(dvd_reader_t *device, void *cache);
 int UDFGetVolumeIdentifier(dvd_reader_t *device,
-			   char *volid, unsigned int volid_size);
+                           char *volid, unsigned int volid_size);
 int UDFGetVolumeSetIdentifier(dvd_reader_t *device,
-			      uint8_t *volsetid, unsigned int volsetid_size);
+                              uint8_t *volsetid, unsigned int volsetid_size);
 #ifdef __cplusplus
 };
 #endif

Modified: trunk/dvdread/dvdread_internal.h
==============================================================================
--- trunk/dvdread/dvdread_internal.h	(original)
+++ trunk/dvdread/dvdread_internal.h	Wed Aug 15 13:57:30 2007
@@ -1,3 +1,4 @@
+/* -*- c-basic-offset: 2; indent-tabs-mode: nil -*- */
 #ifndef DVDREAD_INTERNAL_H
 #define DVDREAD_INTERNAL_H
 

Modified: trunk/dvdread/ifo_print.c
==============================================================================
--- trunk/dvdread/ifo_print.c	(original)
+++ trunk/dvdread/ifo_print.c	Wed Aug 15 13:57:30 2007
@@ -1,3 +1,4 @@
+/* -*- c-basic-offset: 2; indent-tabs-mode: nil -*- */
 /* 
  * Copyright (C) 2000, 2001, 2002, 2003
  *               Björn Englund <d4bjorn at dtek.chalmers.se>, 
@@ -51,10 +52,10 @@ static void ifoPrint_time(dvd_time_t *dt
   CHECK_VALUE((dtime->frame_u&0xf) < 0xa);
   
   printf("%02x:%02x:%02x.%02x", 
-	 dtime->hour,
-	 dtime->minute,
-	 dtime->second,
-	 dtime->frame_u & 0x3f);
+         dtime->hour,
+         dtime->minute,
+         dtime->second,
+         dtime->frame_u & 0x3f);
   switch((dtime->frame_u & 0xc0) >> 6) {
   case 1:
     rate = "25.00";
@@ -155,14 +156,14 @@ static void ifoPrint_video_attributes(vi
   }
 
   switch(attr->bit_rate) {
-    case 0:
-      printf("Variable Bit Rate ");
-      break;
-    case 1:
-      printf("Constant Bit Rate ");
-      break;
-    default:
-      printf("(please send a bug report)");
+  case 0:
+    printf("Variable Bit Rate ");
+    break;
+  case 1:
+    printf("Constant Bit Rate ");
+    break;
+  default:
+    printf("(please send a bug report)");
   }
   
   {
@@ -298,17 +299,17 @@ static void ifoPrint_audio_attributes(au
     }
     break;
   case 4:
-  switch(attr->quantization) {
-  case 0:
-    printf("16bit ");
-    break;
-  case 1:
-    printf("20bit ");
-    break;
-  case 2:
-    printf("24bit ");
-    break;
-  case 3:
+    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);
       break;
@@ -323,7 +324,7 @@ static void ifoPrint_audio_attributes(au
   default:
     break;
   }
-  
+
   switch(attr->sample_frequency) {
   case 0:
     printf("48kHz ");
@@ -333,7 +334,7 @@ static void ifoPrint_audio_attributes(au
     break;
   default:
     printf("sample_frequency %i (please send a bug report) ", 
-	   attr->sample_frequency);
+           attr->sample_frequency);
   }
   
   printf("%dCh ", attr->channels + 1);
@@ -409,7 +410,7 @@ static void ifoPrint_subp_attributes(sub
       printf("%02x%02x ", attr->lang_code >> 8, attr->lang_code & 0xff);
     }
   } else {
-      printf("lang not specified ");
+    printf("lang not specified ");
   }
   
   printf("%d ", attr->zero1);
@@ -547,8 +548,8 @@ void ifoPrint_VMGI_MAT(vmgi_mat_t *vmgi_
   printf("Last Sector of VMG: %08x\n", vmgi_mat->vmg_last_sector);
   printf("Last Sector of VMGI: %08x\n", vmgi_mat->vmgi_last_sector);
   printf("Specification version number: %01x.%01x\n", 
-	 vmgi_mat->specification_version >> 4, 
-	 vmgi_mat->specification_version & 0xf);
+         vmgi_mat->specification_version >> 4, 
+         vmgi_mat->specification_version & 0xf);
   /* Byte 2 of 'VMG Category' (00xx0000) is the Region Code */
   printf("VMG Category: %08x\n", vmgi_mat->vmg_category);
   printf("VMG Number of Volumes: %i\n", vmgi_mat->vmg_nr_of_volumes);
@@ -560,7 +561,7 @@ void ifoPrint_VMGI_MAT(vmgi_mat_t *vmgi_
   printf("%08x\n", (uint32_t)vmgi_mat->vmg_pos_code);
   printf("End byte of VMGI_MAT: %08x\n", vmgi_mat->vmgi_last_byte);
   printf("Start byte of First Play PGC FP PGC: %08x\n", 
-	 vmgi_mat->first_play_pgc);
+         vmgi_mat->first_play_pgc);
   printf("Start sector of VMGM_VOBS: %08x\n", vmgi_mat->vmgm_vobs);
   printf("Start sector of TT_SRPT: %08x\n", vmgi_mat->tt_srpt);
   printf("Start sector of VMGM_PGCI_UT: %08x\n", vmgi_mat->vmgm_pgci_ut);
@@ -569,19 +570,19 @@ void ifoPrint_VMGI_MAT(vmgi_mat_t *vmgi_
   printf("Start sector of TXTDT_MG: %08x\n", vmgi_mat->txtdt_mgi);
   printf("Start sector of VMGM_C_ADT: %08x\n", vmgi_mat->vmgm_c_adt);
   printf("Start sector of VMGM_VOBU_ADMAP: %08x\n", 
-	 vmgi_mat->vmgm_vobu_admap);
+         vmgi_mat->vmgm_vobu_admap);
   printf("Video attributes of VMGM_VOBS: ");
   ifoPrint_video_attributes(&vmgi_mat->vmgm_video_attr);
   printf("\n");
   printf("VMGM Number of Audio attributes: %i\n", 
-	 vmgi_mat->nr_of_vmgm_audio_streams);
+         vmgi_mat->nr_of_vmgm_audio_streams);
   if(vmgi_mat->nr_of_vmgm_audio_streams > 0) {
     printf("\tstream %i status: ", 1);
     ifoPrint_audio_attributes(&vmgi_mat->vmgm_audio_attr);
     printf("\n");
   }
   printf("VMGM Number of Sub-picture attributes: %i\n", 
-	 vmgi_mat->nr_of_vmgm_subp_streams);
+         vmgi_mat->nr_of_vmgm_subp_streams);
   if(vmgi_mat->nr_of_vmgm_subp_streams > 0) {
     printf("\tstream %2i status: ", 1);
     ifoPrint_subp_attributes(&vmgi_mat->vmgm_subp_attr);
@@ -597,8 +598,8 @@ void ifoPrint_VTSI_MAT(vtsi_mat_t *vtsi_
   printf("Last Sector of VTS: %08x\n", vtsi_mat->vts_last_sector);
   printf("Last Sector of VTSI: %08x\n", vtsi_mat->vtsi_last_sector);
   printf("Specification version number: %01x.%01x\n", 
-	 vtsi_mat->specification_version>>4, 
-	 vtsi_mat->specification_version&0xf);
+         vtsi_mat->specification_version>>4, 
+         vtsi_mat->specification_version&0xf);
   printf("VTS Category: %08x\n", vtsi_mat->vts_category);
   printf("End byte of VTSI_MAT: %08x\n", vtsi_mat->vtsi_last_byte);
   printf("Start sector of VTSM_VOBS:  %08x\n", vtsi_mat->vtsm_vobs);
@@ -617,7 +618,7 @@ void ifoPrint_VTSI_MAT(vtsi_mat_t *vtsi_
   printf("\n");
   
   printf("VTSM Number of Audio attributes: %i\n", 
-	 vtsi_mat->nr_of_vtsm_audio_streams);
+         vtsi_mat->nr_of_vtsm_audio_streams);
   if(vtsi_mat->nr_of_vtsm_audio_streams > 0) {
     printf("\tstream %i status: ", 1);
     ifoPrint_audio_attributes(&vtsi_mat->vtsm_audio_attr);
@@ -625,7 +626,7 @@ void ifoPrint_VTSI_MAT(vtsi_mat_t *vtsi_
   }
   
   printf("VTSM Number of Sub-picture attributes: %i\n", 
-	 vtsi_mat->nr_of_vtsm_subp_streams);
+         vtsi_mat->nr_of_vtsm_subp_streams);
   if(vtsi_mat->nr_of_vtsm_subp_streams > 0) {
     printf("\tstream %2i status: ", 1);
     ifoPrint_subp_attributes(&vtsi_mat->vtsm_subp_attr);
@@ -637,7 +638,7 @@ void ifoPrint_VTSI_MAT(vtsi_mat_t *vtsi_
   printf("\n");
   
   printf("VTS Number of Audio attributes: %i\n", 
-	 vtsi_mat->nr_of_vts_audio_streams);
+         vtsi_mat->nr_of_vts_audio_streams);
   for(i = 0; i < vtsi_mat->nr_of_vts_audio_streams; i++) {
     printf("\tstream %i status: ", i);
     ifoPrint_audio_attributes(&vtsi_mat->vts_audio_attr[i]);
@@ -645,7 +646,7 @@ void ifoPrint_VTSI_MAT(vtsi_mat_t *vtsi_
   }
   
   printf("VTS Number of Subpicture attributes: %i\n", 
-	 vtsi_mat->nr_of_vts_subp_streams);
+         vtsi_mat->nr_of_vts_subp_streams);
   for(i = 0; i < vtsi_mat->nr_of_vts_subp_streams; i++) {
     printf("\tstream %2i status: ", i);
     ifoPrint_subp_attributes(&vtsi_mat->vts_subp_attr[i]);
@@ -713,28 +714,28 @@ static void ifoPrint_CELL_PLAYBACK(cell_
       const char *s;
       switch(cell_playback[i].block_mode) {
       case 0:
-	s = "not a"; break;
+        s = "not a"; break;
       case 1:
-	s = "the first"; break;
+        s = "the first"; break;
       case 2:
       default:
-	s = ""; break;
+        s = ""; break;
       case 3:
-	s = "last"; break;
+        s = "last"; break;
       }
       printf("%s cell in the block ", s);
       
       switch(cell_playback[i].block_type) {
       case 0:
-	printf("not part of the block ");
-	break;
+        printf("not part of the block ");
+        break;
       case 1:
-	printf("angle block ");
-	break;
+        printf("angle block ");
+        break;
       case 2:
       case 3:
-	printf("(send bug repport) ");
-	break;
+        printf("(send bug repport) ");
+        break;
       }
     }
     if(cell_playback[i].seamless_play)
@@ -754,11 +755,11 @@ static void ifoPrint_CELL_PLAYBACK(cell_
       printf("cell command %d", cell_playback[i].cell_cmd_nr);
     
     printf("\n\tStart sector: %08x\tFirst ILVU end  sector: %08x\n", 
-	   cell_playback[i].first_sector, 
-	   cell_playback[i].first_ilvu_end_sector);
+           cell_playback[i].first_sector, 
+           cell_playback[i].first_ilvu_end_sector);
     printf("\tEnd   sector: %08x\tLast VOBU start sector: %08x\n", 
-	   cell_playback[i].last_sector, 
-	   cell_playback[i].last_vobu_start_sector);
+           cell_playback[i].last_sector, 
+           cell_playback[i].last_vobu_start_sector);
   }
 }
 
@@ -772,7 +773,7 @@ static void ifoPrint_CELL_POSITION(cell_
   
   for(i=0;i<nr;i++) {
     printf("Cell: %3i has VOB ID: %3i, Cell ID: %3i\n", i + 1, 
-	   cell_position[i].vob_id_nr, cell_position[i].cell_nr);
+           cell_position[i].vob_id_nr, cell_position[i].cell_nr);
   }
 }
 
@@ -795,17 +796,17 @@ void ifoPrint_PGC(pgc_t *pgc) {
   printf("Prohibited user operations: ");
   ifoPrint_USER_OPS(&pgc->prohibited_ops);
   
-    for(i = 0; i < 8; i++) {
+  for(i = 0; i < 8; i++) {
     if(pgc->audio_control[i].present) { /* The 'is present' bit */
-	printf("Audio stream %i control: %04x\n", 
-	       i, pgc->audio_control[i]);
-      }
+      printf("Audio stream %i control: %04x\n", 
+             i, pgc->audio_control[i]);
     }
+  }
   
   for(i = 0; i < 32; i++) {
     if(pgc->subp_control[i].present) { /* The 'is present' bit */
       printf("Subpicture stream %2i control: %08x\n", 
-	     i, pgc->subp_control[i]);
+             i, pgc->subp_control[i]);
     }
   }
   
@@ -840,36 +841,36 @@ void ifoPrint_TT_SRPT(tt_srpt_t *tt_srpt
   int i;
   
   printf("Number of TitleTrack search pointers: %i\n",
-	 tt_srpt->nr_of_srpts);
+         tt_srpt->nr_of_srpts);
   for(i=0;i<tt_srpt->nr_of_srpts;i++) {
     printf("Title Track index %i\n", i + 1);
     printf("\tTitle set number (VTS): %i", 
-	   tt_srpt->title[i].title_set_nr);
+           tt_srpt->title[i].title_set_nr);
     printf("\tVTS_TTN: %i\n", tt_srpt->title[i].vts_ttn);
     printf("\tNumber of PTTs: %i\n", tt_srpt->title[i].nr_of_ptts);
     printf("\tNumber of angles: %i\n", 
-	   tt_srpt->title[i].nr_of_angles);
+           tt_srpt->title[i].nr_of_angles);
     printf("\tTitle playback type: %s%s%s%s%s%s%s\n",
-	   tt_srpt->title[i].pb_ty.multi_or_random_pgc_title ? 
-	   " One Random PGC Title or Multi PGC Title" : 
-	   " One Sequential PGC Title",
-	   tt_srpt->title[i].pb_ty.jlc_exists_in_cell_cmd ?
-	   "" : ", No Link/Jump/Call exists in Cell command",
-	   tt_srpt->title[i].pb_ty.jlc_exists_in_prepost_cmd ?
-	   "" : ", No Link/Jump/Call exists in Pre- and/or Post-command",
-	   tt_srpt->title[i].pb_ty.jlc_exists_in_button_cmd ?
-	   "" : ", No Link/Jump/Call exists in Button command",
-	   tt_srpt->title[i].pb_ty.jlc_exists_in_tt_dom ?
-	   "" : ", No Link/Jump/Call exists in TT_DOM",
-	   tt_srpt->title[i].pb_ty.chapter_search_or_play ?
-	   ", UOP1 (TT_Play and PTT_Search) prohibited" : "",
-	   tt_srpt->title[i].pb_ty.title_or_time_play ?
-	   ", UOP0 (Time_Play and Time_Search) prohibited" : ""
-	   );    
+           tt_srpt->title[i].pb_ty.multi_or_random_pgc_title ? 
+           " One Random PGC Title or Multi PGC Title" : 
+           " One Sequential PGC Title",
+           tt_srpt->title[i].pb_ty.jlc_exists_in_cell_cmd ?
+           "" : ", No Link/Jump/Call exists in Cell command",
+           tt_srpt->title[i].pb_ty.jlc_exists_in_prepost_cmd ?
+           "" : ", No Link/Jump/Call exists in Pre- and/or Post-command",
+           tt_srpt->title[i].pb_ty.jlc_exists_in_button_cmd ?
+           "" : ", No Link/Jump/Call exists in Button command",
+           tt_srpt->title[i].pb_ty.jlc_exists_in_tt_dom ?
+           "" : ", No Link/Jump/Call exists in TT_DOM",
+           tt_srpt->title[i].pb_ty.chapter_search_or_play ?
+           ", UOP1 (TT_Play and PTT_Search) prohibited" : "",
+           tt_srpt->title[i].pb_ty.title_or_time_play ?
+           ", UOP0 (Time_Play and Time_Search) prohibited" : ""
+           );    
     printf("\tParental ID field: %04x\n",
-	   tt_srpt->title[i].parental_id);
+           tt_srpt->title[i].parental_id);
     printf("\tTitle set starting sector %08x\n", 
-	   tt_srpt->title[i].title_set_sector);
+           tt_srpt->title[i].title_set_sector);
   }
 }
 
@@ -877,16 +878,16 @@ void ifoPrint_TT_SRPT(tt_srpt_t *tt_srpt
 void ifoPrint_VTS_PTT_SRPT(vts_ptt_srpt_t *vts_ptt_srpt) {
   int i, j;
   printf(" nr_of_srpts %i last byte %i\n", 
-	 vts_ptt_srpt->nr_of_srpts, 
-	 vts_ptt_srpt->last_byte);
+         vts_ptt_srpt->nr_of_srpts, 
+         vts_ptt_srpt->last_byte);
   for(i=0;i<vts_ptt_srpt->nr_of_srpts;i++) {
     printf("\nVTS_PTT number %d has a offset %d relative to VTS_PTT_SRPT\n", 
-				i + 1, vts_ptt_srpt->ttu_offset[i]);
+           i + 1, vts_ptt_srpt->ttu_offset[i]);
     for(j=0;j<vts_ptt_srpt->title[i].nr_of_ptts;j++) {
       printf("VTS_PTT_SRPT - Title %3i part %3i: PGC: %3i PG: %3i\n",
-	     i + 1, j + 1, 
-	     vts_ptt_srpt->title[i].ptt[j].pgcn,
-	     vts_ptt_srpt->title[i].ptt[j].pgn );
+             i + 1, j + 1, 
+             vts_ptt_srpt->title[i].ptt[j].pgcn,
+             vts_ptt_srpt->title[i].ptt[j].pgn );
     }
   }
 }
@@ -903,18 +904,18 @@ void ifoPrint_PTL_MAIT(ptl_mait_t *ptl_m
     
     printf("Start byte: %i\n", ptl_mait->countries[i].pf_ptl_mai_start_byte);
     printf("Parental Masks for country: %c%c\n",
-	   ptl_mait->countries[i].country_code >> 8,
-	   ptl_mait->countries[i].country_code & 0xff);
+           ptl_mait->countries[i].country_code >> 8,
+           ptl_mait->countries[i].country_code & 0xff);
     
     for(vts = 0; vts <= ptl_mait->nr_of_vtss; vts++) {
       if( vts == 0 ) {
-	printf("VMG    "); 
+        printf("VMG    "); 
       } else {
-	printf("VTS %2d ", vts);
+        printf("VTS %2d ", vts);
       }
       for(level = 0; level < 8; level++) {
-	printf("%d: %04x  ", level,
-	       ptl_mait->countries[i].pf_ptl_mai[vts][level] );
+        printf("%d: %04x  ", level,
+               ptl_mait->countries[i].pf_ptl_mai[vts][level] );
       }
       printf("\n");
     }
@@ -937,9 +938,9 @@ void ifoPrint_VTS_TMAPT(vts_tmapt_t *vts
     for(j = 0; j < vts_tmapt->tmap[i].nr_of_entries; j++) {
       unsigned int ac_time = timeunit * (j + 1);
       printf("Time: %2i:%02i:%02i  VOBU Sector: 0x%08x %s\n", 
-	     ac_time / (60 * 60), (ac_time / 60) % 60, ac_time % 60,
-	     vts_tmapt->tmap[i].map_ent[j] & 0x7fffffff,
-	     (vts_tmapt->tmap[i].map_ent[j] >> 31) ? "discontinuity" : "");
+             ac_time / (60 * 60), (ac_time / 60) % 60, ac_time % 60,
+             vts_tmapt->tmap[i].map_ent[j] & 0x7fffffff,
+             (vts_tmapt->tmap[i].map_ent[j] >> 31) ? "discontinuity" : "");
     }
   }
 }
@@ -953,10 +954,10 @@ void ifoPrint_C_ADT(c_adt_t *c_adt) {
   
   for(i = 0; i < entries; i++) {
     printf("VOB ID: %3i, Cell ID: %3i   ", 
-	   c_adt->cell_adr_table[i].vob_id, c_adt->cell_adr_table[i].cell_id);
+           c_adt->cell_adr_table[i].vob_id, c_adt->cell_adr_table[i].cell_id);
     printf("Sector (first): 0x%08x   (last): 0x%08x\n",
-	   c_adt->cell_adr_table[i].start_sector, 
-	   c_adt->cell_adr_table[i].last_sector);
+           c_adt->cell_adr_table[i].start_sector, 
+           c_adt->cell_adr_table[i].last_sector);
   }
 }
 
@@ -967,7 +968,7 @@ void ifoPrint_VOBU_ADMAP(vobu_admap_t *v
   entries = (vobu_admap->last_byte + 1 - VOBU_ADMAP_SIZE)/4;
   for(i = 0; i < entries; i++) {
     printf("VOBU %5i  First sector: 0x%08x\n", i + 1,
-	   vobu_admap->vobu_start_sectors[i]);
+           vobu_admap->vobu_start_sectors[i]);
   }
 }
 
@@ -990,9 +991,9 @@ void ifoPrint_PGCI_UT(pgci_ut_t *pgci_ut
   printf("Number of Menu Language Units (PGCI_LU): %3i\n", pgci_ut->nr_of_lus);
   for(i = 0; i < pgci_ut->nr_of_lus; i++) {
     printf("\nMenu Language Code: %c%c (%c)\n",
-	   pgci_ut->lu[i].lang_code >> 8,
-	   pgci_ut->lu[i].lang_code & 0xff,
-	   pgci_ut->lu[i].lang_extension ? pgci_ut->lu[i].lang_extension :' ');
+           pgci_ut->lu[i].lang_code >> 8,
+           pgci_ut->lu[i].lang_code & 0xff,
+           pgci_ut->lu[i].lang_extension ? pgci_ut->lu[i].lang_extension :' ');
     printf("Menu Existence: %02x\n", pgci_ut->lu[i].exists);
     ifoPrint_PGCIT(pgci_ut->lu[i].pgcit);
   }
@@ -1008,14 +1009,14 @@ static void ifoPrint_VTS_ATTRIBUTES(vts_
   ifoPrint_video_attributes(&vts_attributes->vtsm_vobs_attr);
   printf("\n");
   printf("Number of Audio streams: %i\n", 
-	 vts_attributes->nr_of_vtsm_audio_streams);
+         vts_attributes->nr_of_vtsm_audio_streams);
   if(vts_attributes->nr_of_vtsm_audio_streams > 0) {
     printf("\tstream %i attributes: ", 1);
     ifoPrint_audio_attributes(&vts_attributes->vtsm_audio_attr);
     printf("\n");
   }
   printf("Number of Subpicture streams: %i\n", 
-	 vts_attributes->nr_of_vtsm_subp_streams);
+         vts_attributes->nr_of_vtsm_subp_streams);
   if(vts_attributes->nr_of_vtsm_subp_streams > 0) {
     printf("\tstream %2i attributes: ", 1);
     ifoPrint_subp_attributes(&vts_attributes->vtsm_subp_attr);
@@ -1026,7 +1027,7 @@ static void ifoPrint_VTS_ATTRIBUTES(vts_
   ifoPrint_video_attributes(&vts_attributes->vtstt_vobs_video_attr);
   printf("\n");
   printf("Number of Audio streams: %i\n", 
-	 vts_attributes->nr_of_vtstt_audio_streams);
+         vts_attributes->nr_of_vtstt_audio_streams);
   for(i = 0; i < vts_attributes->nr_of_vtstt_audio_streams; i++) {
     printf("\tstream %i attributes: ", i);
     ifoPrint_audio_attributes(&vts_attributes->vtstt_audio_attr[i]);
@@ -1034,7 +1035,7 @@ static void ifoPrint_VTS_ATTRIBUTES(vts_
   }
   
   printf("Number of Subpicture streams: %i\n", 
-	 vts_attributes->nr_of_vtstt_subp_streams);
+         vts_attributes->nr_of_vtstt_subp_streams);
   for(i = 0; i < vts_attributes->nr_of_vtstt_subp_streams; i++) {
     printf("\tstream %2i attributes: ", i);    
     ifoPrint_subp_attributes(&vts_attributes->vtstt_subp_attr[i]);
@@ -1050,7 +1051,7 @@ void ifoPrint_VTS_ATRT(vts_atrt_t *vts_a
   for(i = 0; i < vts_atrt->nr_of_vtss; i++) {
     printf("\nVideo Title Set %i\n", i + 1);
     printf("  offset %d relative to VMG_VTS_ATRT\n", 
-	   vts_atrt->vts_atrt_offsets[i]);
+           vts_atrt->vts_atrt_offsets[i]);
     ifoPrint_VTS_ATTRIBUTES(&vts_atrt->vts[i]);
   }
 }
@@ -1062,7 +1063,7 @@ void ifoPrint(dvd_reader_t *dvd, int tit
   ifohandle = ifoOpen(dvd, title);
   if(!ifohandle) {
     if(dvdread_verbose(dvd) >= 0) {
-    fprintf(stderr, "Can't open info file for title %d\n", title);
+      fprintf(stderr, "Can't open info file for title %d\n", title);
     }
     return;
   }
@@ -1075,7 +1076,7 @@ void ifoPrint(dvd_reader_t *dvd, int tit
 
     printf("\nFirst Play PGC\n--------------\n");
     if(ifohandle->first_play_pgc) {
-    ifoPrint_PGC(ifohandle->first_play_pgc);
+      ifoPrint_PGC(ifohandle->first_play_pgc);
     } else {
       printf("No First Play PGC present\n");
     }

Modified: trunk/dvdread/ifo_print.h
==============================================================================
--- trunk/dvdread/ifo_print.h	(original)
+++ trunk/dvdread/ifo_print.h	Wed Aug 15 13:57:30 2007
@@ -1,3 +1,4 @@
+/* -*- c-basic-offset: 2; indent-tabs-mode: nil -*- */
 #ifndef IFO_PRINT_H_INCLUDED
 #define IFO_PRINT_H_INCLUDED
 

Modified: trunk/dvdread/ifo_read.c
==============================================================================
--- trunk/dvdread/ifo_read.c	(original)
+++ trunk/dvdread/ifo_read.c	Wed Aug 15 13:57:30 2007
@@ -1,3 +1,4 @@
+/* -*- c-basic-offset: 2; indent-tabs-mode: nil -*- */
 /*
  * Copyright (C) 2000, 2001, 2002, 2003
  *               Björn Englund <d4bjorn at dtek.chalmers.se>, 
@@ -47,19 +48,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
@@ -74,7 +75,7 @@ static int ifoRead_VTS(ifo_handle_t *ifo
 static int ifoRead_PGC(ifo_handle_t *ifofile, pgc_t *pgc, unsigned int offset);
 static int ifoRead_PGC_COMMAND_TBL(ifo_handle_t *ifofile, 
                                    pgc_command_tbl_t *cmd_tbl, 
-				   unsigned int offset);
+                                   unsigned int offset);
 static int ifoRead_PGC_PROGRAM_MAP(ifo_handle_t *ifofile, 
                                    pgc_program_map_t *program_map, 
                                    unsigned int nr, unsigned int offset);
@@ -91,7 +92,7 @@ static int ifoRead_C_ADT_internal(ifo_ha
                                   unsigned int sector);
 static int ifoRead_VOBU_ADMAP_internal(ifo_handle_t *ifofile, 
                                        vobu_admap_t *vobu_admap, 
-				       unsigned int sector);
+                                       unsigned int sector);
 static int ifoRead_PGCIT_internal(ifo_handle_t *ifofile, pgcit_t *pgcit, 
                                   unsigned int offset);
 
@@ -140,19 +141,19 @@ ifo_handle_t *ifoOpen(dvd_reader_t *dvd,
 
     ifofile->file = DVDOpenFile(dvd, title, DVD_READ_INFO_BACKUP_FILE);
     if(!ifoOpen_File(ifofile, title, "BUP")) {
-    if(title) {
+      if(title) {
         if(dvdread_verbose(dvd) >= 1) {
           fprintf(stderr, "libdvdread: Can't open file VTS_%02d_0.%s.\n", 
                   title, "BUP");
         }
-    } else {
+      } else {
         if(dvdread_verbose(dvd) >= 1) {
           fprintf(stderr, "libdvdread: Can't open file VIDEO_TS.%s.\n", "BUP");
         }
       }
       return NULL;
     }
-    }
+  }
   return ifofile;
 }
 
@@ -303,7 +304,7 @@ ifo_handle_t *ifoOpenVTSI(dvd_reader_t *
   
   if(title <= 0 || title > 99) {
     if(dvdread_verbose(dvd) >= 0) {
-    fprintf(stderr, "libdvdread: ifoOpenVTSI invalid title (%d).\n", title);
+      fprintf(stderr, "libdvdread: ifoOpenVTSI invalid title (%d).\n", title);
     }
     free(ifofile);
     errno = EINVAL;
@@ -451,12 +452,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);
@@ -546,11 +547,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);
@@ -586,11 +587,11 @@ static int ifoRead_VTS(ifo_handle_t *ifo
 
 static int ifoRead_PGC_COMMAND_TBL(ifo_handle_t *ifofile, 
                                    pgc_command_tbl_t *cmd_tbl, 
-				   unsigned int offset) {
+                                   unsigned int offset) {
   unsigned int total;
-  
+
   memset(cmd_tbl, 0, sizeof(pgc_command_tbl_t));
-  
+
   if(!DVDFileSeek_(ifofile->file, offset))
     return 0;
 
@@ -601,12 +602,12 @@ static int ifoRead_PGC_COMMAND_TBL(ifo_h
   B2N_16(cmd_tbl->nr_of_post);
   B2N_16(cmd_tbl->nr_of_cell);
   B2N_16(cmd_tbl->last_byte);
-
+  
   total = cmd_tbl->nr_of_pre + cmd_tbl->nr_of_post + cmd_tbl->nr_of_cell;
   CHECK_VALUE(PGC_COMMAND_TBL_SIZE + total * COMMAND_DATA_SIZE 
               <= cmd_tbl->last_byte + 1U);
   CHECK_VALUE(total <= 255);
-     
+
   if(cmd_tbl->nr_of_pre != 0) {
     unsigned int pre_cmds_size  = cmd_tbl->nr_of_pre * COMMAND_DATA_SIZE;
     cmd_tbl->pre_cmds = malloc(pre_cmds_size);
@@ -618,18 +619,18 @@ static int ifoRead_PGC_COMMAND_TBL(ifo_h
       return 0;
     }
   }
-  
+
   if(cmd_tbl->nr_of_post != 0) {
     unsigned int post_cmds_size = cmd_tbl->nr_of_post * COMMAND_DATA_SIZE;
     cmd_tbl->post_cmds = malloc(post_cmds_size);
     if(!cmd_tbl->post_cmds) {
       if(cmd_tbl->pre_cmds) 
-	free(cmd_tbl->pre_cmds);
+        free(cmd_tbl->pre_cmds);
       return 0;
     }
     if(!(DVDReadBytes(ifofile->file, cmd_tbl->post_cmds, post_cmds_size))) {
       if(cmd_tbl->pre_cmds) 
-	free(cmd_tbl->pre_cmds);
+        free(cmd_tbl->pre_cmds);
       free(cmd_tbl->post_cmds);
       return 0;
     }
@@ -640,16 +641,16 @@ static int ifoRead_PGC_COMMAND_TBL(ifo_h
     cmd_tbl->cell_cmds = malloc(cell_cmds_size);
     if(!cmd_tbl->cell_cmds) {
       if(cmd_tbl->pre_cmds)
-	free(cmd_tbl->pre_cmds);
+        free(cmd_tbl->pre_cmds);
       if(cmd_tbl->post_cmds)
-	free(cmd_tbl->post_cmds);
+        free(cmd_tbl->post_cmds);
       return 0;
     }
     if(!(DVDReadBytes(ifofile->file, cmd_tbl->cell_cmds, cell_cmds_size))) {
       if(cmd_tbl->pre_cmds) 
-	free(cmd_tbl->pre_cmds);
+        free(cmd_tbl->pre_cmds);
       if(cmd_tbl->post_cmds) 
-	free(cmd_tbl->post_cmds);
+        free(cmd_tbl->post_cmds);
       free(cmd_tbl->cell_cmds);
       return 0;
     }
@@ -676,7 +677,7 @@ static void ifoFree_PGC_COMMAND_TBL(pgc_
 
 static int ifoRead_PGC_PROGRAM_MAP(ifo_handle_t *ifofile, 
                                    pgc_program_map_t *program_map, 
-				   unsigned int nr, unsigned int offset) {
+                                   unsigned int nr, unsigned int offset) {
   unsigned int size = nr * sizeof(pgc_program_map_t);
 
   if(!DVDFileSeek_(ifofile->file, offset))
@@ -708,9 +709,9 @@ static int ifoRead_CELL_PLAYBACK_TBL(ifo
     
     /* 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;
@@ -809,9 +810,9 @@ static int ifoRead_PGC(ifo_handle_t *ifo
       free(pgc->program_map);
       return 0;
     }
-  } else {
-    pgc->program_map = NULL;
-  }
+    } else {
+      pgc->program_map = NULL;
+    }
   } else {
     pgc->program_map = NULL;
   }
@@ -823,21 +824,21 @@ static int ifoRead_PGC(ifo_handle_t *ifo
     if(!pgc->cell_playback) {
       ifoFree_PGC_COMMAND_TBL(pgc->command_tbl);
       if(pgc->program_map)
-	free(pgc->program_map);
+        free(pgc->program_map);
       return 0;
     }
     if(!ifoRead_CELL_PLAYBACK_TBL(ifofile, pgc->cell_playback, 
-				  pgc->nr_of_cells,
+                                  pgc->nr_of_cells,
                                   offset + pgc->cell_playback_offset)) {
       ifoFree_PGC_COMMAND_TBL(pgc->command_tbl);
       if(pgc->program_map)
-	free(pgc->program_map);
+        free(pgc->program_map);
       free(pgc->cell_playback);
       return 0;
     }
-  } else {
-    pgc->cell_playback = NULL;
-  }
+    } else {
+      pgc->cell_playback = NULL;
+    }
   } else {
     pgc->cell_playback = NULL;
   }
@@ -851,14 +852,14 @@ static int ifoRead_PGC(ifo_handle_t *ifo
       return 0;
     }
     if(!ifoRead_CELL_POSITION_TBL(ifofile, pgc->cell_position, 
-				  pgc->nr_of_cells,
+                                  pgc->nr_of_cells,
                                   offset + pgc->cell_position_offset)) {
       ifoFree_PGC(pgc);
       return 0;
     }
-  } else {
-    pgc->cell_position = NULL;
-  }
+    } else {
+      pgc->cell_position = NULL;
+    }
   } else {
     pgc->cell_position = NULL;
   }
@@ -941,7 +942,7 @@ int ifoRead_TT_SRPT(ifo_handle_t *ifofil
   
   if(!(DVDReadBytes(ifofile->file, tt_srpt, TT_SRPT_SIZE))) {
     if(dvdread_verbose(device_of_file(ifofile->file)) >= 1) {
-    fprintf(stderr, "libdvdread: Unable to read read TT_SRPT.\n");
+      fprintf(stderr, "libdvdread: Unable to read read TT_SRPT.\n");
     }
     free(tt_srpt);
     return 0;
@@ -960,7 +961,7 @@ int ifoRead_TT_SRPT(ifo_handle_t *ifofil
   }
   if(!(DVDReadBytes(ifofile->file, tt_srpt->title, info_length))) {
     if(dvdread_verbose(device_of_file(ifofile->file)) >= 1) {
-    fprintf(stderr, "libdvdread: Unable to read read TT_SRPT.\n");
+      fprintf(stderr, "libdvdread: Unable to read read TT_SRPT.\n");
     }
     ifoFree_TT_SRPT(ifofile);
     return 0;
@@ -1036,7 +1037,7 @@ int ifoRead_VTS_PTT_SRPT(ifo_handle_t *i
     return 0;
     
   if(!DVDFileSeek_(ifofile->file,
-		   ifofile->vtsi_mat->vts_ptt_srpt * DVD_BLOCK_LEN))
+                   ifofile->vtsi_mat->vts_ptt_srpt * DVD_BLOCK_LEN))
     return 0;
 
   vts_ptt_srpt = malloc(sizeof(vts_ptt_srpt_t));
@@ -1047,7 +1048,7 @@ int ifoRead_VTS_PTT_SRPT(ifo_handle_t *i
 
   if(!(DVDReadBytes(ifofile->file, vts_ptt_srpt, VTS_PTT_SRPT_SIZE))) {
     if(dvdread_verbose(device_of_file(ifofile->file)) >= 1) {
-    fprintf(stderr, "libdvdread: Unable to read PTT search table.\n");
+      fprintf(stderr, "libdvdread: Unable to read PTT search table.\n");
     }
     free(vts_ptt_srpt);
     return 0;
@@ -1070,7 +1071,7 @@ int ifoRead_VTS_PTT_SRPT(ifo_handle_t *i
   }
   if(!(DVDReadBytes(ifofile->file, data, info_length))) {
     if(dvdread_verbose(device_of_file(ifofile->file)) >= 1) {
-    fprintf(stderr, "libdvdread: Unable to read PTT search table.\n");
+      fprintf(stderr, "libdvdread: Unable to read PTT search table.\n");
     }
     free(vts_ptt_srpt);
     free(data);
@@ -1203,7 +1204,7 @@ int ifoRead_PTL_MAIT(ifo_handle_t *ifofi
   CHECK_VALUE(ptl_mait->nr_of_vtss != 0);
   CHECK_VALUE(ptl_mait->nr_of_vtss < 100); // ??  
   CHECK_VALUE(ptl_mait->nr_of_countries * PTL_MAIT_COUNTRY_SIZE 
-	      <= ptl_mait->last_byte + 1 - PTL_MAIT_SIZE);
+              <= ptl_mait->last_byte + 1 - PTL_MAIT_SIZE);
   
   info_length = ptl_mait->nr_of_countries * sizeof(ptl_mait_country_t);
   ptl_mait->countries = malloc(info_length);
@@ -1216,7 +1217,7 @@ int ifoRead_PTL_MAIT(ifo_handle_t *ifofi
   for(i = 0; i < ptl_mait->nr_of_countries; i++) {
     if(!(DVDReadBytes(ifofile->file, &ptl_mait->countries[i], PTL_MAIT_COUNTRY_SIZE))) {
       if(dvdread_verbose(device_of_file(ifofile->file)) >= 1) {
-      fprintf(stderr, "libdvdread: Unable to read PTL_MAIT.\n");
+        fprintf(stderr, "libdvdread: Unable to read PTL_MAIT.\n");
       }
       free(ptl_mait->countries);
       free(ptl_mait);
@@ -1241,10 +1242,10 @@ int ifoRead_PTL_MAIT(ifo_handle_t *ifofi
     uint16_t *pf_temp;
     
     if(!DVDFileSeek_(ifofile->file, 
-		     ifofile->vmgi_mat->ptl_mait * DVD_BLOCK_LEN
+                     ifofile->vmgi_mat->ptl_mait * DVD_BLOCK_LEN
                      + ptl_mait->countries[i].pf_ptl_mai_start_byte)) {
       if(dvdread_verbose(device_of_file(ifofile->file)) >= 1) {
-      fprintf(stderr, "libdvdread: Unable to seak PTL_MAIT table.\n");
+        fprintf(stderr, "libdvdread: Unable to seak PTL_MAIT table.\n");
       }
       free(ptl_mait->countries);
       free(ptl_mait);
@@ -1254,7 +1255,7 @@ int ifoRead_PTL_MAIT(ifo_handle_t *ifofi
     pf_temp = malloc(info_length);
     if(!pf_temp) {
       for(j = 0; j < i ; j++) {
-         free(ptl_mait->countries[j].pf_ptl_mai);
+        free(ptl_mait->countries[j].pf_ptl_mai);
       }
       free(ptl_mait->countries);
       free(ptl_mait);
@@ -1262,24 +1263,24 @@ int ifoRead_PTL_MAIT(ifo_handle_t *ifofi
     }
     if(!(DVDReadBytes(ifofile->file, pf_temp, info_length))) {
       if(dvdread_verbose(device_of_file(ifofile->file)) >= 1) {
-       fprintf(stderr, "libdvdread: Unable to read PTL_MAIT table.\n");
+        fprintf(stderr, "libdvdread: Unable to read PTL_MAIT table.\n");
       }
-       free(pf_temp);
-       for(j = 0; j < i ; j++) {
-	  free(ptl_mait->countries[j].pf_ptl_mai);
-       }
-       free(ptl_mait->countries);
-       free(ptl_mait);
-       return 0;
+      free(pf_temp);
+      for(j = 0; j < i ; j++) {
+        free(ptl_mait->countries[j].pf_ptl_mai);
+      }
+      free(ptl_mait->countries);
+      free(ptl_mait);
+      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 = malloc(info_length);
     if(!ptl_mait->countries[i].pf_ptl_mai) {
       free(pf_temp);
       for(j = 0; j < i ; j++) {
-	free(ptl_mait->countries[j].pf_ptl_mai);
+        free(ptl_mait->countries[j].pf_ptl_mai);
       }
       free(ptl_mait->countries);
       free(ptl_mait);
@@ -1288,10 +1289,10 @@ int ifoRead_PTL_MAIT(ifo_handle_t *ifofi
     { /* Transpose the array so we can use C indexing. */
       int level, vts;
       for(level = 0; level < 8; level++) {
-	for(vts = 0; vts <= ptl_mait->nr_of_vtss; vts++) {
-	  ptl_mait->countries[i].pf_ptl_mai[vts][level] =
-	    pf_temp[(7-level)*(ptl_mait->nr_of_vtss+1) + vts];
-	}
+        for(vts = 0; vts <= ptl_mait->nr_of_vtss; vts++) {
+          ptl_mait->countries[i].pf_ptl_mai[vts][level] =
+            pf_temp[(7-level)*(ptl_mait->nr_of_vtss+1) + vts];
+        }
       }
       free(pf_temp);
     }
@@ -1307,7 +1308,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);
@@ -1347,7 +1348,7 @@ int ifoRead_VTS_TMAPT(ifo_handle_t *ifof
   
   if(!(DVDReadBytes(ifofile->file, vts_tmapt, VTS_TMAPT_SIZE))) {
     if(dvdread_verbose(device_of_file(ifofile->file)) >= 1) {
-    fprintf(stderr, "libdvdread: Unable to read VTS_TMAPT.\n");
+      fprintf(stderr, "libdvdread: Unable to read VTS_TMAPT.\n");
     }
     free(vts_tmapt);
     ifofile->vts_tmapt = NULL;
@@ -1372,7 +1373,7 @@ int ifoRead_VTS_TMAPT(ifo_handle_t *ifof
   
   if(!(DVDReadBytes(ifofile->file, vts_tmap_srp, info_length))) {
     if(dvdread_verbose(device_of_file(ifofile->file)) >= 1) {
-    fprintf(stderr, "libdvdread: Unable to read VTS_TMAPT.\n");
+      fprintf(stderr, "libdvdread: Unable to read VTS_TMAPT.\n");
     }
     free(vts_tmap_srp);
     free(vts_tmapt);
@@ -1381,7 +1382,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]); 
   }
 
   
@@ -1405,7 +1406,7 @@ int ifoRead_VTS_TMAPT(ifo_handle_t *ifof
 
     if(!(DVDReadBytes(ifofile->file, &vts_tmapt->tmap[i], VTS_TMAP_SIZE))) {
       if(dvdread_verbose(device_of_file(ifofile->file)) >= 1) {
-      fprintf(stderr, "libdvdread: Unable to read VTS_TMAP.\n");
+        fprintf(stderr, "libdvdread: Unable to read VTS_TMAP.\n");
       }
       ifoFree_VTS_TMAPT(ifofile);
       return 0;
@@ -1429,7 +1430,7 @@ int ifoRead_VTS_TMAPT(ifo_handle_t *ifof
 
     if(!(DVDReadBytes(ifofile->file, vts_tmapt->tmap[i].map_ent, info_length))) {
       if(dvdread_verbose(device_of_file(ifofile->file)) >= 1) {
-      fprintf(stderr, "libdvdread: Unable to read VTS_TMAP_ENT.\n");
+        fprintf(stderr, "libdvdread: Unable to read VTS_TMAP_ENT.\n");
       }
       ifoFree_VTS_TMAPT(ifofile);
       return 0;
@@ -1451,7 +1452,7 @@ void ifoFree_VTS_TMAPT(ifo_handle_t *ifo
   if(ifofile->vts_tmapt) {  
     for(i = 0; i < ifofile->vts_tmapt->nr_of_tmaps; i++)
       if(ifofile->vts_tmapt->tmap[i].map_ent)
-	free(ifofile->vts_tmapt->tmap[i].map_ent);
+        free(ifofile->vts_tmapt->tmap[i].map_ent);
     free(ifofile->vts_tmapt->tmap);
     free(ifofile->vts_tmapt->tmap_offset);
     free(ifofile->vts_tmapt);
@@ -1542,7 +1543,7 @@ static int ifoRead_C_ADT_internal(ifo_ha
      is to high, they high ones are never referenced though. */
   if(info_length / sizeof(cell_adr_t) < c_adt->nr_of_vobs) {
     if(dvdread_verbose(device_of_file(ifofile->file)) >= 1) {
-    fprintf(stderr, "libdvdread: *C_ADT nr_of_vobs > avaiable info entries\n");
+      fprintf(stderr, "libdvdread: *C_ADT nr_of_vobs > avaiable info entries\n");
     }
     c_adt->nr_of_vobs = info_length / sizeof(cell_adr_t);
   }
@@ -1567,7 +1568,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;
@@ -1654,7 +1655,7 @@ int ifoRead_VOBU_ADMAP(ifo_handle_t *ifo
 
 static int ifoRead_VOBU_ADMAP_internal(ifo_handle_t *ifofile, 
                                        vobu_admap_t *vobu_admap, 
-				       unsigned int sector) {
+                                       unsigned int sector) {
   unsigned int i;
   int info_length;
 
@@ -1678,7 +1679,7 @@ static int ifoRead_VOBU_ADMAP_internal(i
   }
   if(info_length && 
      !(DVDReadBytes(ifofile->file, 
-		    vobu_admap->vobu_start_sectors, info_length))) {
+                    vobu_admap->vobu_start_sectors, info_length))) {
     free(vobu_admap->vobu_start_sectors);
     return 0;
   }
@@ -1904,7 +1905,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++) {
@@ -1918,7 +1919,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"
@@ -2068,7 +2069,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 = malloc(info_length);
@@ -2146,7 +2147,7 @@ int ifoRead_TXTDT_MGI(ifo_handle_t *ifof
     return 1;
 
   if(!DVDFileSeek_(ifofile->file, 
-		   ifofile->vmgi_mat->txtdt_mgi * DVD_BLOCK_LEN))
+                   ifofile->vmgi_mat->txtdt_mgi * DVD_BLOCK_LEN))
     return 0;
   
   txtdt_mgi = malloc(sizeof(txtdt_mgi_t));
@@ -2157,7 +2158,7 @@ int ifoRead_TXTDT_MGI(ifo_handle_t *ifof
 
   if(!(DVDReadBytes(ifofile->file, txtdt_mgi, TXTDT_MGI_SIZE))) {
     if(dvdread_verbose(device_of_file(ifofile->file)) >= 1) {
-    fprintf(stderr, "libdvdread: Unable to read TXTDT_MGI.\n");
+      fprintf(stderr, "libdvdread: Unable to read TXTDT_MGI.\n");
     }
     free(txtdt_mgi);
     ifofile->txtdt_mgi = 0;

Modified: trunk/dvdread/ifo_read.h
==============================================================================
--- trunk/dvdread/ifo_read.h	(original)
+++ trunk/dvdread/ifo_read.h	Wed Aug 15 13:57:30 2007
@@ -1,3 +1,4 @@
+/* -*- c-basic-offset: 2; indent-tabs-mode: nil -*- */
 #ifndef IFO_READ_H_INCLUDED
 #define IFO_READ_H_INCLUDED
 

Modified: trunk/dvdread/ifo_types.h
==============================================================================
--- trunk/dvdread/ifo_types.h	(original)
+++ trunk/dvdread/ifo_types.h	Wed Aug 15 13:57:30 2007
@@ -1,3 +1,4 @@
+/* -*- c-basic-offset: 2; indent-tabs-mode: nil -*- */
 #ifndef IFO_TYPES_H_INCLUDED
 #define IFO_TYPES_H_INCLUDED
 

Modified: trunk/dvdread/md5.c
==============================================================================
--- trunk/dvdread/md5.c	(original)
+++ trunk/dvdread/md5.c	Wed Aug 15 13:57:30 2007
@@ -1,3 +1,4 @@
+/* -*- c-basic-offset: 2; indent-tabs-mode: nil -*- */
 /* md5.c - Functions to compute MD5 message digest of files or memory blocks
    according to the definition of MD5 in RFC 1321 from April 1992.
    Copyright (C) 1995, 1996, 2001 Free Software Foundation, Inc.
@@ -46,8 +47,8 @@
 #endif
 
 #ifdef WORDS_BIGENDIAN
-# define SWAP(n)							\
-    (((n) << 24) | (((n) & 0xff00) << 8) | (((n) >> 8) & 0xff00) | ((n) >> 24))
+# define SWAP(n)                                                        \
+  (((n) << 24) | (((n) & 0xff00) << 8) | (((n) >> 8) & 0xff00) | ((n) >> 24))
 #else
 # define SWAP(n) (n)
 #endif
@@ -116,7 +117,7 @@ md5_finish_ctx (ctx, resbuf)
   /* Put the 64-bit file length in *bits* at the end of the buffer.  */
   *(md5_uint32 *) &ctx->buffer[bytes + pad] = SWAP (ctx->total[0] << 3);
   *(md5_uint32 *) &ctx->buffer[bytes + pad + 4] = SWAP ((ctx->total[1] << 3) |
-							(ctx->total[0] >> 29));
+                                                        (ctx->total[0] >> 29));
 
   /* Process last bytes.  */
   md5_process_block (ctx->buffer, bytes + pad + 8, ctx);
@@ -145,29 +146,29 @@ md5_stream (stream, resblock)
   while (1)
     {
       /* We read the file in blocks of BLOCKSIZE bytes.  One call of the
-	 computation function processes the whole buffer so that with the
-	 next round of the loop another block can be read.  */
+         computation function processes the whole buffer so that with the
+         next round of the loop another block can be read.  */
       size_t n;
       sum = 0;
 
       /* Read block.  Take care for partial reads.  */
       do
-	{
-	  n = fread (buffer + sum, 1, BLOCKSIZE - sum, stream);
+        {
+          n = fread (buffer + sum, 1, BLOCKSIZE - sum, stream);
 
-	  sum += n;
-	}
+          sum += n;
+        }
       while (sum < BLOCKSIZE && n != 0);
       if (n == 0 && ferror (stream))
         return 1;
 
       /* If end of file is reached, end the loop.  */
       if (n == 0)
-	break;
+        break;
 
       /* Process buffer with BLOCKSIZE bytes.  Note that
-			BLOCKSIZE % 64 == 0
-       */
+         BLOCKSIZE % 64 == 0
+      */
       md5_process_block (buffer, BLOCKSIZE, &ctx);
     }
 
@@ -220,13 +221,13 @@ md5_process_bytes (buffer, len, ctx)
       ctx->buflen += add;
 
       if (left_over + add > 64)
-	{
-	  md5_process_block (ctx->buffer, (left_over + add) & ~63, ctx);
-	  /* The regions in the following copy operation cannot overlap.  */
-	  memcpy (ctx->buffer, &ctx->buffer[(left_over + add) & ~63],
-		  (left_over + add) & 63);
-	  ctx->buflen = (left_over + add) & 63;
-	}
+        {
+          md5_process_block (ctx->buffer, (left_over + add) & ~63, ctx);
+          /* The regions in the following copy operation cannot overlap.  */
+          memcpy (ctx->buffer, &ctx->buffer[(left_over + add) & ~63],
+                  (left_over + add) & 63);
+          ctx->buflen = (left_over + add) & 63;
+        }
 
       buffer = (const char *) buffer + add;
       len -= add;
@@ -294,28 +295,28 @@ md5_process_block (buffer, len, ctx)
       md5_uint32 D_save = D;
 
       /* First round: using the given function, the context and a constant
-	 the next context is computed.  Because the algorithms processing
-	 unit is a 32-bit word and it is determined to work on words in
-	 little endian byte order we perhaps have to change the byte order
-	 before the computation.  To reduce the work for the next steps
-	 we store the swapped words in the array CORRECT_WORDS.  */
+         the next context is computed.  Because the algorithms processing
+         unit is a 32-bit word and it is determined to work on words in
+         little endian byte order we perhaps have to change the byte order
+         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.
-	 They are defined in RFC 1321 as
+         They are defined in RFC 1321 as
 
-	 T[i] = (int) (4294967296.0 * fabs (sin (i))), i=1..64, or
-	 perl -e 'foreach(1..64){printf "0x%08x\n", int (4294967296 * abs (sin $_))}'
-       */
+         T[i] = (int) (4294967296.0 * fabs (sin (i))), i=1..64, or
+         perl -e 'foreach(1..64){printf "0x%08x\n", int (4294967296 * abs (sin $_))}'
+      */
 
       /* Round 1.  */
       OP (A, B, C, D,  7, 0xd76aa478);
@@ -336,16 +337,16 @@ md5_process_block (buffer, len, ctx)
       OP (B, C, D, A, 22, 0x49b40821);
 
       /* For the second to fourth round we have the possibly swapped words
-	 in CORRECT_WORDS.  Redefine the macro to take an additional first
-	 argument specifying the function to use.  */
+         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/dvdread/md5.h
==============================================================================
--- trunk/dvdread/md5.h	(original)
+++ trunk/dvdread/md5.h	Wed Aug 15 13:57:30 2007
@@ -1,3 +1,4 @@
+/* -*- c-basic-offset: 2; indent-tabs-mode: nil -*- */
 /* md5.h - Declaration of functions and data types used for MD5 sum
    computing library functions.
    Copyright (C) 1995, 1996, 1999 Free Software Foundation, Inc.
@@ -54,17 +55,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
@@ -72,9 +73,9 @@ typedef u_int32_t md5_uint32;
 
 #undef __P
 #if defined (__STDC__) && __STDC__
-#define	__P(x) x
+#define __P(x) x
 #else
-#define	__P(x) ()
+#define __P(x) ()
 #endif
 
 /* Structure to save state of computation between the single steps.  */
@@ -104,14 +105,14 @@ extern void md5_init_ctx __P ((struct md
    starting at BUFFER.
    It is necessary that LEN is a multiple of 64!!! */
 extern void md5_process_block __P ((const void *buffer, size_t len,
-				    struct md5_ctx *ctx));
+                                    struct md5_ctx *ctx));
 
 /* Starting with the result of former calls of this function (or the
    initialization function update the context for the next LEN bytes
    starting at BUFFER.
    It is NOT required that LEN is a multiple of 64.  */
 extern void md5_process_bytes __P ((const void *buffer, size_t len,
-				    struct md5_ctx *ctx));
+                                    struct md5_ctx *ctx));
 
 /* Process the remaining bytes in the buffer and put result from CTX
    in first 16 bytes following RESBUF.  The result is always in little
@@ -150,8 +151,8 @@ static inline md5_uint32
 rol(md5_uint32 x, int n)
 {
   __asm__("roll %%cl,%0"
-	  :"=r" (x)
-	  :"0" (x),"c" (n));
+          :"=r" (x)
+          :"0" (x),"c" (n));
   return x;
 }
 #else

Modified: trunk/dvdread/nav_print.c
==============================================================================
--- trunk/dvdread/nav_print.c	(original)
+++ trunk/dvdread/nav_print.c	Wed Aug 15 13:57:30 2007
@@ -1,3 +1,4 @@
+/* -*- c-basic-offset: 2; indent-tabs-mode: nil -*- */
 /*
  * Copyright (C) 2000, 2001, 2002, 2003 Håkan Hjort <d95hjort at dtek.chalmers.se>
  *
@@ -46,10 +47,10 @@ static void print_time(dvd_time_t *dtime
   CHECK_VALUE((dtime->frame_u&0xf) < 0xa);
   
   printf("%02x:%02x:%02x.%02x", 
-	 dtime->hour,
-	 dtime->minute,
-	 dtime->second,
-	 dtime->frame_u & 0x3f);
+         dtime->hour,
+         dtime->minute,
+         dtime->second,
+         dtime->frame_u & 0x3f);
   switch((dtime->frame_u & 0xc0) >> 6) {
   case 1:
     rate = "25.00";
@@ -102,7 +103,7 @@ static void navPrint_NSML_AGLI(nsml_agli
   for(i = 0; i < 9; i++)
     if(nsml_agli->nsml_agl_dsta[i])
       printf("nsml_agl_c%d_dsta  0x%08x\n", i + 1, 
-	     nsml_agli->nsml_agl_dsta[i]);
+             nsml_agli->nsml_agl_dsta[i]);
 }
 
 static void navPrint_HL_GI(hl_gi_t *hl_gi, int *btngr_ns, int *btn_ns) {
@@ -143,8 +144,8 @@ static void navPrint_BTN_COLIT(btn_colit
   for(i = 0; i < 3; i++)
     for(j = 0; j < 2; j++)
       printf("btn_cqoli %d  %s_coli:  %08x\n",
-	     i, (j == 0) ? "sl" : "ac",
-	     btn_colit->btn_coli[i][j]);
+             i, (j == 0) ? "sl" : "ac",
+             btn_colit->btn_coli[i][j]);
 }
 
 static void navPrint_BTNIT(btni_t *btni_table, int btngr_ns, int btn_ns) {
@@ -160,21 +161,21 @@ static void navPrint_BTNIT(btni_t *btni_
   for(i = 0; i < btngr_ns; i++) {
     for(j = 0; j < (36 / btngr_ns); j++) {
       if(j < btn_ns) {
-	btni_t *btni = &btni_table[(36 / btngr_ns) * i + j];
-	
-	printf("group %d btni %d:  ", i+1, j+1);
-	printf("btn_coln %d, auto_action_mode %d\n",
-	       btni->btn_coln, btni->auto_action_mode);
-	printf("coords   (%d, %d) .. (%d, %d)\n",
-	       btni->x_start, btni->y_start, btni->x_end, btni->y_end);
-	
-	printf("up %d, ", btni->up);
-	printf("down %d, ", btni->down);
-	printf("left %d, ", btni->left);
-	printf("right %d\n", btni->right);
-	
+        btni_t *btni = &btni_table[(36 / btngr_ns) * i + j];
+        
+        printf("group %d btni %d:  ", i+1, j+1);
+        printf("btn_coln %d, auto_action_mode %d\n",
+               btni->btn_coln, btni->auto_action_mode);
+        printf("coords   (%d, %d) .. (%d, %d)\n",
+               btni->x_start, btni->y_start, btni->x_end, btni->y_end);
+        
+        printf("up %d, ", btni->up);
+        printf("down %d, ", btni->down);
+        printf("left %d, ", btni->left);
+        printf("right %d\n", btni->right);
+        
         cmdPrint_CMD(0, &btni->cmd);
-	printf("\n");
+        printf("\n");
       }
     }
   }
@@ -238,14 +239,14 @@ static void navPrint_SML_AGLI(sml_agli_t
   printf("sml_agli:\n");
   for(i = 0; i < 9; i++) {
     printf("agl_c%d address: 0x%08x size 0x%04x\n", i,
-	   sml_agli->data[i].address, sml_agli->data[i].size);
+           sml_agli->data[i].address, sml_agli->data[i].size);
   }
 }
 
 static void navPrint_VOBU_SRI(vobu_sri_t *vobu_sri) {
   int i;
   int stime[19] = { 240, 120, 60, 20, 15, 14, 13, 12, 11, 
-		     10,   9,  8,  7,  6,  5,  4,  3,  2, 1};
+                    10,   9,  8,  7,  6,  5,  4,  3,  2, 1};
   printf("vobu_sri:\n");
   printf("Next VOBU with Video %08x\n", vobu_sri->next_video);
   for(i = 0; i < 19; i++) {

Modified: trunk/dvdread/nav_print.h
==============================================================================
--- trunk/dvdread/nav_print.h	(original)
+++ trunk/dvdread/nav_print.h	Wed Aug 15 13:57:30 2007
@@ -1,3 +1,4 @@
+/* -*- c-basic-offset: 2; indent-tabs-mode: nil -*- */
 #ifndef NAV_PRINT_H_INCLUDED
 #define NAV_PRINT_H_INCLUDED
 

Modified: trunk/dvdread/nav_read.c
==============================================================================
--- trunk/dvdread/nav_read.c	(original)
+++ trunk/dvdread/nav_read.c	Wed Aug 15 13:57:30 2007
@@ -1,3 +1,4 @@
+/* -*- c-basic-offset: 2; indent-tabs-mode: nil -*- */
 /*
  * Copyright (C) 2000, 2001, 2002, 2003 Håkan Hjort <d95hjort at dtek.chalmers.se>
  *
@@ -109,7 +110,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 */
@@ -123,28 +124,28 @@ void navRead_PCI(pci_t *pci, unsigned ch
       CHECK_VALUE(pci->hli.btnit[n].zero5 == 0);
       CHECK_VALUE(pci->hli.btnit[n].zero6 == 0);
       
-      if (j < pci->hli.hl_gi.btn_ns) {	
-	CHECK_VALUE(pci->hli.btnit[n].x_start <= pci->hli.btnit[n].x_end);
-	CHECK_VALUE(pci->hli.btnit[n].y_start <= pci->hli.btnit[n].y_end);
-	CHECK_VALUE(pci->hli.btnit[n].up <= pci->hli.hl_gi.btn_ns);
-	CHECK_VALUE(pci->hli.btnit[n].down <= pci->hli.hl_gi.btn_ns);
-	CHECK_VALUE(pci->hli.btnit[n].left <= pci->hli.hl_gi.btn_ns);
-	CHECK_VALUE(pci->hli.btnit[n].right <= pci->hli.hl_gi.btn_ns);
-	//vmcmd_verify(pci->hli.btnit[n].cmd);
+      if (j < pci->hli.hl_gi.btn_ns) {  
+        CHECK_VALUE(pci->hli.btnit[n].x_start <= pci->hli.btnit[n].x_end);
+        CHECK_VALUE(pci->hli.btnit[n].y_start <= pci->hli.btnit[n].y_end);
+        CHECK_VALUE(pci->hli.btnit[n].up <= pci->hli.hl_gi.btn_ns);
+        CHECK_VALUE(pci->hli.btnit[n].down <= pci->hli.hl_gi.btn_ns);
+        CHECK_VALUE(pci->hli.btnit[n].left <= pci->hli.hl_gi.btn_ns);
+        CHECK_VALUE(pci->hli.btnit[n].right <= pci->hli.hl_gi.btn_ns);
+        //vmcmd_verify(pci->hli.btnit[n].cmd);
       } else {
-	int k;
-	CHECK_VALUE(pci->hli.btnit[n].btn_coln == 0);
-	CHECK_VALUE(pci->hli.btnit[n].auto_action_mode == 0);
-	CHECK_VALUE(pci->hli.btnit[n].x_start == 0);
-	CHECK_VALUE(pci->hli.btnit[n].y_start == 0);
-	CHECK_VALUE(pci->hli.btnit[n].x_end == 0);
-	CHECK_VALUE(pci->hli.btnit[n].y_end == 0);
-	CHECK_VALUE(pci->hli.btnit[n].up == 0);
-	CHECK_VALUE(pci->hli.btnit[n].down == 0);
-	CHECK_VALUE(pci->hli.btnit[n].left == 0);
-	CHECK_VALUE(pci->hli.btnit[n].right == 0);
-	for (k = 0; k < 8; k++)
-	  CHECK_VALUE(pci->hli.btnit[n].cmd.bytes[k] == 0); //CHECK_ZERO?
+        int k;
+        CHECK_VALUE(pci->hli.btnit[n].btn_coln == 0);
+        CHECK_VALUE(pci->hli.btnit[n].auto_action_mode == 0);
+        CHECK_VALUE(pci->hli.btnit[n].x_start == 0);
+        CHECK_VALUE(pci->hli.btnit[n].y_start == 0);
+        CHECK_VALUE(pci->hli.btnit[n].x_end == 0);
+        CHECK_VALUE(pci->hli.btnit[n].y_end == 0);
+        CHECK_VALUE(pci->hli.btnit[n].up == 0);
+        CHECK_VALUE(pci->hli.btnit[n].down == 0);
+        CHECK_VALUE(pci->hli.btnit[n].left == 0);
+        CHECK_VALUE(pci->hli.btnit[n].right == 0);
+        for (k = 0; k < 8; k++)
+          CHECK_VALUE(pci->hli.btnit[n].cmd.bytes[k] == 0); //CHECK_ZERO?
       }
     }
   }

Modified: trunk/dvdread/nav_read.h
==============================================================================
--- trunk/dvdread/nav_read.h	(original)
+++ trunk/dvdread/nav_read.h	Wed Aug 15 13:57:30 2007
@@ -1,3 +1,4 @@
+/* -*- c-basic-offset: 2; indent-tabs-mode: nil -*- */
 #ifndef NAV_READ_H_INCLUDED
 #define NAV_READ_H_INCLUDED
 

Modified: trunk/dvdread/nav_types.h
==============================================================================
--- trunk/dvdread/nav_types.h	(original)
+++ trunk/dvdread/nav_types.h	Wed Aug 15 13:57:30 2007
@@ -1,3 +1,4 @@
+/* -*- c-basic-offset: 2; indent-tabs-mode: nil -*- */
 #ifndef NAV_TYPES_H_INCLUDED
 #define NAV_TYPES_H_INCLUDED
 
@@ -253,8 +254,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 MPlayer-cvslog mailing list