| |
| |
| API: |
| |
| - MAKE A DOCUMENT THAT LISTS ALL API CHANGES AND HOW TO DEAL WITH THEM |
| |
| - replace object/structure set/get macros with actual functions. |
| |
| - reorganize headers (split app headers vs plugin headers maybe) |
| while at it also make sure to only allow including of the main headers like |
| glib, so we can freely shuffle stuff around |
| |
| - 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() |
| |
| - make templates mandatory for pads. |
| |
| - force pads to use a pad template from the element they belong to. |
| |
| - s/PadTemplate/PadFactory/ to describe better what it is and be more in line |
| with the rest of the API? |
| |
| - add ways for autopluggers to manage negotiation of their children. |
| This would allow autopluggers to no longer need helper identities. |
| (Though the main reason for identities atm is to be able to connect without |
| plugging - Company) |
| |
| - 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 |
| |
| - fakesrc handoff should be changed to return a GstData * or carry a |
| GstData **, wo the user can provide own buffers and events. |
| |
| - don't install gstmarshal.h |
| |
| - make sure GstClockTime is used wherever it should (e.g. gstplay) |
| |
| - make gst_bin_get_list virtual so subclasses can override it (e.g. |
| gst-play which contains an internal thread not inside the bin that is |
| gstplay) |
| - make gst_bin_get_by_interface search on the list provided by this get_list |
| so that you can search a GstPlay for an element implementing the interface |
| (right now gstplay has added a gst_play_get_by_interface) |
| |
| - make multichannel properties on audio caps manditory |
| |
| - talk to vektor about various wierdness with NTSC video (combinations of |
| 24 fps pulled down to 60 and straight video, etc) and make sure our |
| video stream descriptions make sense. |
| |
| - do an audit to remove GtkObject-isms from gtk-1.2 |
| |
| 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." |
| |
| (Thaytan) |
| - Add rowstride as a property so that video frames don't have to have |
| rowstride == width. For example, gdkpixbufdec would prefer to pad |
| rowstrides to multiples of 4 bytes. |
| |
| 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 |
| |
| |
| object hierarchy: |
| - 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. |
| |
| - object properties: |
| - all bitrates should be bits per second, since they're specified |
| as integers |
| - use device for nodes (not location; dvdreadsrc, dvdnavsrc, cdparanoia). |
| Also figure out if we want to continue separating uri/location. |
| |
| - categorization of plugins: |
| - categories were intended from the start as a list of keywords, instead |
| of an implicit tree. |
| - this makes a lot more sense and probably fixes our constant discussion |
| about categorizing |
| - make this explicit by having a list of keywords instead of a fixed string |
| with slashes |
| - fix the editor/el browser to display this nicely |