diff --git a/libobs/media-io/format-conversion.c b/libobs/media-io/format-conversion.c index 63ef98ead0817e98780b2746c442ce9ea47fd02a..dbf92bff1798bcbe04c9e83f2b40b311219c3446 100644 --- a/libobs/media-io/format-conversion.c +++ b/libobs/media-io/format-conversion.c @@ -19,17 +19,17 @@ #include #include -static inline uint32_t get_m128_32_0(const __m128i val) +static FORCE_INLINE uint32_t get_m128_32_0(const __m128i val) { return *(uint32_t* const)&val; } -static inline uint32_t get_m128_32_1(const __m128i val) +static FORCE_INLINE uint32_t get_m128_32_1(const __m128i val) { return *(((uint32_t* const)&val)+1); } -static inline void pack_lum(uint8_t *lum_plane, +static FORCE_INLINE void pack_lum(uint8_t *lum_plane, uint32_t lum_pos0, uint32_t lum_pos1, const __m128i line1, const __m128i line2, const __m128i lum_mask) @@ -43,7 +43,7 @@ static inline void pack_lum(uint8_t *lum_plane, *(uint32_t*)(lum_plane+lum_pos1) = get_m128_32_1(pack_val); } -static inline void pack_chroma_1plane(uint8_t *uv_plane, +static FORCE_INLINE void pack_chroma_1plane(uint8_t *uv_plane, uint32_t chroma_pos, const __m128i line1, const __m128i line2, const __m128i uv_mask) @@ -61,7 +61,7 @@ static inline void pack_chroma_1plane(uint8_t *uv_plane, *(uint32_t*)(uv_plane+chroma_pos) = get_m128_32_0(avg_val); } -static inline void pack_chroma_2plane(uint8_t *u_plane, uint8_t *v_plane, +static FORCE_INLINE void pack_chroma_2plane(uint8_t *u_plane, uint8_t *v_plane, uint32_t chroma_pos, const __m128i line1, const __m128i line2, const __m128i uv_mask) diff --git a/libobs/util/c99defs.h b/libobs/util/c99defs.h index 4ab7dab1a24151db582e3f95b952db103162c03f..e1ecb004d682c036b54682298cec92ffeed4cd41 100644 --- a/libobs/util/c99defs.h +++ b/libobs/util/c99defs.h @@ -36,6 +36,12 @@ #define inline __inline #endif +#ifdef _MSC_VER +#define FORCE_INLINE __forceinline +#else +#define FORCE_INLINE __attribute__(always_inline) +#endif + #define EXPORT __declspec(dllexport) #else #define EXPORT diff --git a/vs/2013/libobs/libobs.vcxproj b/vs/2013/libobs/libobs.vcxproj index 3c1cba9385957e140e88b43c223e32410665ee9f..1a8fdfe08c10751c86afa173527b6f290331f33a 100644 --- a/vs/2013/libobs/libobs.vcxproj +++ b/vs/2013/libobs/libobs.vcxproj @@ -194,6 +194,8 @@ false MultiThreadedDebug ../../../libobs/util/vc + ProgramDatabase + OnlyExplicitInline Windows @@ -215,6 +217,7 @@ false MultiThreadedDebug ../../../libobs/util/vc + OnlyExplicitInline Windows