[gst-devel] meeting notes of code review

Thomas Vander Stichele thomas at urgent.rug.ac.be
Fri Apr 12 02:57:03 CEST 2002

Here's what I typed during the code review for future reference.
Feel free to comment on stuff ;)


GStreamer Code Review - April 7th, 2002

Present : Erik, Wim, Ronald, Mike (MAS), Leon (MAS), Thomas, Steve, Christian

Goals : 
* Explanation of the more difficult core concepts
* HOWTO fix plugins 

* Code Review code comments are marked CR1:

* GObject should be made threadsafe, let's write a sample app to show the
  community that it crashes

* gstobject.c : two ref/unref functions
  Get atomic locking to glib
  Then uncomment the atomic stuff
  use the bottom copies

* Wim says to remove the gstobject unref functions and redo them

* Thomas says to take out old snippets of code and put them in a different dir
  so the code ends up cleaner

* gst_object_sink
  we want to keep the GTK-based style of refcounting
  sinking an objec

  FLOATING means : I don't have a parent, but I want to live, please take
           ownership of me

  ASK: Why isn't float in gobject ?

* TODO's
  testsuite/refcount/ :
  - fix identity
  - use identity
  - check the leaks

  check the glib object stuff and see if it's sufficient
    check how gtk 2 does the stuff we want to do
    do it the same

  gst-launch: fix syntax to set the name on the object without a property

  remove checks for NULL and similar by doing a call graph and doing the checks
  in only one place; put these in an ifdef
  create a macro (_REDUNDANT) which we can turn on if something's fishy

  DEBUG/ERROR problems (see gstobject.c around 392)

    move the signal emit to the bottom of restore thyself and get rid of it

  write a document with sample caps and data types

  gstcaps.h :
    check data type of id, quarks are not guint16's !

    rename gst_caps_copy_1 to gst_caps_copy_first

  gstpad.h :
    gtk-document the macros

    we need to determine whether the namespace of a specific plugin feature is 
    for all plugin features or separate for each type of plugin
    It should probably be separate for each type.
    ANSWER: There is a separate namespace for each plugin feature type


  writing in place should check if you can write and copy if necessary
  if refcount != 1, you must copy
  while copying you drop a reference

  tee, two outputs : first peer wants to write, unrefs, gets a copy
  		     second peer has now exclusive ownership and can
		     write to that buffer so doesn't need a copy

  let's figure out how child buffers' properties like copy on write translate
  to the parent buffers and vice versa

    mad could have a better internal resampler that's better/faster and
    might be preferable.  Priorities should deal with that.
    Also, it would be nice to have some sort of app that configures these
    priorities by actual measurement on your computer.

    GstData is not a GObject because that has too much overhead

    guidelines for writing modules; eg. where to put queues


* glib
  Does GLib check if there's a listener when a signal gets emitted ?
  Check the speed of this



The Dave/Dina Project : future TV today ! - http://davedina.apestaart.org/
<-*-                      -*->
Kiss me please kiss me
Kiss me out of desire baby not consolation
Oh you know it makes me so angry cause I know that in time
I'll only make you cry
<-*- thomas at apestaart.org -*->
URGent, the best radio on the Internet - 24/7 ! - http://urgent.rug.ac.be/

More information about the gstreamer-devel mailing list