~ubuntu-branches/ubuntu/oneiric/libdvdread/oneiric

« back to all changes in this revision

Viewing changes to debian/patches/03-udf.dpatch

  • Committer: Bazaar Package Importer
  • Author(s): Stefan Ebner
  • Date: 2008-02-24 11:43:03 UTC
  • Revision ID: james.westby@ubuntu.com-20080224114303-wjf3yl6j01fdw8ug
Tags: 0.9.7-8ubuntu1
* Merge from Debian unstable. (LP: #195014) Remaining Ubuntu changes:
  - Re-add missing install-css.sh
  - debian/control: adjust Maintainer field, add Suggests for install-css.sh
  - debian/rules: install install-css.sh, leave perms executable. 

Show diffs side-by-side

added added

removed removed

Lines of Context:
9
9
 
10
10
diff -Naurp libdvdread-0.9.7.orig/dvdread/dvd_reader.c libdvdread-0.9.7/dvdread/dvd_reader.c
11
11
--- libdvdread-0.9.7.orig/dvdread/dvd_reader.c  2006-10-06 07:58:03.000000000 +0000
12
 
+++ libdvdread-0.9.7/dvdread/dvd_reader.c       2008-01-12 14:09:28.000000000 +0000
13
 
@@ -1393,6 +1393,24 @@ int DVDFileSeek( dvd_file_t *dvd_file, i
 
12
+++ libdvdread-0.9.7/dvdread/dvd_reader.c       2008-02-22 19:42:47.000000000 +0000
 
13
@@ -1393,6 +1393,28 @@ int DVDFileSeek( dvd_file_t *dvd_file, i
14
14
   return offset;
15
15
 }
16
16
 
20
20
+  if( dvd_file == NULL || offset < 0 )
21
21
+    return -1;
22
22
+
23
 
+  if( dvd_file->filesize < force_size) {
24
 
+    dvd_file->filesize = force_size;
25
 
+    fprintf(stderr, "libdvdread: Ignored UDF provided size of file.\n");
 
23
+  if( dvd_file->dvd->isImageFile ) {
 
24
+    if( force_size < 0 )
 
25
+      force_size = (offset - 1) / DVD_VIDEO_LB_LEN + 1;
 
26
+    if( dvd_file->filesize < force_size ) {
 
27
+      dvd_file->filesize = force_size;
 
28
+      fprintf(stderr, "libdvdread: Ignored UDF provided size of file.\n");
 
29
+    }
26
30
+  }
27
31
+
28
32
+  if( offset > dvd_file->filesize * DVD_VIDEO_LB_LEN ) {
35
39
 #ifndef HAVE_UINTPTR_T
36
40
 #warning "Assuming that (unsigned long) can hold (void *)"
37
41
 typedef unsigned long uintptr_t;
 
42
@@ -1444,7 +1466,7 @@ ssize_t DVDReadBytes( dvd_file_t *dvd_fi
 
43
   memcpy( data, &(secbuf[ seek_byte ]), byte_size );
 
44
   free( secbuf_start );
 
45
 
 
46
-  dvd_file->seek_pos += byte_size;
 
47
+  DVDFileSeekForce(dvd_file, dvd_file->seek_pos + byte_size, -1);
 
48
   return byte_size;
 
49
 }
 
50
 
38
51
diff -Naurp libdvdread-0.9.7.orig/dvdread/dvd_reader.h libdvdread-0.9.7/dvdread/dvd_reader.h
39
52
--- libdvdread-0.9.7.orig/dvdread/dvd_reader.h  2006-10-06 08:12:31.000000000 +0000
40
 
+++ libdvdread-0.9.7/dvdread/dvd_reader.h       2008-01-12 14:09:28.000000000 +0000
 
53
+++ libdvdread-0.9.7/dvdread/dvd_reader.h       2008-02-22 19:42:28.000000000 +0000
41
54
@@ -240,6 +240,8 @@ ssize_t DVDReadBlocks( dvd_file_t *, int
42
55
  */
43
56
 int DVDFileSeek( dvd_file_t *, int );
49
62
  * on the information files, and may not be used for reading from a VOB.  This
50
63
diff -Naurp libdvdread-0.9.7.orig/dvdread/ifo_read.c libdvdread-0.9.7/dvdread/ifo_read.c
51
64
--- libdvdread-0.9.7.orig/dvdread/ifo_read.c    2006-01-22 12:19:19.000000000 +0000
52
 
+++ libdvdread-0.9.7/dvdread/ifo_read.c 2008-01-12 14:09:28.000000000 +0000
 
65
+++ libdvdread-0.9.7/dvdread/ifo_read.c 2008-02-22 19:42:28.000000000 +0000
53
66
@@ -106,6 +106,10 @@ static inline int DVDFileSeek_( dvd_file
54
67
   return (DVDFileSeek(dvd_file, (int)offset) == (int)offset);
55
68
 }