diff --git a/ext/mikmod/gstmikmod.c b/ext/mikmod/gstmikmod.c index a8b6a345fc..adca578b69 100644 --- a/ext/mikmod/gstmikmod.c +++ b/ext/mikmod/gstmikmod.c @@ -405,10 +405,16 @@ gst_mikmod_loop (GstElement *element) )); do { - if ( Player_Active() ) + if ( Player_Active() ) { drv_gst.Update(); - - gst_element_yield (element); + + gst_element_yield (element); + } + else { + gst_element_set_state (GST_ELEMENT (mikmod), GST_STATE_PAUSED); + gst_pad_push (mikmod->srcpad, gst_event_new (GST_EVENT_EOS)); + } + } while ( 1 ); }