mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-24 01:00:37 +00:00
pipeline: If the currently used clock gets lost update it the next time when going from PAUSED to playing
Fixes bug #623806.
This commit is contained in:
parent
55986b9a10
commit
9d0e2e7252
1 changed files with 15 additions and 1 deletions
|
@ -401,7 +401,7 @@ gst_pipeline_change_state (GstElement * element, GstStateChange transition)
|
|||
|
||||
/* running time changed, either with a PAUSED or a flush, we need to check
|
||||
* if there is a new clock & update the base time */
|
||||
if (last_start_time != start_time) {
|
||||
if (update_clock || last_start_time != start_time) {
|
||||
GST_DEBUG_OBJECT (pipeline, "Need to update start_time");
|
||||
|
||||
/* when going to PLAYING, select a clock when needed. If we just got
|
||||
|
@ -560,6 +560,20 @@ gst_pipeline_handle_message (GstBin * bin, GstMessage * message)
|
|||
|
||||
break;
|
||||
}
|
||||
case GST_MESSAGE_CLOCK_LOST:
|
||||
{
|
||||
GstClock *clock;
|
||||
|
||||
gst_message_parse_clock_lost (message, &clock);
|
||||
|
||||
GST_OBJECT_LOCK (bin);
|
||||
if (clock == GST_ELEMENT_CAST (bin)->clock) {
|
||||
GST_DEBUG_OBJECT (bin, "Used clock '%s' got lost",
|
||||
GST_OBJECT_NAME (clock));
|
||||
pipeline->priv->update_clock = TRUE;
|
||||
}
|
||||
GST_OBJECT_UNLOCK (bin);
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue