[gstreamer-bugs] [Bug 356882] [PLUGIN-MOVE] synaesthesia has been ported

GStreamer (bugzilla.gnome.org) bugzilla-daemon at bugzilla.gnome.org
Sat Feb 10 05:54:52 PST 2007


Do not reply to this via email (we are currently unable to handle email
responses and they get discarded).  You can add comments to this bug at
http://bugzilla.gnome.org/show_bug.cgi?id=356882

  GStreamer | gst-plugins-ugly | Ver: HEAD CVS





------- Comment #5 from Tim-Philipp Müller  2007-02-10 13:52 UTC -------
> @tim, are you okay if I enable builing it in ugly by default (and add the docs
> at the same time)?

I'd prefer to stick to the procedure outlined in the moving-plugins document.


The code still doesn't really look ready, and you haven't even fixed all of the
things I mentioned above (setcaps still returns GST_PAD_LINK_REFUSED, no
GST_DEBUG_FUNCPTR for gst_pad_set_xyz_func, still leaks references in chain
function). Mostly minor things, but still.

A few more things I noticed just now:

 - in _setcaps(): "fraction" is a GstFraction, not a double

 - if output height and width are really fixed, the caps should just
   reflect that instead of claiming to support any height/width and
   then refusing everything that's not 320x240 (see _setcaps()). It's
   worth noting though that a visualisation plugin that only supports
   a fixed height/width won't work properly with totem in its current
   state. IMHO the plugin should be rewritten to be able to support
   any height/width. If it needs to close/re-init the engine when
   height/width change in order to achieve that, so be it.

 - doesn't use GST_BOILERPLATE macros

 - doesn't use GST_(DEBUG/*)_OBJECT

 - caps nego in the chain function looks dodgy, to say the least
   (lines 373ff); I think it's mostly luck and implicit assumptions
   that make it work here.

 - the entire loop bit in the chain function looks a bit messy. I
   don't really understand why there's a MAX in

    while (gst_adapter_available (synaesthesia->adapter) >
        MAX (bytesperread,
            samples_per_frame * synaesthesia->channels * sizeof (gint16))) {

   but then you gst_adapter_peek(adapter, bytesperread) and then you
    gst_adapter_flush (adapter, samples_per_frame *
        synaesthesia->channels * sizeof (gint16));

   Usually, available/peek/flush should match up.



> for the tests I have no idea yet, but I could do a skeleton test that feeds
> one buffer through, to get the valgrind coverage at least.

Yeah, something simple should be fine, although it would be good if the test
demonstrated on-the-fly output size renegotiation as well (since that's what
e.g. totem does).


-- 
Configure bugmail: http://bugzilla.gnome.org/userprefs.cgi?tab=email




More information about the Gstreamer-bugs mailing list