mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-06-06 23:48:53 +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
|
/* 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 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");
|
GST_DEBUG_OBJECT (pipeline, "Need to update start_time");
|
||||||
|
|
||||||
/* when going to PLAYING, select a clock when needed. If we just got
|
/* 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;
|
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:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue