diff --git a/ChangeLog b/ChangeLog index f0676ce173..226e73911a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,43 @@ +2005-03-04 Jan Schmidt + + * gst/elements/gstfilesrc.c: (gst_filesrc_get): + If we checked the file size and it got bigger, don't + EOS anyway. + + * gst/gst.c: (gst_init_check_with_popt_table), (init_pre): + Don't parse the GST_DEBUG env var list twice (once in the + init_pre and then again in the init_check). + Add GST_DEBUGNOCOLOR env variable. + + * gst/gstclock.c: (gst_clock_id_wait), (gst_clock_set_speed), + (gst_clock_get_speed), (gst_clock_set_active), + (gst_clock_is_active), (gst_clock_reset), + (gst_clock_get_event_time_delay): + Make all clock debug in the GST_CAT_CLOCK category. + Add a little extra detail. + + * gst/gstelement.c: (gst_element_wait): + Remove extra ' ' in a debug format string. + + * gst/gstpad.c: (gst_pad_set_explicit_caps), (gst_pad_pull): + Better debug message when setting explicit caps on an unlinked pad. + Return INTERRUPT event if the peer is unlinked when restarting + during a pad_pull. + +2005-03-04 Jan Schmidt + + * docs/gst/gstreamer-sections.txt: + * docs/gst/tmpl/gstevent.sgml: + * gst/gstevent.c: (gst_event_new): + * gst/gstevent.h: + Add GST_EVENT_COMMON_FLAG_NEED_RESPONSE flag (TRUE by default) + to indicate whether a reply is expected to an upstream event. + + * gst/gstqueue.c: (gst_queue_finalize), + (gst_queue_handle_pending_events), (gst_queue_handle_src_event): + If GST_EVENT_COMMON_FLAG_NEED_RESPONSE is not set, just queue the + event without blocking on a reply. + 2005-03-03 Ronald S. Bultje * gst/gstqueue.c: (gst_queue_chain): diff --git a/gst/elements/gstfilesrc.c b/gst/elements/gstfilesrc.c index 2a21eb6da0..a67f9c4e19 100644 --- a/gst/elements/gstfilesrc.c +++ b/gst/elements/gstfilesrc.c @@ -720,10 +720,9 @@ gst_filesrc_get (GstPad * pad) if (!gst_filesrc_check_filesize (src) || src->curoffset >= src->filelen) { GST_DEBUG_OBJECT (src, "eos %" G_GINT64_FORMAT " %" G_GINT64_FORMAT, src->curoffset, src->filelen); + gst_element_set_eos (GST_ELEMENT (src)); + return GST_DATA (gst_event_new (GST_EVENT_EOS)); } - gst_element_set_eos (GST_ELEMENT (src)); - return GST_DATA (gst_event_new (GST_EVENT_EOS)); - } } #ifdef HAVE_MMAP diff --git a/gst/gst.c b/gst/gst.c index e4becd9986..e7775eee7d 100644 --- a/gst/gst.c +++ b/gst/gst.c @@ -312,7 +312,6 @@ gst_init_check_with_popt_table (int *argc, char **argv[], poptContext context; gint nextopt; GstPoptOption *options; - const gchar *gst_debug_env = NULL; GstPoptOption options_with[] = { {NULL, NUL, POPT_ARG_INCLUDE_TABLE, poptHelpOptions, 0, "Help options:", @@ -357,11 +356,6 @@ gst_init_check_with_popt_table (int *argc, char **argv[], context = poptGetContext ("GStreamer", *argc, (const char **) *argv, options, 0); - /* check for GST_DEBUG environment variable */ - gst_debug_env = g_getenv ("GST_DEBUG"); - if (gst_debug_env) - parse_debug_list (gst_debug_env); - /* Scan until we reach the end (-1), ignoring errors */ while ((nextopt = poptGetNextOpt (context)) != -1) { @@ -475,16 +469,19 @@ init_pre (void) bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); #endif /* ENABLE_NLS */ -#ifndef GST_DISABLE_REGISTRY { const gchar *debug_list; debug_list = g_getenv ("GST_DEBUG"); if (debug_list) { parse_debug_list (debug_list); + + if (g_getenv ("GST_DEBUGNOCOLOR")) + gst_debug_set_colored (FALSE); + } } -#endif + /* This is the earliest we can make stuff show up in the logs. * So give some useful info about GStreamer here */ GST_INFO ("Initializing GStreamer Core Library version %s", VERSION); diff --git a/gst/gstclock.c b/gst/gstclock.c index 1552d6617d..7ff7856bae 100644 --- a/gst/gstclock.c +++ b/gst/gstclock.c @@ -184,7 +184,8 @@ gst_clock_id_wait (GstClockID id, GstClockTimeDiff * jitter) clock->entries = g_list_prepend (clock->entries, entry); GST_UNLOCK (clock); - GST_CAT_DEBUG (GST_CAT_CLOCK, "waiting on clock"); + GST_CAT_DEBUG (GST_CAT_CLOCK, "waiting on clock for time %" GST_TIME_FORMAT, + GST_TIME_ARGS (requested)); do { res = cclass->wait (clock, entry); } @@ -434,7 +435,7 @@ gst_clock_set_speed (GstClock * clock, gdouble speed) { g_return_val_if_fail (GST_IS_CLOCK (clock), 0.0); - GST_WARNING_OBJECT (clock, "called deprecated function"); + GST_CAT_WARNING_OBJECT (GST_CAT_CLOCK, clock, "called deprecated function"); return 1.0; } @@ -451,7 +452,7 @@ gst_clock_get_speed (GstClock * clock) { g_return_val_if_fail (GST_IS_CLOCK (clock), 0.0); - GST_WARNING_OBJECT (clock, "called deprecated function"); + GST_CAT_WARNING_OBJECT (GST_CAT_CLOCK, clock, "called deprecated function"); return 1.0; } @@ -517,7 +518,8 @@ gst_clock_set_active (GstClock * clock, gboolean active) { g_return_if_fail (GST_IS_CLOCK (clock)); - GST_ERROR_OBJECT (clock, "called deprecated function that does nothing now."); + GST_CAT_ERROR_OBJECT (GST_CAT_CLOCK, clock, + "called deprecated function that does nothing now."); return; } @@ -535,7 +537,7 @@ gst_clock_is_active (GstClock * clock) { g_return_val_if_fail (GST_IS_CLOCK (clock), FALSE); - GST_WARNING_OBJECT (clock, "called deprecated function."); + GST_CAT_WARNING_OBJECT (GST_CAT_CLOCK, clock, "called deprecated function."); return TRUE; } @@ -554,7 +556,7 @@ gst_clock_reset (GstClock * clock) g_return_if_fail (GST_IS_CLOCK (clock)); - GST_ERROR_OBJECT (clock, "called deprecated function."); + GST_CAT_ERROR_OBJECT (GST_CAT_CLOCK, clock, "called deprecated function."); cclass = GST_CLOCK_GET_CLASS (clock); @@ -665,12 +667,12 @@ gst_clock_get_event_time_delay (GstClock * clock, GstClockTime delay) if (ABS (GST_CLOCK_DIFF (clock->last_event, time + delay)) < clock->max_event_diff) { - GST_LOG_OBJECT (clock, "reporting last event time %" G_GUINT64_FORMAT, - clock->last_event); + GST_CAT_LOG_OBJECT (GST_CAT_CLOCK, clock, + "reporting last event time %" G_GUINT64_FORMAT, clock->last_event); } else { clock->last_event = time + delay; - GST_LOG_OBJECT (clock, "reporting new event time %" G_GUINT64_FORMAT, - clock->last_event); + GST_CAT_LOG_OBJECT (GST_CAT_CLOCK, clock, + "reporting new event time %" G_GUINT64_FORMAT, clock->last_event); } return clock->last_event; diff --git a/gst/gstelement.c b/gst/gstelement.c index f9b1e2b5f7..f9b9c59d30 100644 --- a/gst/gstelement.c +++ b/gst/gstelement.c @@ -938,7 +938,7 @@ gst_element_wait (GstElement * element, GstClockTime timestamp) GST_TIME_ARGS (time)); if (time >= timestamp) { GST_CAT_INFO_OBJECT (GST_CAT_CLOCK, element, - "called gst_element_wait (% " GST_TIME_FORMAT ") and was late (%" + "called gst_element_wait (%" GST_TIME_FORMAT ") and was late (%" GST_TIME_FORMAT, GST_TIME_ARGS (timestamp), GST_TIME_ARGS (gst_element_get_time (element))); return TRUE; diff --git a/gst/gstpad.c b/gst/gstpad.c index c7ce568b10..de3310ff87 100644 --- a/gst/gstpad.c +++ b/gst/gstpad.c @@ -2551,7 +2551,8 @@ gst_pad_set_explicit_caps (GstPad * pad, const GstCaps * caps) gst_caps_replace (&GST_RPAD_EXPLICIT_CAPS (pad), gst_caps_copy (caps)); if (!GST_PAD_IS_LINKED (pad)) { - GST_CAT_DEBUG (GST_CAT_PADS, "pad is not linked"); + GST_CAT_DEBUG (GST_CAT_PADS, "pad %s:%s is not linked", + GST_DEBUG_PAD_NAME (pad)); return TRUE; } link_ret = gst_pad_try_set_caps (pad, caps); @@ -3357,6 +3358,10 @@ gst_pad_pull (GstPad * pad) /* refetch - we might have been relinked */ link = GST_RPAD_LINK (pad); peer = GST_RPAD_PEER (pad); + if (!peer) { + /* Our peer disa-peer-ed ;) */ + goto int_out; + } } if (data) { @@ -3396,8 +3401,10 @@ gst_pad_pull (GstPad * pad) GST_DEBUG_PAD_NAME (pad), GST_DEBUG_PAD_NAME (peer))); } } + +int_out: data = GST_DATA (gst_event_new (GST_EVENT_INTERRUPT)); - DEBUG_DATA (pad, data, "gst_pad_pull returned created"); + DEBUG_DATA (pad, data, "gst_pad_pull returning INTERRUPT"); return data; } diff --git a/plugins/elements/gstfilesrc.c b/plugins/elements/gstfilesrc.c index 2a21eb6da0..a67f9c4e19 100644 --- a/plugins/elements/gstfilesrc.c +++ b/plugins/elements/gstfilesrc.c @@ -720,10 +720,9 @@ gst_filesrc_get (GstPad * pad) if (!gst_filesrc_check_filesize (src) || src->curoffset >= src->filelen) { GST_DEBUG_OBJECT (src, "eos %" G_GINT64_FORMAT " %" G_GINT64_FORMAT, src->curoffset, src->filelen); + gst_element_set_eos (GST_ELEMENT (src)); + return GST_DATA (gst_event_new (GST_EVENT_EOS)); } - gst_element_set_eos (GST_ELEMENT (src)); - return GST_DATA (gst_event_new (GST_EVENT_EOS)); - } } #ifdef HAVE_MMAP