[Goodies-commits] r5842 - xfburn/trunk/xfburn

David Mohr squisher at xfce.org
Tue Oct 28 07:45:59 CET 2008


Author: squisher
Date: 2008-10-28 06:45:59 +0000 (Tue, 28 Oct 2008)
New Revision: 5842

Modified:
   xfburn/trunk/xfburn/Makefile.am
   xfburn/trunk/xfburn/xfburn-burn-audio-cd-composition-dialog.c
   xfburn/trunk/xfburn/xfburn-global.h
   xfburn/trunk/xfburn/xfburn-perform-burn.c
   xfburn/trunk/xfburn/xfburn-transcoder-basic.c
   xfburn/trunk/xfburn/xfburn-transcoder-gst.c
Log:
Some basic fixes, more debugging output

Modified: xfburn/trunk/xfburn/Makefile.am
===================================================================
--- xfburn/trunk/xfburn/Makefile.am	2008-10-27 20:08:04 UTC (rev 5841)
+++ xfburn/trunk/xfburn/Makefile.am	2008-10-28 06:45:59 UTC (rev 5842)
@@ -93,6 +93,7 @@
 	$(GST_CFLAGS)
 
 xfburn_LDADD = 								\
+        -lm                                                             \
 	$(GTHREAD_LIBS)							\
 	$(LIBBURN_LIBS)							\
 	$(LIBISOFS_LIBS)						\

Modified: xfburn/trunk/xfburn/xfburn-burn-audio-cd-composition-dialog.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-burn-audio-cd-composition-dialog.c	2008-10-27 20:08:04 UTC (rev 5841)
+++ xfburn/trunk/xfburn/xfburn-burn-audio-cd-composition-dialog.c	2008-10-28 06:45:59 UTC (rev 5842)
@@ -441,7 +441,7 @@
 static void 
 thread_burn_prep_and_burn (ThreadBurnCompositionParams * params, struct burn_drive *drive,
                            struct burn_disc *disc, struct burn_session *session, int n_tracks, 
-                           int track_sectors[], struct burn_track **tracks)
+                           int track_sectors[], struct burn_track **tracks, struct burn_source **srcs)
 {
   GtkWidget *dialog_progress = params->dialog_progress;
 
@@ -489,6 +489,8 @@
   burn_drive_set_speed (drive, 0, params->speed);
   burn_write_opts_set_underrun_proof (burn_options, params->burnfree ? 1 : 0);
 
+  // FIXME: perform_burn_write only takes one fifo as an argument right now
+  //xfburn_perform_burn_write (dialog_progress, drive, params->write_mode, burn_options, disc, srcs, track_sectors);
   xfburn_perform_burn_write (dialog_progress, drive, params->write_mode, burn_options, disc, NULL, track_sectors);
 
   burn_write_opts_free (burn_options);
@@ -502,6 +504,7 @@
   struct burn_disc *disc;
   struct burn_session *session;
   struct burn_track **tracks;
+  struct burn_source **srcs;
   int n_tracks;
   int i,j;
   GSList *track_list;
@@ -525,6 +528,7 @@
   n_tracks = g_slist_length (params->tracks);
   track_sectors = g_new (int, n_tracks);
   tracks = g_new (struct burn_track *, n_tracks);
+  srcs = g_new (struct burn_source *, n_tracks);
   trans = xfburn_transcoder_get_global ();
 
   track_list = params->tracks;
@@ -538,6 +542,7 @@
       abort = TRUE;
       break;
     }
+    srcs[i] = atrack->src;
 
     track_sectors[i] = atrack->sectors;
 
@@ -556,7 +561,7 @@
     if (!xfburn_device_grab (params->device, &drive_info)) {
       xfburn_progress_dialog_burning_failed (XFBURN_PROGRESS_DIALOG (dialog_progress), _("Unable to grab drive"));
     } else {
-      thread_burn_prep_and_burn (params, drive_info->drive, disc, session, n_tracks, track_sectors, tracks);
+      thread_burn_prep_and_burn (params, drive_info->drive, disc, session, n_tracks, track_sectors, tracks, srcs);
       burn_drive_release (drive_info->drive, params->eject ? 1 : 0);
     }
   }
@@ -566,6 +571,7 @@
   for (j=0; j<i; j++) {
     burn_track_free (tracks[j]);
   }
+  g_free (srcs);
   g_free (tracks);
   g_free (track_sectors);
 

Modified: xfburn/trunk/xfburn/xfburn-global.h
===================================================================
--- xfburn/trunk/xfburn/xfburn-global.h	2008-10-27 20:08:04 UTC (rev 5841)
+++ xfburn/trunk/xfburn/xfburn-global.h	2008-10-28 06:45:59 UTC (rev 5842)
@@ -44,7 +44,7 @@
 
 #define FIFO_DEFAULT_SIZE  4096    /* in kb, as int */
 
-#define AUDIO_BYTES_PER_SECTORS 2352
+#define AUDIO_BYTES_PER_SECTOR 2352
 
 #define PCM_BYTES_PER_SECS 176400
 

Modified: xfburn/trunk/xfburn/xfburn-perform-burn.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-perform-burn.c	2008-10-27 20:08:04 UTC (rev 5841)
+++ xfburn/trunk/xfburn/xfburn-perform-burn.c	2008-10-28 06:45:59 UTC (rev 5842)
@@ -155,10 +155,11 @@
 
 	//percent = 1.0 + ((gdouble) progress.sector+1.0) / ((gdouble) progress.sectors) * 98.0;
 	percent = 1.0 + ((gdouble) progress.sector + burned_sectors + 1.0) / ((gdouble) total_sectors) * 98.0;
+
+        //if ((dbg_no % 16) == 0) {
+        //  DBG ("progress = %f", percent);
+          DBG ("track = %d\tsector %d/%d", progress.track, progress.sector, progress.sectors);
         /*
-        if ((dbg_no % 16) == 0) {
-          DBG ("progress = %f", percent);
-          DBG ("track = %d\tsector %d/%d", progress.track, progress.sector, progress.sectors);
         }
         */
 	xfburn_progress_dialog_set_progress_bar_fraction (XFBURN_PROGRESS_DIALOG (dialog_progress), percent / 100.0);
@@ -274,6 +275,8 @@
     final_message = g_strdup_printf ("%s: %s", final_status_text, msg_text);
   }
 
+  DBG ("Final burning status: %s", final_message);
+
   /* restore default signal handlers */
   burn_set_signal_handling (NULL, NULL, 1);
 

Modified: xfburn/trunk/xfburn/xfburn-transcoder-basic.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-transcoder-basic.c	2008-10-27 20:08:04 UTC (rev 5841)
+++ xfburn/trunk/xfburn/xfburn-transcoder-basic.c	2008-10-28 06:45:59 UTC (rev 5842)
@@ -196,8 +196,8 @@
   atrack->inputfile = g_strdup (fn);
   atrack->pos = -1;
   atrack->length = (s.st_size - 44) / PCM_BYTES_PER_SECS;
-  atrack->sectors = (s.st_size / AUDIO_BYTES_PER_SECTORS);
-  if (s.st_size % AUDIO_BYTES_PER_SECTORS > 0)
+  atrack->sectors = (s.st_size / AUDIO_BYTES_PER_SECTOR);
+  if (s.st_size % AUDIO_BYTES_PER_SECTOR > 0)
     atrack->sectors++;
 
   return atrack;

Modified: xfburn/trunk/xfburn/xfburn-transcoder-gst.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-transcoder-gst.c	2008-10-27 20:08:04 UTC (rev 5841)
+++ xfburn/trunk/xfburn/xfburn-transcoder-gst.c	2008-10-28 06:45:59 UTC (rev 5842)
@@ -32,6 +32,7 @@
 #include <sys/stat.h>
 #include <unistd.h>
 #include <fcntl.h>
+#include <math.h>
 
 #include <errno.h>
 
@@ -110,7 +111,7 @@
   off_t size;
 } XfburnAudioTrackGst;
 
-#define SIGNAL_WAIT_TIMEOUT_MICROS 600000
+#define SIGNAL_WAIT_TIMEOUT_MICROS 1000000
 
 #define SIGNAL_SEND_ITERATIONS 10
 #define SIGNAL_SEND_TIMEOUT_MICROS 400000
@@ -340,6 +341,7 @@
       if (!transcode_next_track (trans, &error)) {
         g_warning ("Error while switching track: %s", error->message);
         g_error_free (error);
+        /* FIXME: abort here? */
       }
 
       break;
@@ -551,9 +553,9 @@
   atrack->pos = -1;
   atrack->length = priv->duration / 1000000000;
 
-  size = (priv->duration / (float) 1000000000) * (float) PCM_BYTES_PER_SECS;
-  atrack->sectors = size / AUDIO_BYTES_PER_SECTORS;
-  if (size % AUDIO_BYTES_PER_SECTORS > 0)
+  size = (off_t) floorf (priv->duration * (PCM_BYTES_PER_SECS / (float) 1000000000));
+  atrack->sectors = size / AUDIO_BYTES_PER_SECTOR;
+  if (size % AUDIO_BYTES_PER_SECTOR > 0)
     atrack->sectors++;
   DBG ("Track length = %d secs => size = %.0f bytes => %d sectors", atrack->length, (float) size, atrack->sectors);
 
@@ -578,6 +580,7 @@
   XfburnAudioTrackGst *gtrack = XFBURN_AUDIO_TRACK_GET_GST (atrack);
   int pipe_fd[2];
   struct burn_source *src_fifo;
+  int pad;
 
   if (pipe (pipe_fd) != 0) {
     g_set_error (error, XFBURN_ERROR, XFBURN_ERROR_PIPE, g_strerror (errno));
@@ -600,7 +603,7 @@
   
   /* install fifo,
     * its size will be a bit bigger in audio mode but that shouldn't matter */
-  src_fifo = burn_fifo_source_new (atrack->src, AUDIO_BYTES_PER_SECTORS, xfburn_settings_get_int ("fifo-size", FIFO_DEFAULT_SIZE) / 2, 0);
+  src_fifo = burn_fifo_source_new (atrack->src, AUDIO_BYTES_PER_SECTOR, xfburn_settings_get_int ("fifo-size", FIFO_DEFAULT_SIZE) / 2, 0);
   burn_source_free (atrack->src);
   atrack->src = src_fifo;
 
@@ -631,6 +634,10 @@
 
   //burn_track_set_byte_swap (track, TRUE);
 
+  pad = atrack->sectors * AUDIO_BYTES_PER_SECTOR - gtrack->size;
+
+  /* FIXME: we try to pad manually, but still set pad just in case? Is that harmful? */
+  //burn_track_define_data (track, 0, pad, 0, BURN_AUDIO);
   burn_track_define_data (track, 0, 0, 1, BURN_AUDIO);
 
   priv->tracks = g_slist_prepend (priv->tracks, atrack);




More information about the Goodies-commits mailing list