This is a list of things to check in elements. 1. Add a "Element-Checklist-Version: 1" comment This comment is to indicate which items on this checklist have been checked, so that future checkers can skip things that you've already carefully checked. This number should obviously be updated whenever you do additional checks. Ideally, you should not do checks out of order, but using "1, also 4-6" is acceptable. 2. Each pad should have a pad template Create and register a pad template to the element class. 3. config.h Make sure that each .c file includes config.h (conditionally on HAVE_CONFIG_H). Make sure that each .h file does _not_ include config.h. 4. src event handling Every element having multiple sink pads or having a specific need to handle src events in a different manner than the default event handler should do that correctly. Correctly means that : - It should not leak the event if it is handled (gst_event_unref) - It should call return gst_pad_event_default (pad, event) for all non handled localy events. Otherwise it breaks navigation, seeking, etc... - it should return a TRUE/FALSE boolean if the localy handled event was handled. other ideas: - plugins should avoid using gst_caps_to_string() in debug statement. They should use %"GST_PTR_FORMAT" instead. Check all usage for leaks.