summaryrefslogtreecommitdiff
path: root/legacy/emotion/src/modules/emotion_xine.h
diff options
context:
space:
mode:
authorCarsten Haitzler <raster@rasterman.com>2007-03-13 02:30:14 +0000
committerCarsten Haitzler <raster@rasterman.com>2007-03-13 02:30:14 +0000
commit2dbc5651d4cc39b6e836a0f88d731f5c7755d163 (patch)
treee550975cdf41c75b190c0349a925018a7a4d29d9 /legacy/emotion/src/modules/emotion_xine.h
parent66954e5331285cec0f88e4fde7f1ba071c893664 (diff)
move emotion to fix latency on video load, deadlocks on stop/shutdown etc.
SVN revision: 28679
Diffstat (limited to '')
-rw-r--r--legacy/emotion/src/modules/emotion_xine.h52
1 files changed, 30 insertions, 22 deletions
diff --git a/legacy/emotion/src/modules/emotion_xine.h b/legacy/emotion/src/modules/emotion_xine.h
index 0b2affbed7..a71272cd83 100644
--- a/legacy/emotion/src/modules/emotion_xine.h
+++ b/legacy/emotion/src/modules/emotion_xine.h
@@ -18,7 +18,6 @@ struct _Emotion_Xine_Video
18 xine_audio_port_t *audio; 18 xine_audio_port_t *audio;
19 xine_stream_t *stream; 19 xine_stream_t *stream;
20 xine_event_queue_t *queue; 20 xine_event_queue_t *queue;
21 int fd;
22 volatile double len; 21 volatile double len;
23 volatile double pos; 22 volatile double pos;
24 double fps; 23 double fps;
@@ -26,13 +25,15 @@ struct _Emotion_Xine_Video
26 int w, h; 25 int w, h;
27 Evas_Object *obj; 26 Evas_Object *obj;
28 volatile Emotion_Xine_Video_Frame *cur_frame; 27 volatile Emotion_Xine_Video_Frame *cur_frame;
29 volatile int seek_to;
30 volatile int get_poslen; 28 volatile int get_poslen;
29 volatile int spu_channel;
30 volatile int audio_channel;
31 volatile int video_channel;
31 volatile double seek_to_pos; 32 volatile double seek_to_pos;
33 volatile double seeked_pos;
32 volatile int fq; 34 volatile int fq;
33 Emotion_Vis vis; 35 Emotion_Vis vis;
34 Ecore_Timer *timer; 36 int fd_read;
35 int fd_read;
36 int fd_write; 37 int fd_write;
37 Ecore_Fd_Handler *fd_handler; 38 Ecore_Fd_Handler *fd_handler;
38 int fd_ev_read; 39 int fd_ev_read;
@@ -43,41 +44,48 @@ struct _Emotion_Xine_Video
43 unsigned char video_mute : 1; 44 unsigned char video_mute : 1;
44 unsigned char audio_mute : 1; 45 unsigned char audio_mute : 1;
45 unsigned char spu_mute : 1; 46 unsigned char spu_mute : 1;
47 unsigned char opt_no_video : 1;
48 unsigned char opt_no_audio : 1;
46 volatile unsigned char delete_me : 1; 49 volatile unsigned char delete_me : 1;
47 volatile unsigned char no_time : 1; 50 volatile unsigned char no_time : 1;
51 volatile unsigned char opening : 1;
52 volatile unsigned char closing : 1;
53 volatile unsigned char have_vo : 1;
48 54
49 pthread_t seek_th;
50 pthread_t get_pos_len_th; 55 pthread_t get_pos_len_th;
51 pthread_cond_t seek_cond;
52 pthread_cond_t get_pos_len_cond; 56 pthread_cond_t get_pos_len_cond;
53 pthread_mutex_t seek_mutex;
54 pthread_mutex_t get_pos_len_mutex; 57 pthread_mutex_t get_pos_len_mutex;
55 unsigned char seek_thread_deleted : 1; 58
59 pthread_t slave_th;
60 int fd_slave_read;
61 int fd_slave_write;
62
56 unsigned char get_pos_thread_deleted : 1; 63 unsigned char get_pos_thread_deleted : 1;
57}; 64};
58 65
59struct _Emotion_Xine_Video_Frame 66struct _Emotion_Xine_Video_Frame
60{ 67{
61 int w, h; 68 int w, h;
62 double ratio; 69 double ratio;
63 Emotion_Format format; 70 Emotion_Format format;
64 unsigned char *y, *u, *v; 71 unsigned char *y, *u, *v;
65 unsigned char *bgra_data; 72 unsigned char *bgra_data;
66 int y_stride, u_stride, v_stride; 73 int y_stride, u_stride, v_stride;
67 Evas_Object *obj; 74 Evas_Object *obj;
68 double timestamp; 75 double timestamp;
69 void (*done_func)(void *data); 76 void (*done_func)(void *data);
70 void *done_data; 77 void *done_data;
71 void *frame; 78 void *frame;
72}; 79};
73 80
74struct _Emotion_Xine_Event 81struct _Emotion_Xine_Event
75{ 82{
76 int type; 83 int type;
77 char *xine_event; 84 void *xine_event;
85 int mtype;
78}; 86};
79 87
80unsigned char module_open(Evas_Object *obj, Emotion_Video_Module **module, void **video); 88unsigned char module_open(Evas_Object *obj, Emotion_Video_Module **module, void **video, Emotion_Module_Options *opt);
81void module_close(Emotion_Video_Module *module, void *video); 89void module_close(Emotion_Video_Module *module, void *video);
82 90
83#endif 91#endif