summaryrefslogtreecommitdiff
path: root/legacy/emotion/src/modules/xine/emotion_xine.h
diff options
context:
space:
mode:
authordoursse <doursse>2008-05-11 18:52:29 +0000
committerdoursse <doursse@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>2008-05-11 18:52:29 +0000
commitc014ed5267c18bdcd1449970d592972e89f7886f (patch)
tree16cb16d84a27be9c77594969c83a1ddab9e7fb49 /legacy/emotion/src/modules/xine/emotion_xine.h
parentd72b07f4aa8aac8b4466e5b05e3ddd158cd514b0 (diff)
put xine and gstreamer modules in their own subdir
SVN revision: 34539
Diffstat (limited to 'legacy/emotion/src/modules/xine/emotion_xine.h')
-rw-r--r--legacy/emotion/src/modules/xine/emotion_xine.h92
1 files changed, 92 insertions, 0 deletions
diff --git a/legacy/emotion/src/modules/xine/emotion_xine.h b/legacy/emotion/src/modules/xine/emotion_xine.h
new file mode 100644
index 0000000000..8a9efcc426
--- /dev/null
+++ b/legacy/emotion/src/modules/xine/emotion_xine.h
@@ -0,0 +1,92 @@
1#ifndef EMOTION_XINE_H
2#define EMOTION_XINE_H
3
4#include <xine.h>
5#include <xine/xine_plugin.h>
6#include <unistd.h>
7#include <fcntl.h>
8#include <pthread.h>
9
10typedef struct _Emotion_Xine_Video Emotion_Xine_Video;
11typedef struct _Emotion_Xine_Video_Frame Emotion_Xine_Video_Frame;
12typedef struct _Emotion_Xine_Event Emotion_Xine_Event;
13
14struct _Emotion_Xine_Video
15{
16 xine_t *decoder;
17 xine_video_port_t *video;
18 xine_audio_port_t *audio;
19 xine_stream_t *stream;
20 xine_event_queue_t *queue;
21 volatile double len;
22 volatile double pos;
23 double fps;
24 double ratio;
25 int w, h;
26 Evas_Object *obj;
27 volatile Emotion_Xine_Video_Frame *cur_frame;
28 volatile int get_poslen;
29 volatile int spu_channel;
30 volatile int audio_channel;
31 volatile int video_channel;
32 volatile double seek_to_pos;
33 volatile double seeked_pos;
34 volatile int fq;
35 Emotion_Vis vis;
36 int fd_read;
37 int fd_write;
38 Ecore_Fd_Handler *fd_handler;
39 int fd_ev_read;
40 int fd_ev_write;
41 Ecore_Fd_Handler *fd_ev_handler;
42 unsigned char play : 1;
43 unsigned char just_loaded : 1;
44 unsigned char video_mute : 1;
45 unsigned char audio_mute : 1;
46 unsigned char spu_mute : 1;
47 unsigned char opt_no_video : 1;
48 unsigned char opt_no_audio : 1;
49 volatile unsigned char delete_me : 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;
54 volatile unsigned char play_ok : 1;
55
56 pthread_t get_pos_len_th;
57 pthread_cond_t get_pos_len_cond;
58 pthread_mutex_t get_pos_len_mutex;
59
60 pthread_t slave_th;
61 int fd_slave_read;
62 int fd_slave_write;
63
64 unsigned char get_pos_thread_deleted : 1;
65};
66
67struct _Emotion_Xine_Video_Frame
68{
69 int w, h;
70 double ratio;
71 Emotion_Format format;
72 unsigned char *y, *u, *v;
73 unsigned char *bgra_data;
74 int y_stride, u_stride, v_stride;
75 Evas_Object *obj;
76 double timestamp;
77 void (*done_func)(void *data);
78 void *done_data;
79 void *frame;
80};
81
82struct _Emotion_Xine_Event
83{
84 int type;
85 void *xine_event;
86 int mtype;
87};
88
89unsigned char module_open(Evas_Object *obj, const Emotion_Video_Module **module, void **video, Emotion_Module_Options *opt);
90void module_close(Emotion_Video_Module *module, void *video);
91
92#endif