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
@ -593,10 +593,19 @@ gst_mimenc_change_state (GstElement * element, GstStateChange transition)
|
|||||||
case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
|
case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
|
||||||
GST_OBJECT_LOCK (mimenc);
|
GST_OBJECT_LOCK (mimenc);
|
||||||
mimenc->stop_paused_mode = FALSE;
|
mimenc->stop_paused_mode = FALSE;
|
||||||
|
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)
|
if (mimenc->last_buffer == GST_CLOCK_TIME_NONE)
|
||||||
mimenc->last_buffer = gst_clock_get_time (GST_ELEMENT_CLOCK (mimenc))
|
mimenc->last_buffer = gst_clock_get_time (GST_ELEMENT_CLOCK (mimenc))
|
||||||
- GST_ELEMENT_CAST (mimenc)->base_time;
|
- GST_ELEMENT_CAST (mimenc)->base_time;
|
||||||
paused_mode = mimenc->paused_mode;
|
}
|
||||||
GST_OBJECT_UNLOCK (mimenc);
|
GST_OBJECT_UNLOCK (mimenc);
|
||||||
if (paused_mode) {
|
if (paused_mode) {
|
||||||
if (!gst_pad_start_task (mimenc->srcpad, paused_mode_task, mimenc)) {
|
if (!gst_pad_start_task (mimenc->srcpad, paused_mode_task, mimenc)) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user