From: <wt...@fr...> - 2005-08-30 19:30:13
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: wtay Date: Tue Aug 30 2005 12:30:11 PDT Log message: * gst/base/gstadapter.c: (gst_adapter_flush): Flushing out 0 bytes is ok for this function. * gst/base/gstbasesink.c: (gst_base_sink_handle_object): no newsegment gives a warning and sets the start/stop to invalid. * gst/base/gstbasetransform.c: (gst_base_transform_change_state), (gst_base_transform_set_passthrough): Some debug info. * gst/gstminiobject.c: (gst_mini_object_ref): Check refcount here too. * gst/gstpad.c: (gst_pad_init): Pads are initially flushing and refusing data. * gst/gstutils.c: (gst_element_link_pads_filtered): When adding a capsfilter element make sure it has the same state as the parent bin. Modified files: . : ChangeLog gst : gstminiobject.c gstpad.c gstutils.c gst/base : gstadapter.c gstbasesink.c gstbasetransform.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.1426&r2=1.1427 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstminiobject.c.diff?r1=1.9&r2=1.10 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstpad.c.diff?r1=1.432&r2=1.433 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/gstutils.c.diff?r1=1.77&r2=1.78 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/base/gstadapter.c.diff?r1=1.5&r2=1.6 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/base/gstbasesink.c.diff?r1=1.47&r2=1.48 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/base/gstbasetransform.c.diff?r1=1.31&r2=1.32 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.1426 retrieving revision 1.1427 diff -u -d -r1.1426 -r1.1427 --- ChangeLog 30 Aug 2005 17:23:18 -0000 1.1426 +++ ChangeLog 30 Aug 2005 19:29:58 -0000 1.1427 @@ -1,3 +1,26 @@ +2005-08-30 Wim Taymans <wi...@fl...> + + * gst/base/gstadapter.c: (gst_adapter_flush): + Flushing out 0 bytes is ok for this function. + * gst/base/gstbasesink.c: (gst_base_sink_handle_object): + no newsegment gives a warning and sets the start/stop to + invalid. + * gst/base/gstbasetransform.c: (gst_base_transform_change_state), + (gst_base_transform_set_passthrough): + Some debug info. + * gst/gstminiobject.c: (gst_mini_object_ref): + Check refcount here too. + * gst/gstpad.c: (gst_pad_init): + Pads are initially flushing and refusing data. + * gst/gstutils.c: (gst_element_link_pads_filtered): + When adding a capsfilter element make sure it has the + same state as the parent bin. 2005-08-30 Stefan Kost <en...@us...> * docs/gst/tmpl/.cvsignore: Index: gstminiobject.c RCS file: /cvs/gstreamer/gstreamer/gst/gstminiobject.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- gstminiobject.c 20 Aug 2005 12:14:28 -0000 1.9 +++ gstminiobject.c 30 Aug 2005 19:29:58 -0000 1.10 @@ -190,6 +190,7 @@ gst_mini_object_ref (GstMiniObject * mini_object) { g_return_val_if_fail (mini_object != NULL, NULL); + g_return_val_if_fail (mini_object->refcount > 0, NULL); #ifdef DEBUG_REFCOUNT GST_CAT_LOG (GST_CAT_REFCOUNTING, "%p ref %d->%d", Index: gstpad.c RCS file: /cvs/gstreamer/gstreamer/gst/gstpad.c,v retrieving revision 1.432 retrieving revision 1.433 diff -u -d -r1.432 -r1.433 --- gstpad.c 26 Aug 2005 11:19:22 -0000 1.432 +++ gstpad.c 30 Aug 2005 19:29:58 -0000 1.433 @@ -247,7 +247,7 @@ pad->do_buffer_signals = 0; pad->do_event_signals = 0; - GST_PAD_UNSET_FLUSHING (pad); + GST_PAD_SET_FLUSHING (pad); pad->preroll_lock = g_mutex_new (); pad->preroll_cond = g_cond_new (); Index: gstutils.c RCS file: /cvs/gstreamer/gstreamer/gst/gstutils.c,v retrieving revision 1.77 retrieving revision 1.78 diff -u -d -r1.77 -r1.78 --- gstutils.c 29 Aug 2005 16:10:36 -0000 1.77 +++ gstutils.c 30 Aug 2005 19:29:58 -0000 1.78 @@ -1272,6 +1272,8 @@ if (filter) { GstElement *capsfilter; GstObject *parent; + GstElementState state, pending; + GTimeVal tv; capsfilter = gst_element_factory_make ("capsfilter", NULL); if (!capsfilter) { @@ -1282,6 +1284,9 @@ parent = gst_object_get_parent (GST_OBJECT (src)); g_return_val_if_fail (GST_IS_BIN (parent), FALSE); + GST_TIME_TO_TIMEVAL (0, tv); + gst_element_get_state (GST_ELEMENT_CAST (parent), &state, &pending, &tv); if (!gst_bin_add (GST_BIN (parent), capsfilter)) { GST_ERROR ("Could not add capsfilter"); gst_object_unref (capsfilter); @@ -1289,6 +1294,11 @@ return FALSE; } + if (pending != GST_STATE_VOID_PENDING) + state = pending; + gst_element_set_state (capsfilter, state); gst_object_unref (parent); g_object_set (capsfilter, "filter-caps", filter, NULL); Index: gstadapter.c RCS file: /cvs/gstreamer/gstreamer/gst/base/gstadapter.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- gstadapter.c 28 Aug 2005 17:45:58 -0000 1.5 +++ gstadapter.c 30 Aug 2005 19:29:59 -0000 1.6 @@ -236,7 +236,7 @@ GstBuffer *cur; g_return_if_fail (GST_IS_ADAPTER (adapter)); - g_return_if_fail (flush > 0); + g_return_if_fail (flush >= 0); g_return_if_fail (flush <= adapter->size); GST_LOG_OBJECT (adapter, "flushing %u bytes", flush); Index: gstbasesink.c RCS file: /cvs/gstreamer/gstreamer/gst/base/gstbasesink.c,v retrieving revision 1.47 retrieving revision 1.48 diff -u -d -r1.47 -r1.48 --- gstbasesink.c 26 Aug 2005 14:21:42 -0000 1.47 +++ gstbasesink.c 30 Aug 2005 19:29:59 -0000 1.48 @@ -483,13 +483,13 @@ GstBuffer *buf = GST_BUFFER (obj); if (!basesink->have_newsegment) { - GST_ELEMENT_ERROR (basesink, STREAM, STOPPED, + GST_ELEMENT_WARNING (basesink, STREAM, STOPPED, ("Received buffer without a new-segment. Cannot sync to clock."), ("Received buffer without a new-segment. Cannot sync to clock.")); basesink->have_newsegment = TRUE; /* this means this sink will not be able to sync to the clock */ - basesink->segment_start = 0; - basesink->segment_stop = 0; + basesink->segment_start = -1; + basesink->segment_stop = -1; /* check if the buffer needs to be dropped */ Index: gstbasetransform.c RCS file: /cvs/gstreamer/gstreamer/gst/base/gstbasetransform.c,v retrieving revision 1.31 retrieving revision 1.32 diff -u -d -r1.31 -r1.32 --- gstbasetransform.c 26 Aug 2005 21:23:51 -0000 1.31 +++ gstbasetransform.c 30 Aug 2005 19:29:59 -0000 1.32 @@ -1046,6 +1046,7 @@ GST_PAD_CAPS (trans->srcpad)) || trans->passthrough; else trans->in_place = trans->passthrough; + GST_DEBUG_OBJECT (trans, "in_place %d", trans->in_place); gst_caps_replace (&trans->cache_caps1, NULL); gst_caps_replace (&trans->cache_caps2, NULL); GST_UNLOCK (trans); @@ -1090,6 +1091,8 @@ g_return_if_fail (trans != NULL); + GST_DEBUG_OBJECT (trans, "setting passthrough %d", passthrough); GST_LOCK (trans); trans->passthrough = passthrough; GST_UNLOCK (trans); |