eject works.. xine bug.. if video is paused (*or int he process of being

paused) when we try shut down the stream - POOF - xine hangs


SVN revision: 10914
This commit is contained in:
Carsten Haitzler 2004-07-19 05:44:54 +00:00
parent 755168f03b
commit 8798313dcc
2 changed files with 13 additions and 8 deletions

View File

@ -338,8 +338,19 @@ em_file_close(void *ef)
pthread_cond_broadcast(&(ev->get_pos_len_cond));
while (ev->seek_to);
while (ev->get_poslen);
printf("EX pause...\n");
// xine_set_param(ev->stream, XINE_PARAM_SPEED, XINE_SPEED_PAUSE);
printf("EX pause end...\n");
if (!emotion_object_play_get(ev->obj))
// if (xine_get_param(ev->stream, XINE_PARAM_SPEED) == XINE_SPEED_PAUSE)
{
printf("sync...\n");
while (xine_get_param(ev->stream, XINE_PARAM_SPEED) == XINE_SPEED_NORMAL);
printf("sync...\n");
while (xine_get_param(ev->stream, XINE_PARAM_SPEED) == XINE_SPEED_PAUSE)
{
printf(" ... unpause\n");
xine_set_param(ev->stream, XINE_PARAM_SPEED, XINE_SPEED_NORMAL);
}
}
printf("EX stop\n");
xine_stop(ev->stream);
printf("EX close\n");

View File

@ -123,7 +123,6 @@ _emotion_class_init(xine_t *xine, void *visual)
cl->config = xine->config;
cl->xine = xine;
printf("VO class init\n");
return cl;
}
@ -134,7 +133,6 @@ _emotion_class_dispose(video_driver_class_t *driver_class)
cl = (Emotion_Class *)driver_class;
free(cl);
printf("VO class dispose\n");
}
static char *
@ -185,7 +183,6 @@ _emotion_open(video_driver_class_t *driver_class, const void *visual)
dv->vo_driver.dispose = _emotion_dispose;
dv->vo_driver.redraw_needed = _emotion_redraw;
dv->ev = (Emotion_Xine_Video *)visual;
printf("VO open\n");
return &dv->vo_driver;
}
@ -197,7 +194,6 @@ _emotion_dispose(vo_driver_t *vo_driver)
dv = (Emotion_Driver *)vo_driver;
// printf("emotion: _emotion_dispose()\n");
free(dv);
printf("VO dispose\n");
}
/***************************************************************************/
@ -323,7 +319,6 @@ _emotion_frame_alloc(vo_driver_t *vo_driver)
fr->vo_frame.dispose = _emotion_frame_dispose;
fr->vo_frame.driver = vo_driver;
printf("VO frame alloc\n");
return (vo_frame_t *)fr;
}
@ -333,7 +328,6 @@ _emotion_frame_dispose(vo_frame_t *vo_frame)
Emotion_Frame *fr;
fr = (Emotion_Frame *)vo_frame;
printf("VO frame dispose\n");
// printf("emotion: _emotion_frame_dispose()\n");
_emotion_frame_data_free(fr);
free(fr);