sl@0: // Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // sl@0: sl@0: #include <3gplibrary/mp4config.h> sl@0: sl@0: /* sl@0: * Function: sl@0: * sl@0: * mp4_u16 u16endian(mp4_u16 u) sl@0: * sl@0: * Description: sl@0: * sl@0: * This function converts the input parameter u between network byte sl@0: * order (big endian) and current computer byte order. sl@0: * sl@0: * Note: Intel based Windows system is little endian. sl@0: * ARM based Symbian OS is little endian. sl@0: * sl@0: * Parameters: sl@0: * sl@0: * u Input value sl@0: * sl@0: * Return value: sl@0: * sl@0: * Converted value sl@0: * sl@0: */ sl@0: mp4_u16 u16endian(mp4_u16 u) sl@0: { sl@0: mp4_u16 result; sl@0: sl@0: ((mp4_u8 *)&result)[0] = ((mp4_u8 *)&u)[1]; sl@0: ((mp4_u8 *)&result)[1] = ((mp4_u8 *)&u)[0]; sl@0: sl@0: return result; sl@0: } sl@0: sl@0: sl@0: /* sl@0: * Function: sl@0: * sl@0: * mp4_u32 u32endian(mp4_u32 u) sl@0: * sl@0: * Description: sl@0: * sl@0: * This function converts the input parameter u between network byte sl@0: * order (big endian) and current computer byte order. sl@0: * sl@0: * Note: Intel based Windows system is little endian. sl@0: * ARM based Symbian OS is little endian. sl@0: * sl@0: * Parameters: sl@0: * sl@0: * u Input value sl@0: * sl@0: * Return value: sl@0: * sl@0: * Converted value sl@0: * sl@0: */ sl@0: mp4_u32 u32endian(mp4_u32 u) sl@0: { sl@0: mp4_u32 result; sl@0: sl@0: ((mp4_u8 *)&result)[0] = ((mp4_u8 *)&u)[3]; sl@0: ((mp4_u8 *)&result)[1] = ((mp4_u8 *)&u)[2]; sl@0: ((mp4_u8 *)&result)[2] = ((mp4_u8 *)&u)[1]; sl@0: ((mp4_u8 *)&result)[3] = ((mp4_u8 *)&u)[0]; sl@0: sl@0: return result; sl@0: } sl@0: sl@0: sl@0: /* sl@0: * Function: sl@0: * sl@0: * mp4_i32 i32endian(mp4_i32 i) sl@0: * sl@0: * Description: sl@0: * sl@0: * This function converts the input parameter i between network byte sl@0: * order (big endian) and current computer byte order. sl@0: * sl@0: * Note: Intel based Windows system is little endian. sl@0: * ARM based Symbian OS is little endian. sl@0: * sl@0: * Parameters: sl@0: * sl@0: * i Input value sl@0: * sl@0: * Return value: sl@0: * sl@0: * Converted value sl@0: * sl@0: */ sl@0: mp4_i32 i32endian(mp4_i32 i) sl@0: { sl@0: mp4_i32 result; sl@0: sl@0: ((mp4_u8 *)&result)[0] = ((mp4_u8 *)&i)[3]; sl@0: ((mp4_u8 *)&result)[1] = ((mp4_u8 *)&i)[2]; sl@0: ((mp4_u8 *)&result)[2] = ((mp4_u8 *)&i)[1]; sl@0: ((mp4_u8 *)&result)[3] = ((mp4_u8 *)&i)[0]; sl@0: sl@0: return result; sl@0: } sl@0: sl@0: sl@0: /* sl@0: * Function: sl@0: * sl@0: * mp4_u64 u64endian(mp4_u64 u) sl@0: * sl@0: * Description: sl@0: * sl@0: * This function converts the input parameter u between network byte sl@0: * order (big endian) and current computer byte order. sl@0: * sl@0: * Note: Intel based Windows system is little endian. sl@0: * ARM based Symbian OS is little endian. sl@0: * sl@0: * Parameters: sl@0: * sl@0: * u Input value sl@0: * sl@0: * Return value: sl@0: * sl@0: * Converted value sl@0: * sl@0: */ sl@0: mp4_u64 u64endian(mp4_u64 u) sl@0: { sl@0: mp4_u64 result; sl@0: sl@0: ((mp4_u8 *)&result)[0] = ((mp4_u8 *)&u)[7]; sl@0: ((mp4_u8 *)&result)[1] = ((mp4_u8 *)&u)[6]; sl@0: ((mp4_u8 *)&result)[2] = ((mp4_u8 *)&u)[5]; sl@0: ((mp4_u8 *)&result)[3] = ((mp4_u8 *)&u)[4]; sl@0: ((mp4_u8 *)&result)[4] = ((mp4_u8 *)&u)[3]; sl@0: ((mp4_u8 *)&result)[5] = ((mp4_u8 *)&u)[2]; sl@0: ((mp4_u8 *)&result)[6] = ((mp4_u8 *)&u)[1]; sl@0: ((mp4_u8 *)&result)[7] = ((mp4_u8 *)&u)[0]; sl@0: sl@0: return result; sl@0: } sl@0: sl@0: // End of File