diff -u -p -r1.17 rb-encoder-gst.c --- backends/gstreamer/rb-encoder-gst.c 27 Jul 2006 07:45:07 -0000 1.17 +++ backends/gstreamer/rb-encoder-gst.c 11 Aug 2006 13:12:40 -0000 @@ -764,6 +764,17 @@ copy_track (RBEncoderGst *encoder, return TRUE; } +static void +transport_error_cb (GstElement *elem, gint sector, RBEncoderGst *encoder) +{ + rb_debug ("transport error on sector %d", sector); +} +static void +uncorrected_error_cb (GstElement *elem, gint sector, RBEncoderGst *encoder) +{ + rb_debug ("uncorrected read error (skip) on sector %d", sector); +} + static gboolean extract_track (RBEncoderGst *encoder, RhythmDBEntry *entry, @@ -807,6 +818,18 @@ extract_track (RBEncoderGst *encoder, paranoia_mode = 255; /* TODO: make configurable */ g_object_set (G_OBJECT (src), "paranoia-mode", paranoia_mode, NULL); + } + if (g_object_class_find_property (G_OBJECT_GET_CLASS (src), "search-overlap")) { + int search_overlap; + + search_overlap = 75; /* TODO: make configurable */ + g_object_set (G_OBJECT (src), "search-overlap", search_overlap, NULL); + } + if (g_signal_lookup ("transport-error", G_OBJECT_TYPE (src))) { + g_signal_connect_object (src, "transport-error", (GCallback)transport_error_cb, encoder, 0); + } + if (g_signal_lookup ("uncorrected-error", G_OBJECT_TYPE (src))) { + g_signal_connect_object (src, "uncorrected-error", (GCallback)uncorrected_error_cb, encoder, 0); } g_free (uri);