FFmpeg: compat/avisynth/windowsPorts/windows2linux.h Source File

FFmpeg
windows2linux.h
Go to the documentation of this file.
1 #ifndef __WINDOWS2LINUX_H__
2 #define __WINDOWS2LINUX_H__
3 
4 /*
5  * LINUX SPECIFIC DEFINITIONS
6 */
7 //
8 // Data types conversions
9 //
10 #include <stdlib.h>
11 #include <string.h>
12 #include "basicDataTypeConversions.h"
13 
14 #ifdef __cplusplus
15 namespace avxsynth {
16 #endif // __cplusplus
17 //
18 // purposefully define the following MSFT definitions
19 // to mean nothing (as they do not mean anything on Linux)
20 //
21  #define __stdcall
22  #define __cdecl
23  #define noreturn
24  #define __declspec(x)
25  #define STDAPI extern "C" HRESULT
26  #define STDMETHODIMP HRESULT __stdcall
27  #define STDMETHODIMP_(x) x __stdcall
28 
29  #define STDMETHOD(x) virtual HRESULT x
30  #define STDMETHOD_(a, x) virtual a x
31 
32 #ifndef TRUE
33  #define TRUE true
34 #endif
35 
36 #ifndef FALSE
37  #define FALSE false
38 #endif
39 
40  #define S_OK (0x00000000)
41  #define S_FALSE (0x00000001)
42  #define E_NOINTERFACE (0X80004002)
43  #define E_POINTER (0x80004003)
44  #define E_FAIL (0x80004005)
45  #define E_OUTOFMEMORY (0x8007000E)
46 
47  #define INVALID_HANDLE_VALUE ((HANDLE)((LONG_PTR)-1))
48  #define FAILED(hr) ((hr) & 0x80000000)
49  #define SUCCEEDED(hr) (!FAILED(hr))
50 
51 
52 //
53 // Functions
54 //
55  #define MAKEDWORD(a,b,c,d) (((a) << 24) | ((b) << 16) | ((c) << 8) | (d))
56  #define MAKEWORD(a,b) (((a) << 8) | (b))
57 
58  #define lstrlen strlen
59  #define lstrcpy strcpy
60  #define lstrcmpi strcasecmp
61  #define _stricmp strcasecmp
62  #define InterlockedIncrement(x) __sync_fetch_and_add((x), 1)
63  #define InterlockedDecrement(x) __sync_fetch_and_sub((x), 1)
64 // Windows uses (new, old) ordering but GCC has (old, new)
65  #define InterlockedCompareExchange(x,y,z) __sync_val_compare_and_swap(x,z,y)
66 
67  #define UInt32x32To64(a, b) ( (uint64_t) ( ((uint64_t)((uint32_t)(a))) * ((uint32_t)(b)) ) )
68  #define Int64ShrlMod32(a, b) ( (uint64_t) ( (uint64_t)(a) >> (b) ) )
69  #define Int32x32To64(a, b) ((__int64)(((__int64)((long)(a))) * ((long)(b))))
70 
71  #define MulDiv(nNumber, nNumerator, nDenominator) (int32_t) (((int64_t) (nNumber) * (int64_t) (nNumerator) + (int64_t) ((nDenominator)/2)) / (int64_t) (nDenominator))
72 
73 #ifdef __cplusplus
74 }; // namespace avxsynth
75 #endif // __cplusplus
76 
77 #endif // __WINDOWS2LINUX_H__

Generated on Mon Feb 15 2016 15:20:35 for FFmpeg by   doxygen 1.8.6

AltStyle によって変換されたページ (->オリジナル) /