[Bug 691475] [API] baseparse: need vfunc to intercept queries

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Thu Jan 10 06:27:57 PST 2013


https://bugzilla.gnome.org/show_bug.cgi?id=691475
  GStreamer | gstreamer (core) | git

--- Comment #1 from Tim-Philipp Müller <t.i.m at zen.co.uk> 2013-01-10 14:27:50 UTC ---
Ok, so I think we want query vfuncs rather than a special vfunc just for the
allocation query?


26-12-2012 11:19:44 bilboed: so I might need to have a way for baseparse to do
a downstream ALLOCATE query if upstream didn't send one
26-12-2012 11:19:53 bilboed: so that implementations can know what GstMeta are
suported downstream
26-12-2012 11:21:18 bilboed: right now I've added a
observe_allocation(baseparse, query) vmethod which subclasses can implement,
and if so the base class gives it the query once returned from downstream
26-12-2012 11:21:24 bilboed: but that assumes upstream initiated such a query
26-12-2012 11:24:34     tim: right
26-12-2012 11:26:00     tim: here's a question: the elements that would be
making use of those parser meta things, will they still support parsing
themselves as fallback?
26-12-2012 11:26:18   slomo: bilboed: can't you re-use the ::query_sink() vfunc
instead of adding a new one?
26-12-2012 11:26:33 bilboed: in baseparse ?
26-12-2012 11:26:39     tim: oh, also, why do you want to query? Why not just
put those metas on the output in any case - if nothing uses them, it doesn't
matter
26-12-2012 11:26:52     tim: (minus allocation overhead)
26-12-2012 11:26:58 bilboed: tim, it's extra processing which might not be
needed
26-12-2012 11:27:06 bilboed: tim, I'm parsing stuff which isn't usually parsed
26-12-2012 11:27:10     tim: ah, ok
26-12-2012 11:27:15 bilboed: like picture slice headers for h264
26-12-2012 11:27:26 bilboed: yah, otherwise I wouldn't bother :)
26-12-2012 11:27:36   slomo: bilboed: oh there are no query vfuncs... so,
instead of adding observe_allocation() adding something to intercept all
queries might be more useful :)
26-12-2012 11:27:58     tim: but the thing is that you will already have to do
some parsing, so you can determine the caps and downstream can plug a decoder
or whatever
26-12-2012 11:28:03 bilboed: slomo, in this case I don't want to intercept them
*before*, I want to observe the result
26-12-2012 11:28:10     tim: so I think a first step would be to just always
put them on
26-12-2012 11:28:20     tim: and then optimise to remove them when not needed
later
26-12-2012 11:28:32     tim: no?
26-12-2012 11:28:37 bilboed: __tim, I could switch the default from "never do
it" to "always do it" and remove them when I'm sure downstream don't need them
26-12-2012 11:28:38 bilboed: indeed
26-12-2012 11:28:47     tim: right
26-12-2012 11:29:37   slomo: bilboed:
GST_BASE_PARSE_CLASS(parent_class)->query_sink(bparse,query);
gst_query_parse_allocation(query, ...);
26-12-2012 11:29:37   slomo: bilboed: anyway, sorry for distracting with
details that can be done later :)

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list