1 // Copyright (c) 2012 The WebM project authors. All Rights Reserved.
2 //
3 // Use of this source code is governed by a BSD-style license
4 // that can be found in the LICENSE file in the root of the source
5 // tree. An additional intellectual property rights grant can be found
6 // in the file PATENTS.  All contributing project authors may
7 // be found in the AUTHORS file in the root of the source tree.
8 
9 #ifndef LIBWEBM_COMMON_WEBM_ENDIAN_H_
10 #define LIBWEBM_COMMON_WEBM_ENDIAN_H_
11 
12 #include <stdint.h>
13 
14 namespace libwebm {
15 
16 // Swaps unsigned 32 bit values to big endian if needed. Returns |value| if
17 // architecture is big endian. Returns big endian value if architecture is
18 // little endian. Returns 0 otherwise.
19 uint32_t host_to_bigendian(uint32_t value);
20 
21 // Swaps unsigned 32 bit values to little endian if needed. Returns |value| if
22 // architecture is big endian. Returns little endian value if architecture is
23 // little endian. Returns 0 otherwise.
24 uint32_t bigendian_to_host(uint32_t value);
25 
26 // Swaps unsigned 64 bit values to big endian if needed. Returns |value| if
27 // architecture is big endian. Returns big endian value if architecture is
28 // little endian. Returns 0 otherwise.
29 uint64_t host_to_bigendian(uint64_t value);
30 
31 // Swaps unsigned 64 bit values to little endian if needed. Returns |value| if
32 // architecture is big endian. Returns little endian value if architecture is
33 // little endian. Returns 0 otherwise.
34 uint64_t bigendian_to_host(uint64_t value);
35 
36 }  // namespace libwebm
37 
38 #endif  // LIBWEBM_COMMON_WEBM_ENDIAN_H_
39