[723] | 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 | |
---|
[736] | 18 | //////////////////////////////////////////////////////////////////////////////////////// |
---|
| 19 | // Configuration Variables |
---|
| 20 | //////////////////////////////////////////////////////////////////////////////////////// |
---|
[723] | 21 | |
---|
[736] | 22 | #define MAX_IMAGES 16 |
---|
| 23 | |
---|
| 24 | #define USE_DCT_COPROC 1 |
---|
| 25 | |
---|
| 26 | #define INTERACTIVE_MODE 0 |
---|
| 27 | |
---|
[723] | 28 | //////////////////////////////////////////////////////////////////////////////////////// |
---|
| 29 | // MWMMR channels depths (number of 32 bits words) |
---|
| 30 | //////////////////////////////////////////////////////////////////////////////////////// |
---|
| 31 | |
---|
[736] | 32 | #define TG_2_DEMUX_DEPTH 1024 |
---|
| 33 | #define DEMUX_2_VLD_DATA_DEPTH 1024 |
---|
| 34 | #define DEMUX_2_VLD_HUFF_DEPTH 1024 |
---|
| 35 | #define DEMUX_2_IQZZ_DEPTH 1024 |
---|
| 36 | #define VLD_2_IQZZ_DEPTH 1024 |
---|
| 37 | #define IQZZ_2_IDCT_DEPTH 1024 |
---|
| 38 | #define IDCT_2_LIBU_DEPTH 1024 |
---|
[723] | 39 | |
---|
| 40 | //////////////////////////////////////////////////////////////////////////////////////// |
---|
| 41 | // debug variables |
---|
| 42 | // O : No trace |
---|
| 43 | // 1 : simple debug |
---|
| 44 | // 2 : detailed debug |
---|
| 45 | //////////////////////////////////////////////////////////////////////////////////////// |
---|
| 46 | |
---|
[736] | 47 | #define DEBUG_CLUSTER_INDEX 0xFFFFFFFF // use 0xFFFFFFFF for all clusters |
---|
[723] | 48 | |
---|
[736] | 49 | #define DEBUG_TG 1 |
---|
| 50 | #define DEBUG_DEMUX 1 |
---|
| 51 | #define DEBUG_VLD 1 |
---|
| 52 | #define DEBUG_IQZZ 1 |
---|
| 53 | #define DEBUG_IDCT 1 |
---|
| 54 | #define DEBUG_LIBU 1 |
---|
| 55 | |
---|
[723] | 56 | //////////////////////////////////////////////////////////////////////////////////////// |
---|
[736] | 57 | // Global variables (allocated in mjpeg.c) |
---|
[723] | 58 | //////////////////////////////////////////////////////////////////////////////////////// |
---|
| 59 | |
---|
| 60 | extern uint32_t fd; // file descriptor for the file containing MJPEG stream |
---|
| 61 | |
---|
| 62 | extern mwmr_channel_t* tg_2_demux[256]; // one per cluster |
---|
| 63 | extern mwmr_channel_t* demux_2_vld_data[256]; // one per cluster |
---|
| 64 | extern mwmr_channel_t* demux_2_vld_huff[256]; // one per cluster |
---|
| 65 | extern mwmr_channel_t* demux_2_iqzz[256]; // one per cluster |
---|
| 66 | extern mwmr_channel_t* vld_2_iqzz[256]; // one per cluster |
---|
| 67 | extern mwmr_channel_t* iqzz_2_idct[256]; // one per cluster |
---|
| 68 | extern mwmr_channel_t* idct_2_libu[256]; // one per cluster |
---|
| 69 | |
---|
[736] | 70 | extern pthread_t trdid_tg; |
---|
| 71 | extern pthread_t trdid_demux[256]; // one per cluster |
---|
| 72 | extern pthread_t trdid_vld[256]; // one per cluster |
---|
| 73 | extern pthread_t trdid_iqzz[256]; // one per cluster |
---|
| 74 | extern pthread_t trdid_idct[256]; // one per cluster |
---|
| 75 | extern pthread_t trdid_libu[256]; // one per cluster |
---|
| 76 | |
---|
[723] | 77 | extern user_lock_t tty_lock; // lock protecting shared TTY |
---|
| 78 | |
---|
| 79 | extern uint8_t* cma_buf[256]; // CMA buffers (one per cluster) |
---|
| 80 | extern void* cma_sts[256]; // CMA buffers status |
---|
| 81 | |
---|
| 82 | extern uint32_t fbf_width; // Frame Buffer width |
---|
| 83 | extern uint32_t fbf_height; // Frame Buffer height |
---|
| 84 | |
---|
| 85 | extern uint32_t nblocks_h; // number of blocks in a column |
---|
| 86 | extern uint32_t nblocks_w; // number of blocks in a row |
---|
| 87 | |
---|
| 88 | extern uint32_t date[MAX_IMAGES]; // date of completion in libu |
---|
| 89 | |
---|
| 90 | #endif |
---|