[gst-devel] more caps

Ronald Bultje rbultje at ronald.bitfreak.net
Wed Dec 24 08:41:59 CET 2003


Hi,

Now, while we're at it, I'd like to add something to Benjamin's email
with questions:

- is gst_pad_get_allowed_caps() broken? Is it intended to return the
currently allowed caps given by the intersection of both getcaps()
functions of the two pads in a link or something else? I mentioned this
on IRC already but it's no obvious to me.

- I actually like Benjamin's idea of deprecating try_set_caps(). Not for
0.8.0, but still, we can make a start for 0.8 (simply allowing it, but
not recommending it) and complete it in 0.10. It forces correct element
writing which is a good thing.

- How is ownership of caps done? I see a lot of gst_caps_copy() around
in various places (e.g. try_set_caps(pad, caps) copies the caps before
using it), has anyone valgrind'ed this yet or ensured that this works
correctly? Was there a strong reason to remove caps ref()'ing or is this
just "part of the job" (in which case I think it's a bad idea)?

- is fixate() supposed to be used by the application instead of 'plain
simple' filtered caps in a pad link? This is lovely (really!). I also
think the function is broken:

while (!gst_caps_is_fixed (caps)) {
  if (app->fixate) {
    ..
    continue;
  }
  ..
}

This will loop endlessly if the app fixate function doesn't fixate it
fully.

- Benjamin mentioned this but I want to re-stress it: GST_PAD_CAPS() is
broken and there's no obvious replacement.

- Why is GstPadLink private? (It seems like link->caps is what
GST_PAD_CAPS() should use?)

I probably have some more when I've looked better at it. That'll come
later.

Ronald

-- 
Ronald Bultje <rbultje at ronald.bitfreak.net>
Linux Video/Multimedia developer





More information about the gstreamer-devel mailing list