mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-17 11:45:25 +00:00
mimenc: Refuse to go playing in paused-mode without clock
Only try to use the clock in if paused-mode is set and refuse to go playing in paused-mode without it. Fixes bug #591538
This commit is contained in:
parent
402aad7e87
commit
6001c6b5c0
1 changed files with 12 additions and 3 deletions
|
@ -593,10 +593,19 @@ gst_mimenc_change_state (GstElement * element, GstStateChange transition)
|
|||
case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
|
||||
GST_OBJECT_LOCK (mimenc);
|
||||
mimenc->stop_paused_mode = FALSE;
|
||||
if (mimenc->last_buffer == GST_CLOCK_TIME_NONE)
|
||||
mimenc->last_buffer = gst_clock_get_time (GST_ELEMENT_CLOCK (mimenc))
|
||||
- GST_ELEMENT_CAST (mimenc)->base_time;
|
||||
paused_mode = mimenc->paused_mode;
|
||||
if (paused_mode) {
|
||||
if (!GST_ELEMENT_CLOCK (mimenc)) {
|
||||
GST_OBJECT_UNLOCK (mimenc);
|
||||
GST_ELEMENT_ERROR (mimenc, RESOURCE, FAILED,
|
||||
("Using paused-mode requires a clock, but no clock was provided"
|
||||
" to the element"), (NULL));
|
||||
return GST_STATE_CHANGE_FAILURE;
|
||||
}
|
||||
if (mimenc->last_buffer == GST_CLOCK_TIME_NONE)
|
||||
mimenc->last_buffer = gst_clock_get_time (GST_ELEMENT_CLOCK (mimenc))
|
||||
- GST_ELEMENT_CAST (mimenc)->base_time;
|
||||
}
|
||||
GST_OBJECT_UNLOCK (mimenc);
|
||||
if (paused_mode) {
|
||||
if (!gst_pad_start_task (mimenc->srcpad, paused_mode_task, mimenc)) {
|
||||
|
|
Loading…
Reference in a new issue