[gstreamer-bugs] [Bug 350545] Caps introspection debug option

GStreamer (bugzilla.gnome.org) bugzilla-daemon at bugzilla.gnome.org
Tue Feb 5 03:14:29 PST 2008


If you have any questions why you received this email, please see the text at
the end of this email. Replies to this email are NOT read, please see the text
at the end of this email. You can add comments to this bug at:
  http://bugzilla.gnome.org/show_bug.cgi?id=350545

  GStreamer | gstreamer (core) | Ver: HEAD CVS




------- Comment #4 from Stefan Kost (gstreamer, gtkdoc dev)  2008-02-05 11:14 UTC -------
Some more thoughts: The problem in e.g. basesrc is that is e.g. uses
gst_base_src_default_negotiate() which only returns a boolean. So the caller
gst_base_src_start() cannot give any details. Now inside
gst_base_src_default_negotiate() its gst_caps_intersect() that does the work.
This cannot log a warning as it doesn't know the use case (wheter no intersect
found is good or not).

What about having:
gchar *gst_debug_caps_intersect_failure_reason(GstCaps *caps1,GstCaps *caps2);
so that in high level code (e.g. basesrc) one can write:

if (icaps = gst_caps_intersect (thiscaps, peercaps)) {
  /* success, go on */
}
#ifdef GST_DEBUG
else {
  gchar *reason=gst_debug_caps_intersect_failure_reason(thiscaps, peercaps);
  GST_WARNNG_OBJECT (basesrc, "no common caps: %s",reason);
  g_free(reason);
}
#endif

The implementation would
* first check both caps for EMPTY
* if not, check if they have common mediatypes
* and if they have, it needs to check for missing fields or fields with not
maching ranges/values


-- 
See http://bugzilla.gnome.org/page.cgi?id=email.html for more info about why you received
this email, why you can't respond via email, how to stop receiving
emails (or reduce the number you receive), and how to contact someone
if you are having problems with the system.

You can add comments to this bug at http://bugzilla.gnome.org/show_bug.cgi?id=350545.




More information about the Gstreamer-bugs mailing list