mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-03-29 20:35:40 +00:00
docs/design/part-TODO.txt: Add some more TODO items
Original commit message from CVS: * docs/design/part-TODO.txt: Add some more TODO items * gst/gstbin.c: (find_message), (gst_bin_change_state_func): Improve debugging. * gst/gstcaps.c: (gst_caps_intersect): Optimize trivial intersection case between identical caps pointers. * gst/gstelement.c: (gst_element_continue_state), (gst_element_set_state_func): * gst/gstpad.c: Fix spelling and grammar mistakes.
This commit is contained in:
parent
36d06ff6d3
commit
56b5aa1ccb
6 changed files with 58 additions and 5 deletions
16
ChangeLog
16
ChangeLog
|
@ -1,3 +1,19 @@
|
|||
2007-08-07 Wim Taymans <wim.taymans@gmail.com>
|
||||
|
||||
* docs/design/part-TODO.txt:
|
||||
Add some more TODO items
|
||||
|
||||
* gst/gstbin.c: (find_message), (gst_bin_change_state_func):
|
||||
Improve debugging.
|
||||
|
||||
* gst/gstcaps.c: (gst_caps_intersect):
|
||||
Optimize trivial intersection case between identical caps pointers.
|
||||
|
||||
* gst/gstelement.c: (gst_element_continue_state),
|
||||
(gst_element_set_state_func):
|
||||
* gst/gstpad.c:
|
||||
Fix spelling and grammar mistakes.
|
||||
|
||||
2007-08-05 Stefan Kost <ensonic@users.sf.net>
|
||||
|
||||
* po/POTFILES.in:
|
||||
|
|
|
@ -7,6 +7,9 @@ API/ABI
|
|||
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.
|
||||
|
@ -22,6 +25,25 @@ API/ABI
|
|||
- 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.
|
||||
|
||||
|
||||
IMPLEMENTATION
|
||||
--------------
|
||||
|
|
|
@ -731,6 +731,14 @@ find_message (GstBin * bin, GstObject * src, GstMessageType types)
|
|||
result = g_list_find_custom (bin->messages, &find,
|
||||
(GCompareFunc) message_check);
|
||||
|
||||
if (result) {
|
||||
GST_DEBUG_OBJECT (bin, "we found a message %p from %s mathing types %08x",
|
||||
result->data, GST_OBJECT_NAME (GST_MESSAGE_CAST (result->data)->src),
|
||||
types);
|
||||
} else {
|
||||
GST_DEBUG_OBJECT (bin, "no message found matching types %08x", types);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
|
@ -1214,9 +1214,15 @@ gst_caps_intersect (const GstCaps * caps1, const GstCaps * caps2)
|
|||
g_return_val_if_fail (GST_IS_CAPS (caps1), NULL);
|
||||
g_return_val_if_fail (GST_IS_CAPS (caps2), NULL);
|
||||
|
||||
if (gst_caps_is_empty (caps1) || gst_caps_is_empty (caps2)) {
|
||||
/* caps are exactly the same pointers, just copy one caps */
|
||||
if (caps1 == caps2)
|
||||
return gst_caps_copy (caps1);
|
||||
|
||||
/* empty caps on either side, return empty */
|
||||
if (gst_caps_is_empty (caps1) || gst_caps_is_empty (caps2))
|
||||
return gst_caps_new_empty ();
|
||||
}
|
||||
|
||||
/* one of the caps is any, just copy the other caps */
|
||||
if (gst_caps_is_any (caps1))
|
||||
return gst_caps_copy (caps2);
|
||||
if (gst_caps_is_any (caps2))
|
||||
|
|
|
@ -2344,7 +2344,7 @@ gst_element_set_state_func (GstElement * element, GstState state)
|
|||
(next != state ? "intermediate" : "final"),
|
||||
gst_element_state_get_name (current), gst_element_state_get_name (next));
|
||||
|
||||
/* now signal any waiters, they will error since the cookie was increased */
|
||||
/* now signal any waiters, they will error since the cookie was incremented */
|
||||
GST_STATE_BROADCAST (element);
|
||||
|
||||
GST_OBJECT_UNLOCK (element);
|
||||
|
|
|
@ -4327,8 +4327,9 @@ gst_pad_start_task (GstPad * pad, GstTaskFunction func, gpointer data)
|
|||
* gst_pad_pause_task:
|
||||
* @pad: the #GstPad to pause the task of
|
||||
*
|
||||
* Pause the task of @pad. This function will also make sure that the
|
||||
* function executed by the task will effectively stop.
|
||||
* Pause the task of @pad. This function will also wait until the
|
||||
* function executed by the task is finished if this function is not
|
||||
* called from the task function.
|
||||
*
|
||||
* Returns: a TRUE if the task could be paused or FALSE when the pad
|
||||
* has no task.
|
||||
|
|
Loading…
Reference in a new issue