- changing an object's name after construction is not allowed. Checks are performed when adding objects to parents that no duplicate names are used, changing the name to a duplicate name after adding it is therefore allowed and voids internal consistency. - check for race in _task_pause()/_stop() since the TASK_LOCK is not held by the calling thread and the STREAM_LOCK not by the task code. - only emit EOS in PLAYING. Make sure elements reemit the EOS message when going to PLAYING again. - implement return values from events in addition to the gboolean. - implement query ala events as opposed to the current return value of only a guint64. I don't have a use case where this a problem yet, though. - implement state change order on get<->loop-get<->loop elements. This probably requires a backtracking algorithm. - implement iterators for traversing elements upstream or dowstream. - unlinking pads in the PAUSED state needs to make sure the stream thread is not executing code. Can this be done with a flush to unlock all downstream chain functions? - implement seek in GstPipeline. - make events use GstStructure like GstMessage instead of the current union. - make the seek event return the time where the seek will happen so that GstPipeline can update the stream time. - implement clock selection as explained in part-gstpipeline.txt