| #ifndef MP4V2_PLATFORM_POSIX_H |
| #define MP4V2_PLATFORM_POSIX_H |
| |
| /////////////////////////////////////////////////////////////////////////////// |
| |
| #include "libplatform/config.h" |
| |
| /////////////////////////////////////////////////////////////////////////////// |
| |
| // constant macros are not usually used with C++ so the standard mechanism to |
| // activate it is to define before stdint.h |
| #ifndef __STDC_CONSTANT_MACROS |
| # define __STDC_CONSTANT_MACROS |
| #endif |
| |
| // format macros are not usually used with C++ so the standard mechanism to |
| // activate it is to define before inttypes.h |
| #ifndef __STDC_FORMAT_MACROS |
| # define __STDC_FORMAT_MACROS |
| #endif |
| |
| #ifdef NEED_LFS_ACTIVATION |
| # ifndef _LARGEFILE_SOURCE |
| # define _LARGEFILE_SOURCE |
| # define _FILE_OFFSET_BITS 64 |
| # endif |
| #endif |
| |
| /////////////////////////////////////////////////////////////////////////////// |
| |
| #include "libplatform/platform_base.h" |
| #include <inttypes.h> |
| #include <stdint.h> |
| #include <fcntl.h> |
| #include <unistd.h> |
| #include <functional> |
| |
| #include <mp4v2/mp4v2.h> |
| |
| /////////////////////////////////////////////////////////////////////////////// |
| |
| namespace mp4v2 { namespace platform { |
| // using namespace std; |
| |
| using ::int8_t; |
| using ::int16_t; |
| using ::int32_t; |
| using ::int64_t; |
| |
| using ::uint8_t; |
| using ::uint16_t; |
| using ::uint32_t; |
| using ::uint64_t; |
| }} // namespace mp4v2::platform |
| |
| /////////////////////////////////////////////////////////////////////////////// |
| |
| // win32 platform requires O_BINARY when using old open() calls so we add |
| // this harmless bit-flag for posix to avoid .cpp platform conditionals |
| #ifndef O_BINARY |
| # define O_BINARY 0 |
| #endif |
| |
| /////////////////////////////////////////////////////////////////////////////// |
| |
| // ARM seems to require integer instructions operands to have 4-byte alignment |
| // so we set this macro to for some int<->string code to manually copy string |
| // bytes into an int which aligns it. This is much easier than trying to |
| // align pertinent string data (constants) from in text sections. |
| #if defined( __arm__ ) |
| # define MP4V2_INTSTRING_ALIGNMENT 1 |
| #else |
| # undef MP4V2_INTSTRING_ALIGNMENT |
| #endif |
| |
| /////////////////////////////////////////////////////////////////////////////// |
| |
| #endif // MP4V2_PLATFORM_POSIX_H |