summaryrefslogtreecommitdiffstats
path: root/ext/mikmod/gstmikmod.c
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@gmail.com>2001-12-24 12:29:33 +0000
committerWim Taymans <wim.taymans@gmail.com>2001-12-24 12:29:33 +0000
commitc3915007a70e76068e89a0c3da095a7d4fa876a2 (patch)
tree2a7bbf4be2e91193748d60d97259c8d3be792ff2 /ext/mikmod/gstmikmod.c
parent18d104e45ada275f6ea9c1b1c7f962cac1bfebf5 (diff)
Added EOS, add yield to avoid infinite loop
Original commit message from CVS: Added EOS, add yield to avoid infinite loop
Diffstat (limited to 'ext/mikmod/gstmikmod.c')
-rw-r--r--ext/mikmod/gstmikmod.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/ext/mikmod/gstmikmod.c b/ext/mikmod/gstmikmod.c
index a8b6a345..adca578b 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 );
}