[gst-devel] Random things.
richard at tartarus.org
Sat Jan 6 02:57:13 CET 2001
Just a few notes from IRC just now:
We (Wim and I) discussed things I'd found playing around with the editor:
specifically, changing the "location" arg in disksrc while the element is
in the PLAYING state doesn't work. We came to the conclusion that this
could be implemented in this particular case (either by the element
restarting the read when the location arg is changed, or by it recording
the change and paying attention to it the next time the state changes -
More generally though we need to be able to tell whether an argument set
has succeeded. gtk_object doesn't support this: we could either write our
own gst_element_arg_set or similar which returns a boolean, or simply
require that anything which cares about whether an argument got set
successfully should check the arg after set_arg with get_arg.
We also discuessed how to keep the display of the args for a particular
element up to date when those args are frequently changing: options were to
have a signal which is generated everytime an arg changes, or to do updates
in idle cycles. Since such a signal could be very frequently generated,
the idle cycle update option is probably better.
Also, I asked what standard signals existed, and whether there were any
docs of them yet: Wim replied that there are just a few: state_changed,
new_pad, new_ghost_pad, error, eos for an element, and for bins also a few:
element added and friends... I've added a very skeleton file,
docs/random/signals with these in, we could do with getting that to be
complete and into the manual.
We then discussed autoplugging in the editor. Possible interfaces include:
A) Put two elements in, and draw a line from one pad to another while
holding down SHIFT, and it draws an autoplugging line. Or even, it will
always autoplug if the pads aren't compatible. It could have one colour
for direct connections, and another colour for autoplug ones, and a line
with an X if can't even autoplug.
B) Have an "autoplugging" box which can be inserted. To autoplug, draw
connections to it and from it, and then the autoplugging would happen at
the last minute (presumably when the state went to READY?) or on request
if possible. You could still have a mode to (try to) insert such a box
immediately if you tried to draw a connection between incompatible pads.
Other ideas for editor:
another neat thing would be to right click on a pad and it shows the
elements that can connect to that pad, with a tendency to move to a
video/audio sink (for src pads, anyway). Right click on an element, shows
a menu option to start typefind say, you add disksrc, add a filename, right
click and do typefind and the pad turns into a audio/mp3 type pad right
click the pad, the mpg123 element is on top of the list. Possibly it
should start the typefind in the background as soon as you set a property,
and then all you'd have to do is click on the pad and select the next
element from the list.
Obviously, there's a load more that could be done with the editor...
Finally, Wim's been updating the manual, and would like comments and
checking of his work. I'll try and take a look this weekend.
More information about the gstreamer-devel