[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