Initial community commit
This commit is contained in:
parent
537bcbc862
commit
fc06254474
16440 changed files with 4239995 additions and 2 deletions
202
Src/libvp6/include/endian.hpp
Normal file
202
Src/libvp6/include/endian.hpp
Normal file
|
@ -0,0 +1,202 @@
|
|||
#if !defined(ENDIAN_HPP)
|
||||
#define ENDIAN_HPP
|
||||
//______________________________________________________________________________
|
||||
//
|
||||
// endian.hpp
|
||||
// Facilitate endian conversions.
|
||||
|
||||
//namespace xxx
|
||||
//{
|
||||
|
||||
//--------------------------------------
|
||||
inline
|
||||
bool big_endian()
|
||||
{
|
||||
long lTest = 1;
|
||||
|
||||
return (reinterpret_cast<char*>(&lTest)[0] == 0);
|
||||
}
|
||||
|
||||
//--------------------------------------
|
||||
inline
|
||||
short swap_endian(short i16)
|
||||
{
|
||||
return i16 << 8 & 0xff00
|
||||
| i16 >> 8 & 0x00ff;
|
||||
}
|
||||
|
||||
//--------------------------------------
|
||||
inline
|
||||
unsigned short swap_endian(unsigned short ui16)
|
||||
{
|
||||
return ui16 << 8 & 0xff00
|
||||
| ui16 >> 8 & 0x00ff;
|
||||
}
|
||||
|
||||
//--------------------------------------
|
||||
inline
|
||||
unsigned int swap_endian(unsigned int i32)
|
||||
{
|
||||
return i32 << 24 & 0xff000000
|
||||
| i32 << 8 & 0x00ff0000
|
||||
| i32 >> 8 & 0x0000ff00
|
||||
| i32 >> 24 & 0x000000ff;
|
||||
}
|
||||
|
||||
//--------------------------------------
|
||||
inline
|
||||
int swap_endian(int ui32)
|
||||
{
|
||||
return ui32 << 24 & 0xff000000
|
||||
| ui32 << 8 & 0x00ff0000
|
||||
| ui32 >> 8 & 0x0000ff00
|
||||
| ui32 >> 24 & 0x000000ff;
|
||||
}
|
||||
|
||||
//--------------------------------------
|
||||
inline
|
||||
short big_endian(short i16Native)
|
||||
{
|
||||
if (big_endian())
|
||||
{
|
||||
return i16Native;
|
||||
}
|
||||
|
||||
return swap_endian(i16Native);
|
||||
}
|
||||
|
||||
//--------------------------------------
|
||||
inline
|
||||
unsigned short big_endian(unsigned short ui16Native)
|
||||
{
|
||||
if (big_endian())
|
||||
{
|
||||
return ui16Native;
|
||||
}
|
||||
|
||||
return swap_endian(ui16Native);
|
||||
}
|
||||
|
||||
//--------------------------------------
|
||||
inline
|
||||
unsigned int big_endian(unsigned int i32Native)
|
||||
{
|
||||
if (big_endian())
|
||||
{
|
||||
return i32Native;
|
||||
}
|
||||
|
||||
return swap_endian(i32Native);
|
||||
}
|
||||
|
||||
//--------------------------------------
|
||||
inline
|
||||
int big_endian(int ui32Native)
|
||||
{
|
||||
if (big_endian())
|
||||
{
|
||||
return ui32Native;
|
||||
}
|
||||
|
||||
return swap_endian(ui32Native);
|
||||
}
|
||||
|
||||
//--------------------------------------
|
||||
inline
|
||||
short little_endian(short i16Native)
|
||||
{
|
||||
if (!big_endian())
|
||||
{
|
||||
return i16Native;
|
||||
}
|
||||
|
||||
return swap_endian(i16Native);
|
||||
}
|
||||
|
||||
//--------------------------------------
|
||||
inline
|
||||
unsigned short little_endian(unsigned short ui16Native)
|
||||
{
|
||||
if (!big_endian())
|
||||
{
|
||||
return ui16Native;
|
||||
}
|
||||
|
||||
return swap_endian(ui16Native);
|
||||
}
|
||||
|
||||
//--------------------------------------
|
||||
inline
|
||||
unsigned int little_endian(unsigned int i32Native)
|
||||
{
|
||||
if (!big_endian())
|
||||
{
|
||||
return i32Native;
|
||||
}
|
||||
|
||||
return swap_endian(i32Native);
|
||||
}
|
||||
|
||||
//--------------------------------------
|
||||
inline
|
||||
int little_endian(int ui32Native)
|
||||
{
|
||||
if (!big_endian())
|
||||
{
|
||||
return ui32Native;
|
||||
}
|
||||
|
||||
return swap_endian(ui32Native);
|
||||
}
|
||||
|
||||
//--------------------------------------
|
||||
inline
|
||||
short native_endian(short i16, bool bBigEndian)
|
||||
{
|
||||
if (big_endian() != bBigEndian)
|
||||
{
|
||||
return swap_endian(i16);
|
||||
}
|
||||
|
||||
return i16;
|
||||
}
|
||||
|
||||
//--------------------------------------
|
||||
inline
|
||||
unsigned short native_endian(unsigned short ui16, bool bBigEndian)
|
||||
{
|
||||
if (big_endian() != bBigEndian)
|
||||
{
|
||||
return swap_endian(ui16);
|
||||
}
|
||||
|
||||
return ui16;
|
||||
}
|
||||
|
||||
//--------------------------------------
|
||||
inline
|
||||
unsigned int native_endian(unsigned int i32, bool bBigEndian)
|
||||
{
|
||||
if (big_endian() != bBigEndian)
|
||||
{
|
||||
return swap_endian(i32);
|
||||
}
|
||||
|
||||
return i32;
|
||||
}
|
||||
|
||||
//--------------------------------------
|
||||
inline
|
||||
int native_endian(int ui32, bool bBigEndian)
|
||||
{
|
||||
if (big_endian() != bBigEndian)
|
||||
{
|
||||
return swap_endian(ui32);
|
||||
}
|
||||
|
||||
return ui32;
|
||||
}
|
||||
|
||||
//} // namespace xxx
|
||||
|
||||
#endif // ENDIAN_HPP
|
Loading…
Add table
Add a link
Reference in a new issue