mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-30 13:41:48 +00:00
3f62c7db23
Original commit message from CVS: * docs/manual/advanced-autoplugging.xml: * docs/manual/basics-helloworld.xml: * docs/manual/basics-pads.xml: * docs/random/ds/0.9-suggested-changes: * gst/gstelement.c: (gst_element_class_init), (gst_element_seek): * gst/gstelement.h: * gst/gstevent.h: * gst/gstformat.h: * gst/gstquery.h: * gst/gststructure.c: (gst_structure_value_get_generic_type), (gst_structure_parse_array), (gst_structure_parse_value): * gst/gstvalue.c: (gst_type_is_fixed), (gst_value_list_prepend_value), (gst_value_list_append_value), (gst_value_list_get_size), (gst_value_list_get_value), (gst_value_transform_array_string), (gst_value_serialize_array), (gst_value_deserialize_array), (gst_value_intersect_array), (gst_value_is_fixed), (_gst_value_initialize): * gst/gstvalue.h: GstElement::new-pad -> pad-added, GstElement::state-change -> state-changed, GstValueFixedList -> GstValueArray, add format and flags as their own arguments in gst_element_seek() (should improve "bindeability"), remove function generators since they don't work under a whole bunch of compilers (they were deprecated already anyway).
143 lines
5 KiB
Text
143 lines
5 KiB
Text
|
|
|
|
API:
|
|
|
|
- MAKE A DOCUMENT THAT LISTS ALL API CHANGES AND HOW TO DEAL WITH THEM
|
|
|
|
- GstElementState should be a real enum, not something that looks like flags
|
|
changing state can be done with ++ and -- instead of >> and <<
|
|
|
|
- replace object/structure set/get macros with actual functions.
|
|
|
|
- events should all use GstStructure
|
|
|
|
- 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)
|
|
|
|
- remove float support from dparams
|
|
|
|
- dparams: should be converted into some kind of special pad and
|
|
object property combination.
|
|
|
|
- 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
|
|
|
|
- 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
|
|
|
|
- remove unnecessary headers from gst.h (gstqueue.h in particular)
|
|
|
|
- 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.
|
|
|
|
- remove GstMemChunk
|
|
|
|
- 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
|