diff --git a/legacy/emotion/src/bin/emotion_test_main.c b/legacy/emotion/src/bin/emotion_test_main.c index 256717d611..1795e30509 100644 --- a/legacy/emotion/src/bin/emotion_test_main.c +++ b/legacy/emotion/src/bin/emotion_test_main.c @@ -132,6 +132,13 @@ static int main_signal_exit(void *data, int ev_type, void *ev) { ecore_main_loop_quit(); + while (video_objs) + { + printf("del obj!\n"); + evas_object_del(video_objs->data); + video_objs = evas_list_remove_list(video_objs, video_objs); + printf("done\n"); + } return 1; } @@ -332,6 +339,17 @@ bg_key_down(void *data, Evas * e, Evas_Object * obj, void *event_info) else ecore_evas_borderless_set(ecore_evas, 0); } + else if (!strcmp(ev->keyname, "q")) + { + ecore_main_loop_quit(); + while (video_objs) + { + printf("del obj!\n"); + evas_object_del(video_objs->data); + video_objs = evas_list_remove_list(video_objs, video_objs); + printf("done\n"); + } + } else { printf("UNHANDLED: %s\n", ev->keyname); diff --git a/legacy/emotion/src/modules/emotion_xine.c b/legacy/emotion/src/modules/emotion_xine.c index 884662f502..58ce04b6c4 100644 --- a/legacy/emotion/src/modules/emotion_xine.c +++ b/legacy/emotion/src/modules/emotion_xine.c @@ -338,19 +338,29 @@ 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 stop\n"); + xine_stop(ev->stream); + printf("EX close\n"); + xine_close(ev->stream); + printf("EX dispose\n"); + xine_dispose(ev->stream); + printf("EX dispose evq\n"); + xine_event_dispose_queue(ev->queue); + printf("EX close video drv\n"); + if (ev->video) xine_close_video_driver(decoder, ev->video); + printf("EX close audio drv\n"); + if (ev->audio) xine_close_audio_driver(decoder, ev->audio); + printf("EX del timer\n"); + if (ev->timer) ecore_timer_del(ev->timer); + printf("EX del fds\n"); ecore_main_fd_handler_del(ev->fd_handler); close(ev->fd_write); close(ev->fd_read); ecore_main_fd_handler_del(ev->fd_ev_handler); close(ev->fd_ev_write); close(ev->fd_ev_read); - xine_stop(ev->stream); - xine_close(ev->stream); - xine_dispose(ev->stream); - xine_event_dispose_queue(ev->queue); - if (ev->video) xine_close_video_driver(decoder, ev->video); - if (ev->audio) xine_close_audio_driver(decoder, ev->audio); - if (ev->timer) ecore_timer_del(ev->timer); free(ev); } diff --git a/legacy/emotion/src/modules/xine/emotion_xine_vo_out.c b/legacy/emotion/src/modules/xine/emotion_xine_vo_out.c index cfb212c868..65645491fd 100644 --- a/legacy/emotion/src/modules/xine/emotion_xine_vo_out.c +++ b/legacy/emotion/src/modules/xine/emotion_xine_vo_out.c @@ -122,7 +122,8 @@ _emotion_class_init(xine_t *xine, void *visual) cl->driver_class.dispose = _emotion_class_dispose; cl->config = xine->config; cl->xine = xine; - + + printf("VO class init\n"); return cl; } @@ -133,6 +134,7 @@ _emotion_class_dispose(video_driver_class_t *driver_class) cl = (Emotion_Class *)driver_class; free(cl); + printf("VO class dispose\n"); } static char * @@ -183,6 +185,7 @@ _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; } @@ -194,6 +197,7 @@ _emotion_dispose(vo_driver_t *vo_driver) dv = (Emotion_Driver *)vo_driver; // printf("emotion: _emotion_dispose()\n"); free(dv); + printf("VO dispose\n"); } /***************************************************************************/ @@ -319,6 +323,7 @@ _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; } @@ -328,6 +333,7 @@ _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);