| GStreamer polices for various forms of library output, including error cases. |
| |
| |
| g_return_... |
| ============ |
| The parameters of a function are checked for validity (non-NULL, correct type, etc.) with g_return[_val]_if_fail, i.e.: |
| |
| gst_element_connect (GstElement *src, gchar *srcpadname, |
| GstElement *dest, gchar *destpadname) { |
| g_return_if_fail (src != NULL); |
| g_return_if_fail (GST_IS_ELEMENT(src)); |
| g_return_if_fail (srcpadname != NULL); |
| g_return_if_fail (dest != NULL); |
| g_return_if_fail (GST_IS_ELEMENT(dest)); |
| g_return_if_fail (destpadname != NULL); |
| |
| This will inform the user of the library of any basic problems with the arguments they pass, such as a NULL pointer. |
| |
| |
| ERROR |
| ===== |
| The ERROR macro will be used whenever there is some other type of flaw in the data passed, at a GStreamer-specific |
| level: |
| |
| srcpad = gst_element_get_pad (src, srcpadname); |
| if (srcpad == NULL) { |
| ERROR(src,"source element has no pad \"%s\"",srcpadname); |
| return; |
| } |
| |
| An ERROR will generally cause ceasation of the application, and ideally launch gdb. |
| |
| |
| INFO |
| ==== |
| The INFO macro will be used to output any interesting state from the library, such as plugin loading and various events |
| of interest. They will be separated into categories that can be individually enabled and disabled. |
| |
| Categories (first draft of list, unordered): |
| |
| cothreads [cothreads.c] |
| gst initialization [gst.c] |
| autoplug results [autoplug.c] |
| autoplug attempts [autoplug.c] |
| bin parentage issues [gstbin.c] |
| plan generation [gstbin.c] |
| schedule generation [gstschedule.c] |
| schedule implementation [gstpad.c, gstbin.c, etc.] |
| buffer operations [gstbuffer.h] |
| caps matching [gstcaps.c] |
| clock stuff [gstclock.c] |
| element pad operations [gstelement.c] |
| elementfactory operations [gstelementfactory.c] |
| pad creation/connection [gstpad.c] |
| pipeline stuff [gstpipeline.c] |
| plugin loading [gstplugin.c] |
| plugin loading errors [gstplugin.c] |
| properties operations [gstprops.c] |
| thread creation/management [gstthread.c] |
| type operations [gsttype.c] |
| XML load/save [gstxml.c] |