mirror of https://github.com/FFmpeg/FFmpeg.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
2.3 KiB
77 lines
2.3 KiB
#ifndef __WINDOWS2LINUX_H__ |
|
#define __WINDOWS2LINUX_H__ |
|
|
|
/* |
|
* LINUX SPECIFIC DEFINITIONS |
|
*/ |
|
// |
|
// Data types conversions |
|
// |
|
#include <stdlib.h> |
|
#include <string.h> |
|
#include "basicDataTypeConversions.h" |
|
|
|
#ifdef __cplusplus |
|
namespace avxsynth { |
|
#endif // __cplusplus |
|
// |
|
// purposefully define the following MSFT definitions |
|
// to mean nothing (as they do not mean anything on Linux) |
|
// |
|
#define __stdcall |
|
#define __cdecl |
|
#define noreturn |
|
#define __declspec(x) |
|
#define STDAPI extern "C" HRESULT |
|
#define STDMETHODIMP HRESULT __stdcall |
|
#define STDMETHODIMP_(x) x __stdcall |
|
|
|
#define STDMETHOD(x) virtual HRESULT x |
|
#define STDMETHOD_(a, x) virtual a x |
|
|
|
#ifndef TRUE |
|
#define TRUE true |
|
#endif |
|
|
|
#ifndef FALSE |
|
#define FALSE false |
|
#endif |
|
|
|
#define S_OK (0x00000000) |
|
#define S_FALSE (0x00000001) |
|
#define E_NOINTERFACE (0X80004002) |
|
#define E_POINTER (0x80004003) |
|
#define E_FAIL (0x80004005) |
|
#define E_OUTOFMEMORY (0x8007000E) |
|
|
|
#define INVALID_HANDLE_VALUE ((HANDLE)((LONG_PTR)-1)) |
|
#define FAILED(hr) ((hr) & 0x80000000) |
|
#define SUCCEEDED(hr) (!FAILED(hr)) |
|
|
|
|
|
// |
|
// Functions |
|
// |
|
#define MAKEDWORD(a,b,c,d) ((a << 24) | (b << 16) | (c << 8) | (d)) |
|
#define MAKEWORD(a,b) ((a << 8) | (b)) |
|
|
|
#define lstrlen strlen |
|
#define lstrcpy strcpy |
|
#define lstrcmpi strcasecmp |
|
#define _stricmp strcasecmp |
|
#define InterlockedIncrement(x) __sync_fetch_and_add((x), 1) |
|
#define InterlockedDecrement(x) __sync_fetch_and_sub((x), 1) |
|
// Windows uses (new, old) ordering but GCC has (old, new) |
|
#define InterlockedCompareExchange(x,y,z) __sync_val_compare_and_swap(x,z,y) |
|
|
|
#define UInt32x32To64(a, b) ( (uint64_t) ( ((uint64_t)((uint32_t)(a))) * ((uint32_t)(b)) ) ) |
|
#define Int64ShrlMod32(a, b) ( (uint64_t) ( (uint64_t)(a) >> (b) ) ) |
|
#define Int32x32To64(a, b) ((__int64)(((__int64)((long)(a))) * ((long)(b)))) |
|
|
|
#define MulDiv(nNumber, nNumerator, nDenominator) (int32_t) (((int64_t) (nNumber) * (int64_t) (nNumerator) + (int64_t) ((nDenominator)/2)) / (int64_t) (nDenominator)) |
|
|
|
#ifdef __cplusplus |
|
}; // namespace avxsynth |
|
#endif // __cplusplus |
|
|
|
#endif // __WINDOWS2LINUX_H__
|
|
|