[Gstreamer-openmax] [PATCH] replace deprecated API
Felipe Contreras
felipe.contreras at gmail.com
Sun Apr 25 04:44:04 PDT 2010
On Sat, Apr 24, 2010 at 11:31 PM, Stefan Kost <ensonic at hora-obscura.de> wrote:
> I agree that gst_element_class_set_details_simple() does not bring a
> huge speedup normally, but then there is no point in wasting cycles. It
> definitely shortes a fully registry rescann, which e.g. happens when you install
> a new plugin (e.g. on demand). And as usual several small gains (or wastes) add up.
> Anyway do as you prefer, I said what I have to say on this matter.
If you really want to save cycles, try this:
static inline void
__gst_element_details_copy(GstElementDetails *dest,
const GstElementDetails *src)
{
g_free(dest->longname);
g_free(dest->klass);
g_free(dest->description);
g_free(dest->author);
dest->longname = g_strdup(src->longname);
dest->klass = g_strdup(src->klass);
dest->description = g_strdup(src->description);
dest->author = g_strdup(src->author);
}
That's saving *way* many more cycles.
Or even better, make gst_element_class_set_details() inline, then the
compiler can find the most optimal path. I did tests, and the
resulting assembly is the same for gst_element_class_set_details(),
and gst_element_class_set_details_simple() with -O2 (when the
functions are inline).
--
Felipe Contreras
More information about the Gstreamer-openmax
mailing list