mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-16 13:26:36 +00:00
2bd5f3ad46
Original commit message from CVS: * gst/gstpad.c: (gst_pad_set_explicit_caps): check that caps are fixed * gst/gstpad.c: (gst_pad_template_new): don't try to simplify caps, costs too much time on gst_init * gst/gstplugin.c: (gst_plugin_add_feature): G_ERROR if features are added twice * gst/gsttypefind.c: (gst_type_find_register): * gst/gstelementfactory.c: (gst_element_register): don't add features twice * docs/random/ds/0.9-suggested-changes: add note about possible gst_init optimization
146 lines
4.9 KiB
Text
146 lines
4.9 KiB
Text
|
|
|
|
API:
|
|
|
|
- MAKE A DOCUMENT THAT LISTS ALL API CHANGES AND HOW TO DEAL WITH THEM
|
|
|
|
- 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()
|
|
|
|
- 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)
|
|
|
|
- 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.
|
|
|
|
- rename GST_TYPE_FIXED_LIST to GST_TYPE_ARRAY
|
|
|
|
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:
|
|
- state_change in GstElementClass should be renamed to state_changed, since
|
|
it's a signal triggered after state has changed
|
|
|
|
|
|
- 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
|
|
|
|
|
|
- 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
|
|
|
|
- optimization:
|
|
- delay parsing caps from the registry until after startup (until they're
|
|
first requested or maybe an idle handler for the main loop)
|