1 | ///////////////////////////////////////////////////////////////////////////////////////// |
---|
2 | // File : mjpeg.h |
---|
3 | // Date : octobre 2015 |
---|
4 | // author : Alain Greiner |
---|
5 | ///////////////////////////////////////////////////////////////////////////////////////// |
---|
6 | // This file contains all global variables allocated in the mjpeg.c file, |
---|
7 | // and used by the threads of the MJPEG application. |
---|
8 | // It defines also the debug directives. |
---|
9 | ///////////////////////////////////////////////////////////////////////////////////////// |
---|
10 | |
---|
11 | #ifndef MJPEG_GLOBALS_H |
---|
12 | #define MJPEG_GLOBALS_H |
---|
13 | |
---|
14 | #include <stdint.h> |
---|
15 | #include <mwmr_channel.h> |
---|
16 | #include <user_lock.h> |
---|
17 | |
---|
18 | #define MAX_IMAGES 64 |
---|
19 | |
---|
20 | //////////////////////////////////////////////////////////////////////////////////////// |
---|
21 | // MWMMR channels depths (number of 32 bits words) |
---|
22 | //////////////////////////////////////////////////////////////////////////////////////// |
---|
23 | |
---|
24 | #define TG_2_DEMUX_DEPTH 256 |
---|
25 | #define DEMUX_2_VLD_DATA_DEPTH 256 |
---|
26 | #define DEMUX_2_VLD_HUFF_DEPTH 256 |
---|
27 | #define DEMUX_2_IQZZ_DEPTH 256 |
---|
28 | #define VLD_2_IQZZ_DEPTH 256 |
---|
29 | #define IQZZ_2_IDCT_DEPTH 256 |
---|
30 | #define IDCT_2_LIBU_DEPTH 256 |
---|
31 | |
---|
32 | //////////////////////////////////////////////////////////////////////////////////////// |
---|
33 | // debug variables |
---|
34 | // O : No trace |
---|
35 | // 1 : simple debug |
---|
36 | // 2 : detailed debug |
---|
37 | //////////////////////////////////////////////////////////////////////////////////////// |
---|
38 | |
---|
39 | #define DEBUG_TG 1 |
---|
40 | #define DEBUG_DEMUX 0 |
---|
41 | #define DEBUG_VLD 0 |
---|
42 | #define DEBUG_IQZZ 0 |
---|
43 | #define DEBUG_IDCT 0 |
---|
44 | #define DEBUG_LIBU 0 |
---|
45 | |
---|
46 | //////////////////////////////////////////////////////////////////////////////////////// |
---|
47 | // Global variables |
---|
48 | //////////////////////////////////////////////////////////////////////////////////////// |
---|
49 | |
---|
50 | extern uint32_t fd; // file descriptor for the file containing MJPEG stream |
---|
51 | |
---|
52 | extern mwmr_channel_t* tg_2_demux[256]; // one per cluster |
---|
53 | extern mwmr_channel_t* demux_2_vld_data[256]; // one per cluster |
---|
54 | extern mwmr_channel_t* demux_2_vld_huff[256]; // one per cluster |
---|
55 | extern mwmr_channel_t* demux_2_iqzz[256]; // one per cluster |
---|
56 | extern mwmr_channel_t* vld_2_iqzz[256]; // one per cluster |
---|
57 | extern mwmr_channel_t* iqzz_2_idct[256]; // one per cluster |
---|
58 | extern mwmr_channel_t* idct_2_libu[256]; // one per cluster |
---|
59 | |
---|
60 | extern user_lock_t tty_lock; // lock protecting shared TTY |
---|
61 | |
---|
62 | extern uint8_t* cma_buf[256]; // CMA buffers (one per cluster) |
---|
63 | extern void* cma_sts[256]; // CMA buffers status |
---|
64 | |
---|
65 | extern uint32_t fbf_width; // Frame Buffer width |
---|
66 | extern uint32_t fbf_height; // Frame Buffer height |
---|
67 | |
---|
68 | extern uint32_t nblocks_h; // number of blocks in a column |
---|
69 | extern uint32_t nblocks_w; // number of blocks in a row |
---|
70 | |
---|
71 | extern uint32_t date[MAX_IMAGES]; // date of completion in libu |
---|
72 | |
---|
73 | #endif |
---|