Package: nautilus-cd-burner
Version: 2.18.1-1

When I try to copy an audio CD using the "Copy Disc..." menu entry
(from the context menu of the audio disc's dektop icon), the resulting
copy contains just white noise.

The reason is that nautilus-cd-burner correctly identifies the CD as audio
and copies it to an image file (using cdrdao), but then "forgets" this
information and burns it as if it where a data image (using cdrecord/wodim).

The tell-tale sign is that create_track_from_device() in src/ncb-operation.c
never looks at the image_type returned from nautilus_burn_iso_make_from_info
and unconditionally creates a track via create_iso_rack().

Suggested patch below (the actual fix is the second hunk, the other two
hunks just move create_cue_track() up in the file, otherwise you'd need
a forward declaration).

Cheers, Roderich

--- nautilus-cd-burner-2.18.1-ORIG/src/ncb-operation.c  2007-04-28
19:43:21.000000000 +0200
+++ nautilus-cd-burner-2.18.1/src/ncb-operation.c       2007-04-28
20:10:48.000000000 +0200
@@ -1108,6 +1108,18 @@
}

static NautilusBurnRecorderTrack *
+create_cue_track (const char *filename)
+{
+       NautilusBurnRecorderTrack *track;
+
+       track = g_new0 (NautilusBurnRecorderTrack, 1);
+       track->type = NAUTILUS_BURN_RECORDER_TRACK_TYPE_CUE;
+       track->contents.cue.filename = g_strdup (filename);
+
+       return track;
+}
+
+static NautilusBurnRecorderTrack *
create_track_from_device (NcbOperation *operation,
                         const char   *source_name,
                         GError      **error)
@@ -1211,7 +1223,19 @@
       }

       /* track takes ownership of file */
+       switch (image_type) {
+           case NAUTILUS_BURN_IMAGE_TYPE_BINCUE:
+               track = create_cue_track (toc_filename);
+               break;
+
+           case NAUTILUS_BURN_IMAGE_TYPE_ISO9660:
       track = create_iso_track (filename);
+               break;
+
+           default:
+               g_assert_not_reached ();
+               break;
+       }

 done:

@@ -1424,18 +1448,6 @@
       }
}

-static NautilusBurnRecorderTrack *
-create_cue_track (const char *filename)
-{
-       NautilusBurnRecorderTrack *track;
-
-       track = g_new0 (NautilusBurnRecorderTrack, 1);
-       track->type = NAUTILUS_BURN_RECORDER_TRACK_TYPE_CUE;
-       track->contents.cue.filename = g_strdup (filename);
-
-       return track;
-}
-
static gboolean
prepare_tracks (NcbOperation *operation)
{


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to