]> git.vomp.tv Git - vompclient-marten.git/blob - defines.h
FFMPEG decoding in color at 7 fps
[vompclient-marten.git] / defines.h
1 /*\r
2     Copyright 2004-2005 Chris Tallon\r
3 \r
4     This file is part of VOMP.\r
5 \r
6     VOMP is free software; you can redistribute it and/or modify\r
7     it under the terms of the GNU General Public License as published by\r
8     the Free Software Foundation; either version 2 of the License, or\r
9     (at your option) any later version.\r
10 \r
11     VOMP is distributed in the hope that it will be useful,\r
12     but WITHOUT ANY WARRANTY; without even the implied warranty of\r
13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
14     GNU General Public License for more details.\r
15 \r
16     You should have received a copy of the GNU General Public License\r
17     along with VOMP; if not, write to the Free Software\r
18     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.\r
19 */\r
20 \r
21 #ifndef DEFINES_H\r
22 #define DEFINES_H\r
23 \r
24 typedef unsigned char UCHAR;\r
25 typedef unsigned short USHORT;\r
26 typedef unsigned int UINT;\r
27 typedef unsigned long ULONG;\r
28 typedef unsigned long long ULLONG;\r
29 \r
30 #define OPTIONTYPE_TEXT 1\r
31 #define OPTIONTYPE_INT 2\r
32 \r
33 #define BENCHMARK_FPS\r
34 \r
35 //ULLONG htonll(ULLONG a);\r
36 //ULLONG ntohll(ULLONG a);\r
37 void MILLISLEEP(ULONG a);\r
38 long long getTimeMS();\r
39 \r
40 #ifdef WIN32\r
41 \r
42   #define Surface_TYPE SurfaceWin\r
43   #define Thread_TYPE ThreadWin\r
44   #define ThreadID_TYPE unsigned int\r
45 \r
46   #define SNPRINTF _snprintf\r
47   #define VSNPRINTF _vsnprintf\r
48   #define STRCASECMP _stricmp\r
49   #define STRCASESTR StrStrI\r
50 /*  #define STRTOULL _strtoui64 */\r
51   #define STRTOUL strtoul\r
52   #define CLOSESOCKET closesocket\r
53 \r
54 \r
55 #else\r
56 \r
57   int max(int, int);\r
58   int min(UINT, int);\r
59 /*#ifdef _MIPS_ARCH\r
60   #define Surface_TYPE SurfaceDirectFB\r
61 #else\r
62   #define Surface_TYPE SurfaceMVP\r
63 #endif*/\r
64 #ifdef __ANDROID__\r
65   #define Thread_TYPE ThreadPAndroid\r
66 \r
67 #else\r
68   #define Thread_TYPE ThreadP\r
69 \r
70 #endif\r
71   #include <pthread.h>\r
72   #define ThreadID_TYPE pthread_t\r
73 \r
74   #define SNPRINTF snprintf\r
75   #define VSNPRINTF vsnprintf\r
76   #define STRCASECMP strcasecmp\r
77   #define STRCASESTR strcasestr\r
78   #define STRTOUL strtoul\r
79   #define CLOSESOCKET close\r
80 \r
81 // add here defines for plattform specific objects\r
82 #ifdef VOMP_PLATTFORM_RASPBERRY\r
83    #define Remote_TYPE RemoteLinux  // Generic Remote under Linux (Konsole!, not X) will support in the end:\r
84    #define RemoteStartDev ""//No devices passed\r
85 \r
86   // Keyboard\r
87   // remotes under /dev/event\r
88   // HDMI CEC\r
89   //lirc?\r
90    #define Mtd_TYPE MtdRaspberry  //this is device dependent\r
91    #define Led_TYPE LedRaspberry  //this is device dependent\r
92    #define Osd_TYPE OsdOpenGL   // This OpenGL ES 2.0, in the moment only for raspberry, but might be splitted for other devices\r
93    #define OsdStartDev ""\r
94    #define Audio_TYPE AudioVPE   // This is Audio based on VPE (Vomp Presentation Engine) should support OpenMax and Alsa with ffmpeg in the end\r
95    #define Video_TYPE VideoVPEOGL   // This is Video based on VPE (Vomp Presentation Engine) should support OpenMax and ffmpeg and opengl in the end\r
96 \r
97 \r
98 \r
99    #define VPE_OMX_SUPPORT // Activate support for hardware codec using openmax il\r
100    #define VPE_OMX_H264_DECODER "OMX.broadcom.video_decode"\r
101    #define VPE_OMX_MPEG2_DECODER "OMX.broadcom.video_decode"\r
102    #define VPE_OMX_VIDEO_SCHED "OMX.broadcom.video_scheduler"\r
103    #define VPE_OMX_VIDEO_REND "OMX.broadcom.video_render"\r
104    #define VPE_OMX_VIDEO_DEINTERLACE "OMX.broadcom.image_fx"\r
105    #define VPE_OMX_CLOCK "OMX.broadcom.clock"\r
106 \r
107    #define  VPE_FFMPEG_SUPPORT\r
108 \r
109 #endif\r
110 #ifdef VOMP_PLATTFORM_MVP\r
111   #define Remote_TYPE RemoteMVP\r
112   #define RemoteStartDev "/dev/rawir"\r
113   #define Mtd_TYPE MtdMVP\r
114   #define Led_TYPE LedMVP\r
115   #define Osd_TYPE OsdMVP\r
116   #define OsdStartDev "/dev/stbgfx"\r
117   #define Audio_TYPE AudioMVP\r
118   #define Video_TYPE VideoMVP\r
119 #endif\r
120 \r
121 #ifdef VOMP_PLATTFORM_NMT // This was the attempt to port vomp to nmt, it failed but maybe the code is useful at some time\r
122   #define Remote_TYPE RemoteLirc\r
123   #define RemoteStartDev "/dev/lircd"\r
124   #define Mtd_TYPE MtdNMT\r
125   #define Led_TYPE LedMVP\r
126   #define Osd_TYPE OsdDirectFB\r
127   #define OsdStartDev ""\r
128   #define Audio_TYPE AudioNMT\r
129   #define Video_TYPE VideoNMT\r
130 \r
131 #endif\r
132 \r
133 #endif\r
134 \r
135 /*\r
136 typedef struct\r
137 {\r
138   UINT id;               // Used for working out what has changed at the end\r
139   char *title;           // Name of the option\r
140   char *configSection;   // Which section of the config file\r
141   char *configParam;     // Parameter name in the config file\r
142   UINT optionType;       // 1 for text, 2 for int\r
143   UINT optionCount;      // How many choices?\r
144   UINT defaultOption;    // Serial of the default choice (base 0), or actual option in int mode\r
145   int startInt;          // Starting int for int mode\r
146   const char * const * options;  // Text for the options (null for int mode)\r
147 } OPTIONDATA;\r
148 */\r
149 \r
150 #endif\r