]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - glsdk/gstreamer0-10.git/blobdiff - docs/design/part-TODO.txt
docs/design/: Update some docs.
[glsdk/gstreamer0-10.git] / docs / design / part-TODO.txt
index 62bce75577b3acd64b7834e9d0187e808e8e7af9..903f7c0b587fc1f64bc7d8aac77a1d481ffb8fe7 100644 (file)
@@ -1,30 +1,60 @@
 API/ABI
 -------
 
-- 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 GstQuery. A typical use case is performing a non-accurate seek to a keyframe,
-  after the seek you want to get the new stream time that will actually be used to
-  update the slider bar.
+- 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 GstQuery. A typical use case is performing a non-accurate seek to a
+  keyframe, after the seek you want to get the new stream time that will
+  actually be used to update the slider bar.
+
+- make gst_pad_push_event() return a GstFlowReturn so that we can resend
+  NEWSEGMENT and other events.
 
 - GstEvent, GstMessage register like GstFormat or GstQuery.
 
 - query POSITION/DURATION return accuracy. Just a flag or accuracy percentage.
 
-- add some sort of time/frame stepping functionality, either with a flag on the seek
-  event or some new seek event type. The idea would be to operate on the current
-  playback position instead of the current configured segment when doing the seek.
-  Idea is that frame stepping forwards can be done in the sinks, ie, just dropping
-  N frames/time, sending more complicated queries upstream which can ideally handle
-  those cases more efficiently too.
+- add some sort of time/frame stepping functionality, either with a flag on
+  the seek event or some new seek event type. The idea would be to operate on
+  the current playback position instead of the current configured segment when
+  doing the seek.
+  Idea is that frame stepping forwards can be done in the sinks, ie, just
+  dropping N frames/time, sending more complicated queries upstream which can
+  ideally handle those cases more efficiently too.
+
+- use | instead of + as divider in serialization of Flags
+  (gstvalue/gststructure)
+
+- rethink how we handle dynamic replugging wrt segments and other events that
+  already got pushed and need to be pushed again.
+
+- keep track of seeks with a counter so that we can match seek events received
+  in the demuxer srcpads. This is needed because a normal seek on a pipeline
+  will send the seek event on all sinks, which results in the demuxer receiving
+  the seek twice. If there is no way to see that the seek is the same, it will
+  perform the seek twice.
+  It would also be nice to have this same sequence number in the segment event
+  that resulted from the seek so that everything seek related can be tracked
+  properly.
+
+- When an element goes to PAUSED there is no way to figure out the running time
+  when this happened. One could think that we can store this time in the
+  base_time field of the element but that causes problems when the element is
+  still using the base_time before really PAUSING. We seem to need a new element
+  field for this. The running time when an element is paused can be usefull to
+  clip late buffers instead of prerolling on them.
+
+- Elements in a bin have no clue about the final state of the parent element
+  since the bin sets the target state on its children in small steps. This
+  causes problems for elements that like to know the final state (rtspsrc going
+  to PAUSED or READY is different in that we can avoid sending the useless
+  PAUSED request).
 
 
 IMPLEMENTATION
 --------------
 
-- implement latency calculation for live sources.
-
-- implement QOS.
+- implement more QOS, see part-qos.txt.
 
 - implement BUFFERSIZE.