Subversion Repositories Kolibri OS

Rev

Rev 5603 | Rev 6117 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
4438 Serge 1
 
5372 serge 2
#include 
5603 serge 3
4438 Serge 4
 
5
#define BLACK_MAGIC_VIDEO
6
7
 
8
typedef unsigned int count_t;
9
10
 
11
12
 
13
#define HAS_TOP         (1<<1)
14
#define HAS_RIGHT       (1<<2)
15
#define HAS_BOTTOM      (1<<3)
16
17
 
18
{
19
    uint32_t   caps;
20
    uint32_t   ctx_width;
21
    uint32_t   ctx_height;
22
    uint32_t   win_width;
23
    uint32_t   win_height;
24
25
 
26
    rect_t     rcvideo;
27
    rect_t     rcleft;
28
    rect_t     rctop;
29
    rect_t     rcright;
30
    rect_t     rcbottom;
31
32
 
33
    bitmap_t  *bitmap[4];
5372 serge 34
    bitmap_t  *last_bitmap;
4438 Serge 35
36
 
37
    int        target;
38
39
 
40
    enum{
41
      EMPTY, INIT }state;
42
    enum win_state win_state;
43
44
 
45
};
46
47
 
48
{
49
    CLOSED = 0,
50
    PREPARE,
51
    STOP,
52
    PAUSE,
53
    PLAY,
54
    REWIND,
55
    PLAY_2_STOP,
56
    PLAY_2_PAUSE,
57
    PAUSE_2_PLAY,
58
    REWIND_2_PLAY,
59
};
60
61
 
62
#define ID_STOP             101
63
#define ID_PROGRESS         102
64
#define ID_VOL_LEVEL        103
65
#define ID_VOL_CTRL         104
66
67
 
5603 serge 68
 
4438 Serge 69
{
70
    mutex_t lock;
5603 serge 71
    char    *buffer;
72
    int     count;
73
}astream_t;
4438 Serge 74
75
 
76
{
77
  unsigned int  code;
78
  unsigned int  sender;
79
  unsigned int  stream;
80
  unsigned int  offset;
81
  unsigned int  size;
82
  unsigned int  unused[2];
83
}SND_EVENT;
84
85
 
86
 
87
    AVPacketList *first_pkt;
88
    AVPacketList *last_pkt;
89
    int size;
90
    int count;
91
    mutex_t             lock;
5603 serge 92
} queue_t;
4438 Serge 93
94
 
95
int get_packet(queue_t *q, AVPacket *pkt);
96
97
 
98
 
5603 serge 99
#define AUDIO_THREAD    2
100
#define VIDEO_THREAD    4
101
102
 
103
extern astream_t astream;
4438 Serge 104
extern AVRational video_time_base;
105
106
 
107
void destroy_render(render_t *render);
108
int init_render(render_t *render, int width, int height);
109
void render_adjust_size(render_t *render, window_t *win);
110
void render_set_size(render_t *render, int width, int height);
111
void render_draw_client(render_t *render);
112
113
 
114
 
115
int audio_thread(void *param);
116
void set_audio_volume(int left, int right);
117
118
 
119
int video_thread(void *param);
120
121
 
122
int decode_audio(AVCodecContext  *ctx, queue_t *qa);
123
124
 
125
126
 
127
{
128
    __asm__ __volatile__ (
129
    "int $0x40"
130
    ::"a"(68),"b"(14),"c"(event));
131
}
132
133
 
5592 serge 134
int init_fontlib();
4438 Serge 135
char *get_moviefile();
136
137