API: - replace object/structure set/get macros with actual functions. - events should all use GstStructure - reorganize headers (split app headers vs plugin headers maybe) - make GstPadLinkReturn internal (to either plugins+core or just core) and return gboolean to apps. - rewrite GstIndex (it's gross) - gst_init() et al. need to work correctly when called multiple times and from libraries, etc. - gst_pad_get_pad_template_caps -> gst_pad_get_template_caps() - add ways for autopluggers to manage negotiation of their children. This would allow autopluggers to no longer need helper identities. - remove float support from dparams - dparams: should be converted into some kind of special pad and object property combination. - remove gst_element_yield() - read/write locks on buffers - be able to send events to unlinked pads (bug #114442) - caps should have a flag on fields to indicate that the field is optional - remove gst_pad_select() and add gst_pad_pull_many(), which pulls one buffer from one of many pads - deprecate gst_buffer_merge() and replace with a function that takes ownership of the buffers. (bug #136408) - fakesrc handoff should be changed to return a GstData * or carry a GstData **, wo the user can provide own buffers and events. - remove GST_OBJECT_DESTROYED() - fix plugin code to load plugins with RTLD_LOCAL - don't install gstmarshal.h - make GstPad and friends a real class heirarchy - make GstBuffer/GstData a real class heirarchy, although maybe not as a subclass of GObject. - remove unnecessary headers from gst.h (gstqueue.h in particular) caps: (Company:) "An idea I had once was to force registration of mimetypes and then only allow caps with a registered mimetype - like it's done now with caps. You could then add functions to those registrations like - gchar *get_human_readable_string (caps); should be kinda selfexplanatory. Would return stuff like "16bit signed integer audio", "MPEG2 video" or "video format in RGB colorspace" (for unfixed RGB) - GstCaps *default_fixate (const GstCaps *caps); A default fixation function, so we don't fixate to minimum integer anymore but have the ability to fixate to 320x240 for video or 44100 for audio rates - gboolean validate (const GstCaps *caps); check if the given caps are ok for this mimetype - debugging only function I'd _really_ like to have - especially during gst_register. But that's 0.10 material." negotiation: - autopluggers would be easier to write if there was a core method to do what plugidentities do. - there should be a way to hook into negotiation and be able to do something if negotiation fails. Autopluggers would need that for exchanging elements when they can't link. bugs with interesting info: XML descriptions of plugin information: http://bugzilla.gnome.org/show_bug.cgi?id=114216 - a method for elements to know when downstream elements are ignoring the data stream. This would allow automatic shutoff of pipelines whose processing is being dumped.