- 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. This should be done by making the event contain a GstStructure with input/output values, similar to GstMessage. - 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? - make the seek event return the time where the seek will happen so that GstPipeline can update the stream time. This is linked with making the events return values. - implement clock selection as explained in part-gstpipeline.txt