From: <rb...@fr...> - 2005-07-27 17:12:46
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: rbultje Date: Wed Jul 27 2005 08:05:57 PDT Log message: * gst/base/gstbasetransform.c: (gst_base_transform_getcaps), (gst_base_transform_configure_caps), (gst_base_transform_setcaps), (gst_base_transform_get_size), (gst_base_transform_handle_buffer): Make debugging actually useful. Modified files: . : ChangeLog gst/base : gstbasetransform.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.1304&r2=1.1305 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/base/gstbasetransform.c.diff?r1=1.15&r2=1.16 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.1304 retrieving revision 1.1305 diff -u -d -r1.1304 -r1.1305 --- ChangeLog 25 Jul 2005 12:31:08 -0000 1.1304 +++ ChangeLog 27 Jul 2005 15:05:45 -0000 1.1305 @@ -1,3 +1,10 @@ +2005-07-27 Ronald S. Bultje <rb...@ro...> + + * gst/base/gstbasetransform.c: (gst_base_transform_getcaps), + (gst_base_transform_configure_caps), (gst_base_transform_setcaps), + (gst_base_transform_get_size), (gst_base_transform_handle_buffer): + Make debugging actually useful. 2005-07-25 Ronald S. Bultje <rb...@ro...> * gst/gstpad.c: (fixate_value), (gst_pad_default_fixate), Index: gstbasetransform.c RCS file: /cvs/gstreamer/gstreamer/gst/base/gstbasetransform.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- gstbasetransform.c 18 Jul 2005 08:28:47 -0000 1.15 +++ gstbasetransform.c 27 Jul 2005 15:05:45 -0000 1.16 @@ -241,26 +241,26 @@ GstCaps *temp; const GstCaps *templ; - GST_DEBUG ("peer caps %" GST_PTR_FORMAT, caps); + GST_DEBUG_OBJECT (trans, "peer caps %" GST_PTR_FORMAT, caps); /* filtered against our padtemplate */ templ = gst_pad_get_pad_template_caps (otherpad); - GST_DEBUG ("our template %" GST_PTR_FORMAT, templ); + GST_DEBUG_OBJECT (trans, "our template %" GST_PTR_FORMAT, templ); temp = gst_caps_intersect (caps, templ); - GST_DEBUG ("intersected %" GST_PTR_FORMAT, temp); + GST_DEBUG_OBJECT (trans, "intersected %" GST_PTR_FORMAT, temp); gst_caps_unref (caps); /* then see what we can tranform this to */ caps = gst_base_transform_transform_caps (trans, otherpad, temp); - GST_DEBUG ("transformed %" GST_PTR_FORMAT, caps); + GST_DEBUG_OBJECT (trans, "transformed %" GST_PTR_FORMAT, caps); gst_caps_unref (temp); if (caps == NULL) goto done; /* and filter against the template again */ templ = gst_pad_get_pad_template_caps (pad); /* this is what we can do */ caps = temp; @@ -270,7 +270,7 @@ } done: - GST_DEBUG ("returning %" GST_PTR_FORMAT, caps); + GST_DEBUG_OBJECT (trans, "returning %" GST_PTR_FORMAT, caps); gst_object_unref (trans); @@ -294,7 +294,7 @@ /* if all goes well, get the size of the output buffer */ if (ret) { trans->out_size = gst_base_transform_get_size (trans); - GST_DEBUG ("output buffer size %d", trans->out_size); + GST_DEBUG_OBJECT (trans, "output buffer size %d", trans->out_size); return ret; } @@ -329,21 +329,23 @@ if (!gst_caps_is_fixed (othercaps)) { - GST_DEBUG ("transform returned non fixed %" GST_PTR_FORMAT, othercaps); + GST_DEBUG_OBJECT (trans, + "transform returned non fixed %" GST_PTR_FORMAT, othercaps); temp = gst_caps_intersect (othercaps, caps); - GST_DEBUG ("intersect returned %" GST_PTR_FORMAT, temp); + GST_DEBUG_OBJECT (trans, "intersect returned %" GST_PTR_FORMAT, temp); if (temp) { if (!gst_caps_is_empty (temp) && otherpeer) { - GST_DEBUG ("try passthrough with %" GST_PTR_FORMAT, caps); + GST_DEBUG_OBJECT (trans, "try passthrough with %" GST_PTR_FORMAT, caps); /* try passthrough. we know it's fixed, because caps is fixed */ if (gst_pad_accept_caps (otherpeer, caps)) { - GST_DEBUG ("peer accepted %" GST_PTR_FORMAT, caps); + GST_DEBUG_OBJECT (trans, "peer accepted %" GST_PTR_FORMAT, caps); gst_caps_unref (othercaps); othercaps = gst_caps_ref (caps); /* will fall though. calls accept_caps again, should fix that. */ } else { - GST_DEBUG ("peer did not accept %" GST_PTR_FORMAT, caps); + GST_DEBUG_OBJECT (trans, + "peer did not accept %" GST_PTR_FORMAT, caps); } } gst_caps_unref (temp); @@ -355,7 +357,7 @@ GstCaps *peercaps; GstCaps *intersect; - GST_DEBUG ("othercaps now %" GST_PTR_FORMAT, othercaps); + GST_DEBUG_OBJECT (trans, "othercaps now %" GST_PTR_FORMAT, othercaps); peercaps = gst_pad_get_caps (otherpeer); intersect = gst_caps_intersect (peercaps, othercaps); @@ -363,13 +365,15 @@ gst_caps_unref (othercaps); othercaps = intersect; - GST_DEBUG ("filtering against peer yields %" GST_PTR_FORMAT, othercaps); + "filtering against peer yields %" GST_PTR_FORMAT, othercaps); - GST_DEBUG ("othercaps now, trying to fixate %" GST_PTR_FORMAT, othercaps); + "othercaps now, trying to fixate %" GST_PTR_FORMAT, othercaps); /* take first possibility and fixate if necessary */ temp = gst_caps_copy_nth (othercaps, 0); @@ -377,7 +381,7 @@ othercaps = temp; gst_pad_fixate_caps (otherpad, othercaps); - GST_DEBUG ("after fixating %" GST_PTR_FORMAT, othercaps); + GST_DEBUG_OBJECT (trans, "after fixating %" GST_PTR_FORMAT, othercaps); /* caps should be fixed now */ @@ -388,13 +392,13 @@ if (otherpeer && !gst_pad_accept_caps (otherpeer, othercaps)) goto peer_no_accept; - GST_DEBUG ("got final caps %" GST_PTR_FORMAT, othercaps); + GST_DEBUG_OBJECT (trans, "got final caps %" GST_PTR_FORMAT, othercaps); /* we know this will work, we implement the setcaps */ gst_pad_set_caps (otherpad, othercaps); trans->in_place = gst_caps_is_equal (caps, othercaps); - GST_DEBUG ("in_place: %d", trans->in_place); + GST_DEBUG_OBJECT (trans, "in_place: %d", trans->in_place); /* see if we have to configure the element now */ if (!trans->delay_configure) { @@ -417,19 +421,20 @@ /* ERRORS */ no_transform: { - GST_DEBUG ("transform returned useless %" GST_PTR_FORMAT, othercaps); + "transform returned useless %" GST_PTR_FORMAT, othercaps); ret = FALSE; goto done; could_not_fixate: - GST_DEBUG ("FAILED to fixate %" GST_PTR_FORMAT, othercaps); + GST_DEBUG_OBJECT (trans, "FAILED to fixate %" GST_PTR_FORMAT, othercaps); peer_no_accept: - GST_DEBUG ("FAILED to get peer of %" GST_PTR_FORMAT + GST_DEBUG_OBJECT (trans, "FAILED to get peer of %" GST_PTR_FORMAT " to accept %" GST_PTR_FORMAT, otherpad, othercaps); @@ -445,7 +450,7 @@ bclass = GST_BASE_TRANSFORM_GET_CLASS (trans); if (bclass->get_size) { res = bclass->get_size (trans); - GST_DEBUG ("get size function returned %d", res); + GST_DEBUG_OBJECT (trans, "get size function returned %d", res); return res; @@ -595,7 +600,7 @@ no_buffer: gst_buffer_unref (inbuf); - GST_DEBUG ("could not get buffer from pool"); + GST_DEBUG_OBJECT (trans, "could not get buffer from pool"); return ret; |
From: <rb...@fr...> - 2005-07-28 10:38:20
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: rbultje Date: Thu Jul 28 2005 03:38:14 PDT Log message: * gst/base/gstbasetransform.c: (gst_base_transform_setcaps): Better debug if no transform is possible. Modified files: . : ChangeLog gst/base : gstbasetransform.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.1309&r2=1.1310 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/base/gstbasetransform.c.diff?r1=1.17&r2=1.18 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.1309 retrieving revision 1.1310 diff -u -d -r1.1309 -r1.1310 --- ChangeLog 27 Jul 2005 20:22:48 -0000 1.1309 +++ ChangeLog 28 Jul 2005 10:38:02 -0000 1.1310 @@ -1,3 +1,8 @@ +2005-07-28 Ronald S. Bultje <rb...@ro...> + + * gst/base/gstbasetransform.c: (gst_base_transform_setcaps): + Better debug if no transform is possible. 2005-07-27 Wim Taymans <wi...@fl...> * docs/random/wtay/network-transp: Index: gstbasetransform.c RCS file: /cvs/gstreamer/gstreamer/gst/base/gstbasetransform.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- gstbasetransform.c 27 Jul 2005 18:33:02 -0000 1.17 +++ gstbasetransform.c 28 Jul 2005 10:38:02 -0000 1.18 @@ -299,6 +299,7 @@ return ret; } +#include <string.h> static gboolean gst_base_transform_setcaps (GstPad * pad, GstCaps * caps) { @@ -321,7 +322,10 @@ /* see how we can transform the input caps */ othercaps = gst_base_transform_transform_caps (trans, pad, caps); - + if (!strcmp (GST_OBJECT_NAME (trans), "vconv")) { + g_print ("%s transforms into %s\n", + gst_caps_to_string (caps), gst_caps_to_string (othercaps)); + } /* check if transform is empty */ if (!othercaps || gst_caps_is_empty (othercaps)) goto no_transform; @@ -361,6 +365,11 @@ peercaps = gst_pad_get_caps (otherpeer); intersect = gst_caps_intersect (peercaps, othercaps); + if (!strcmp (GST_OBJECT_NAME (trans), "vconv")) { + g_print ("%s -> %s = %s\n", + gst_caps_to_string (peercaps), + gst_caps_to_string (othercaps), gst_caps_to_string (intersect)); + } gst_caps_unref (peercaps); gst_caps_unref (othercaps); othercaps = intersect; @@ -369,6 +378,9 @@ "filtering against peer yields %" GST_PTR_FORMAT, othercaps); } + if (gst_caps_is_empty (othercaps)) + goto no_transform_possible; if (!gst_caps_is_fixed (othercaps)) { GstCaps *temp; @@ -426,6 +438,14 @@ ret = FALSE; goto done; +no_transform_possible: + { + GST_DEBUG_OBJECT (trans, + "transform could not transform %" GST_PTR_FORMAT + " in anything we support", caps); + ret = FALSE; + goto done; could_not_fixate: { GST_DEBUG_OBJECT (trans, "FAILED to fixate %" GST_PTR_FORMAT, othercaps); |
From: <rb...@fr...> - 2005-07-28 11:50:12
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: rbultje Date: Thu Jul 28 2005 04:50:08 PDT Log message: * gst/base/gstbasetransform.c: (gst_base_transform_setcaps), (gst_base_transform_handle_buffer): * gst/base/gstbasetransform.h: Remove broken delay_configure (fixes renegotiation of software scaling pipelines); remove some leftover printf()s. Modified files: . : ChangeLog gst/base : gstbasetransform.c gstbasetransform.h Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.1311&r2=1.1312 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/base/gstbasetransform.c.diff?r1=1.18&r2=1.19 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/base/gstbasetransform.h.diff?r1=1.5&r2=1.6 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.1311 retrieving revision 1.1312 diff -u -d -r1.1311 -r1.1312 --- ChangeLog 28 Jul 2005 11:24:32 -0000 1.1311 +++ ChangeLog 28 Jul 2005 11:49:56 -0000 1.1312 @@ -1,3 +1,11 @@ +2005-07-28 Ronald S. Bultje <rb...@ro...> + + * gst/base/gstbasetransform.c: (gst_base_transform_setcaps), + (gst_base_transform_handle_buffer): + * gst/base/gstbasetransform.h: + Remove broken delay_configure (fixes renegotiation of software + scaling pipelines); remove some leftover printf()s. 2005-07-28 Wim Taymans <wi...@fl...> * check/gst/gstghostpad.c: (GST_START_TEST), (gst_ghost_pad_suite): Index: gstbasetransform.c RCS file: /cvs/gstreamer/gstreamer/gst/base/gstbasetransform.c,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- gstbasetransform.c 28 Jul 2005 10:38:02 -0000 1.18 +++ gstbasetransform.c 28 Jul 2005 11:49:56 -0000 1.19 @@ -299,7 +299,6 @@ return ret; } -#include <string.h> static gboolean gst_base_transform_setcaps (GstPad * pad, GstCaps * caps) { @@ -322,10 +321,7 @@ /* see how we can transform the input caps */ othercaps = gst_base_transform_transform_caps (trans, pad, caps); - if (!strcmp (GST_OBJECT_NAME (trans), "vconv")) { - g_print ("%s transforms into %s\n", - gst_caps_to_string (caps), gst_caps_to_string (othercaps)); - } /* check if transform is empty */ if (!othercaps || gst_caps_is_empty (othercaps)) goto no_transform; @@ -365,11 +361,6 @@ peercaps = gst_pad_get_caps (otherpeer); intersect = gst_caps_intersect (peercaps, othercaps); - if (!strcmp (GST_OBJECT_NAME (trans), "vconv")) { - g_print ("%s -> %s = %s\n", - gst_caps_to_string (peercaps), - gst_caps_to_string (othercaps), gst_caps_to_string (intersect)); - } gst_caps_unref (peercaps); gst_caps_unref (othercaps); othercaps = intersect; @@ -413,12 +404,10 @@ GST_DEBUG_OBJECT (trans, "in_place: %d", trans->in_place); /* see if we have to configure the element now */ - if (!trans->delay_configure) { - if (pad == trans->sinkpad) - ret = gst_base_transform_configure_caps (trans, caps, othercaps); - else - ret = gst_base_transform_configure_caps (trans, othercaps, caps); + if (pad == trans->sinkpad) + ret = gst_base_transform_configure_caps (trans, caps, othercaps); + else + ret = gst_base_transform_configure_caps (trans, othercaps, caps); done: if (otherpeer) @@ -577,18 +566,11 @@ goto no_size; } - /* we cannot reconfigure the element yet as we are still processing - * the old buffer. We will therefore delay the reconfiguration of the - * element until we have processed this last buffer. */ - trans->delay_configure = TRUE; - /* no in place transform, get buffer, this might renegotiate. */ ret = gst_pad_alloc_buffer (trans->srcpad, GST_BUFFER_OFFSET (inbuf), trans->out_size, GST_PAD_CAPS (trans->srcpad), outbuf); - trans->delay_configure = FALSE; if (ret != GST_FLOW_OK) goto no_buffer; Index: gstbasetransform.h RCS file: /cvs/gstreamer/gstreamer/gst/base/gstbasetransform.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- gstbasetransform.h 15 Jul 2005 10:41:31 -0000 1.5 +++ gstbasetransform.h 28 Jul 2005 11:49:56 -0000 1.6 @@ -54,7 +54,6 @@ gboolean in_place; guint out_size; - gboolean delay_configure; }; struct _GstBaseTransformClass { |
From: <rb...@fr...> - 2005-08-08 15:08:30
|
CVS Root: /cvs/gstreamer Module: gstreamer Changes by: rbultje Date: Mon Aug 08 2005 08:08:26 PDT Log message: * gst/base/gstbasetransform.c: (gst_base_transform_buffer_alloc): Fix a pretty good memleak. Modified files: . : ChangeLog gst/base : gstbasetransform.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/ChangeLog.diff?r1=1.1340&r2=1.1341 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gstreamer/gst/base/gstbasetransform.c.diff?r1=1.22&r2=1.23 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gstreamer/ChangeLog,v retrieving revision 1.1340 retrieving revision 1.1341 diff -u -d -r1.1340 -r1.1341 --- ChangeLog 8 Aug 2005 13:55:36 -0000 1.1340 +++ ChangeLog 8 Aug 2005 15:08:14 -0000 1.1341 @@ -1,3 +1,8 @@ +2005-08-08 Ronald S. Bultje <rb...@ro...> + + * gst/base/gstbasetransform.c: (gst_base_transform_buffer_alloc): + Fix a pretty good memleak. 2005-08-08 Tim-Philipp Müller <tim at centricular dot net> * gst/gstiterator.h: Index: gstbasetransform.c RCS file: /cvs/gstreamer/gstreamer/gst/base/gstbasetransform.c,v retrieving revision 1.22 retrieving revision 1.23 diff -u -d -r1.22 -r1.23 --- gstbasetransform.c 4 Aug 2005 19:40:43 -0000 1.22 +++ gstbasetransform.c 8 Aug 2005 15:08:14 -0000 1.23 @@ -535,6 +535,9 @@ goto unknown_size; } + if (*buf) { + gst_buffer_unref (*buf); + } *buf = gst_buffer_new_and_alloc (got_size); gst_buffer_set_caps (*buf, sinkcaps); GST_BUFFER_OFFSET (*buf) = offset; @@ -549,14 +552,20 @@ not_configured: { /* let the default allocator handle it */ - *buf = NULL; + *buf = NULL; gst_object_unref (trans); return GST_FLOW_OK; } unknown_size: |