mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-28 03:00:35 +00:00
composition: Do not use 'update' seek for now
This is not working in our new context and the seek do not work at all when we set seek start to CLOCK_TIME_NONE and type to TYPE_NONE. Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
This commit is contained in:
parent
0951cc07e2
commit
619b157ec3
1 changed files with 16 additions and 9 deletions
|
@ -3023,7 +3023,6 @@ update_pipeline (GnlComposition * comp, GstClockTime currenttime,
|
|||
GstClockTime new_stop = GST_CLOCK_TIME_NONE;
|
||||
GstClockTime new_start = GST_CLOCK_TIME_NONE;
|
||||
|
||||
gboolean startchanged, stopchanged;
|
||||
|
||||
GstState nextstate = (GST_STATE_NEXT (comp) == GST_STATE_VOID_PENDING) ?
|
||||
GST_STATE (comp) : GST_STATE_NEXT (comp);
|
||||
|
@ -3052,14 +3051,6 @@ update_pipeline (GnlComposition * comp, GstClockTime currenttime,
|
|||
/* invalidate the stack while modifying it */
|
||||
priv->stackvalid = FALSE;
|
||||
|
||||
if (priv->segment->rate >= 0.0) {
|
||||
startchanged = priv->segment_start != currenttime;
|
||||
stopchanged = priv->segment_stop != new_stop;
|
||||
} else {
|
||||
startchanged = priv->segment_start != new_start;
|
||||
stopchanged = priv->segment_stop != currenttime;
|
||||
}
|
||||
|
||||
/* set new segment_start/stop (the current zone over which the new stack
|
||||
* is valid) */
|
||||
if (priv->segment->rate >= 0.0) {
|
||||
|
@ -3070,6 +3061,21 @@ update_pipeline (GnlComposition * comp, GstClockTime currenttime,
|
|||
priv->segment_stop = currenttime;
|
||||
}
|
||||
|
||||
# if 0
|
||||
/* FIXME -- We should be ablt to use updatestoponly in that case,
|
||||
* but it simply does not work! Not using it leads to same
|
||||
* behaviour, but less optimized */
|
||||
|
||||
gboolean startchanged, stopchanged;
|
||||
|
||||
if (priv->segment->rate >= 0.0) {
|
||||
startchanged = priv->segment_start != currenttime;
|
||||
stopchanged = priv->segment_stop != new_stop;
|
||||
} else {
|
||||
startchanged = priv->segment_start != new_start;
|
||||
stopchanged = priv->segment_stop != currenttime;
|
||||
}
|
||||
|
||||
if (samestack) {
|
||||
if (startchanged || stopchanged) {
|
||||
/* Update seek events need to be flushing if not in PLAYING,
|
||||
|
@ -3077,6 +3083,7 @@ update_pipeline (GnlComposition * comp, GstClockTime currenttime,
|
|||
updatestoponly = (state == GST_STATE_PLAYING) ? FALSE : TRUE;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
toplevel_seek = get_new_seek_event (comp, TRUE, updatestoponly);
|
||||
_set_real_eos_seqnum_from_seek (comp, toplevel_seek);
|
||||
|
|
Loading…
Reference in a new issue