[gst-devel] Major checkin pending

Erik Walthinsen omega at cse.ogi.edu
Mon Jul 17 08:36:50 CEST 2000

I'm about to commit a major checkin to CVS that breaks a lot of stuff.

The first change is to the scheduling system.  Cothreads are now more
sane, but there's still some work to be done as far as plan generation and
such.  More on that tomorrow some time.

The second is to the state system.  This is what will break almost
everything outside libgst.la, including the core elements.  The old system
was based on a number of bits that determined whether an element was in
that state or not.  The new system is a single number, with 4 states.
State transitions usually occur from one state to its immediate neighbor,
as you can only have one state at a time.

In addition to the states changing, the way states are dealt with is also
different.  This is also not entirely complete, but the basic idea is that
instead of calling the element's change_state method with the bit to flip,
a pending mechanism is used.  gst_element_set_state sets the pending_state
variable, then calls the change_state method.  If the state transition is
viable, the element is responsible for setting the new state to the
pending state, and clearing the pending state.

As a result of these changes, almost all elements will not compile
currently.  I'll see if I can fix everything in gst/elements/ before I
commit this megapatch, but there's no way I can fix all the plugins.  I
have to complete the functionality introduced by these changes first,

In order to make things a little saner, I've put a snapshot from yesterday
up for FTP, at:

I'll be working on this quite a bit tomorrow I hope (I have to run sound
almost all day, but at least the first day is just one mic on all the time
and flipping audio CDs around....).


         Erik Walthinsen <omega at cse.ogi.edu> - Staff Programmer @ OGI
        Quasar project - http://www.cse.ogi.edu/DISC/projects/quasar/
   Video4Linux Two drivers and stuff - http://www.cse.ogi.edu/~omega/v4l2/
       /  \             SEUL: Simple End-User Linux - http://www.seul.org/
      |    | M E G A           Helping Linux become THE choice
      _\  /_                          for the home or office user

More information about the gstreamer-devel mailing list