brasero r609 - in branches/brasero_0_7: . src
- From: philippr svn gnome org
- To: svn-commits-list gnome org
- Subject: brasero r609 - in branches/brasero_0_7: . src
- Date: Sun, 20 Jan 2008 20:10:59 +0000 (GMT)
Author: philippr
Date: Sun Jan 20 20:10:58 2008
New Revision: 609
URL: http://svn.gnome.org/viewvc/brasero?rev=609&view=rev
Log:
Added support for ISO level 3 in session importing (= support multi extent files)
* src/burn-iso-field.c: (brasero_iso9660_get_733_val):
* src/burn-iso-field.h:
* src/burn-iso9660.c: (brasero_iso9660_read_directory_records):
* src/burn-volume.h:
Modified:
branches/brasero_0_7/ChangeLog
branches/brasero_0_7/src/burn-iso-field.c
branches/brasero_0_7/src/burn-iso-field.h
branches/brasero_0_7/src/burn-iso9660.c
branches/brasero_0_7/src/burn-volume.h
Modified: branches/brasero_0_7/src/burn-iso-field.c
==============================================================================
--- branches/brasero_0_7/src/burn-iso-field.c (original)
+++ branches/brasero_0_7/src/burn-iso-field.c Sun Jan 20 20:10:58 2008
@@ -26,12 +26,12 @@
#include "burn-iso-field.h"
-gint32
+guint32
brasero_iso9660_get_733_val (guchar *buffer)
{
- gint32 *ptr;
+ guint32 *ptr;
- ptr = (gint32*) buffer;
+ ptr = (guint32*) buffer;
return GINT32_FROM_LE (*ptr);
}
Modified: branches/brasero_0_7/src/burn-iso-field.h
==============================================================================
--- branches/brasero_0_7/src/burn-iso-field.h (original)
+++ branches/brasero_0_7/src/burn-iso-field.h Sun Jan 20 20:10:58 2008
@@ -32,7 +32,7 @@
{
#endif
-gint32
+guint32
brasero_iso9660_get_733_val (guchar *buffer);
#ifdef __cplusplus
Modified: branches/brasero_0_7/src/burn-iso9660.c
==============================================================================
--- branches/brasero_0_7/src/burn-iso9660.c (original)
+++ branches/brasero_0_7/src/burn-iso9660.c Sun Jan 20 20:10:58 2008
@@ -524,6 +524,22 @@
goto error;
entry->parent = parent;
+
+ /* check that we don't have another file record for the
+ * same file (usually files > 4G). It always follows
+ * its sibling */
+ if (parent->specific.dir.children) {
+ BraseroVolFile *last;
+
+ last = parent->specific.dir.children->data;
+ if (!last->isdir && !strcmp (BRASERO_VOLUME_FILE_NAME (last), BRASERO_VOLUME_FILE_NAME (entry))) {
+ last->specific.file.size_bytes += entry->specific.file.size_bytes;
+ ctx->data_blocks += ISO9660_BYTES_TO_BLOCKS (entry->specific.file.size_bytes);
+ brasero_volume_file_free (entry);
+ BRASERO_BURN_LOG ("Multi extent file");
+ continue;
+ }
+ }
parent->specific.dir.children = g_list_prepend (parent->specific.dir.children, entry);
ctx->data_blocks += ISO9660_BYTES_TO_BLOCKS (entry->specific.file.size_bytes);
}
Modified: branches/brasero_0_7/src/burn-volume.h
==============================================================================
--- branches/brasero_0_7/src/burn-volume.h (original)
+++ branches/brasero_0_7/src/burn-volume.h Sun Jan 20 20:10:58 2008
@@ -47,7 +47,7 @@
struct {
gint address_block;
- gint size_bytes;
+ guint64 size_bytes;
} file;
struct {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]