Home | History | Annotate | Download | only in inc
      1 /*
      2  * Copyright (C) 2011 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 /**
     18  ******************************************************************************
     19  * @file    M4MP4W_Utils.h
     20  * @brief   Utilities and private functions declaration for the MP4 writer
     21  ******************************************************************************
     22  */
     23 
     24 #ifndef M4MP4W_UTILS_H
     25 #define M4MP4W_UTILS_H
     26 
     27 #ifdef __cplusplus
     28 extern "C" {
     29 #endif /* __cplusplus */
     30 
     31 #include "NXPSW_CompilerSwitches.h"
     32 
     33 #ifndef _M4MP4W_USE_CST_MEMORY_WRITER
     34 
     35 /* includes */
     36 #include "M4OSA_Types.h"
     37 #include "M4OSA_FileWriter.h"
     38 
     39 
     40 /**
     41  ******************************************************************************
     42  * Utility functions to write data in big endian
     43  ******************************************************************************
     44  */
     45 M4OSA_ERR M4MP4W_putByte(M4OSA_UChar c,    M4OSA_FileWriterPointer* fileFunction,
     46                          M4OSA_Context context);
     47 M4OSA_ERR M4MP4W_putBE16(M4OSA_UInt32 val, M4OSA_FileWriterPointer* fileFunction,
     48                          M4OSA_Context context);
     49 M4OSA_ERR M4MP4W_putBE24(M4OSA_UInt32 val, M4OSA_FileWriterPointer* fileFunction,
     50                          M4OSA_Context context);
     51 M4OSA_ERR M4MP4W_putBE32(M4OSA_UInt32 val, M4OSA_FileWriterPointer* fileFunction,
     52                          M4OSA_Context context);
     53 
     54 /**
     55  ******************************************************************************
     56  * Write a bulk of data into the specified file, size is given in bytes
     57  ******************************************************************************
     58  */
     59 M4OSA_ERR M4MP4W_putBlock(const M4OSA_UChar* Block, M4OSA_UInt32 size,
     60                           M4OSA_FileWriterPointer* fileFunction, M4OSA_Context context);
     61 
     62 /**
     63  ******************************************************************************
     64  * Convert the 'nb' unsigned integers in 'tab' table from LE into BE
     65  ******************************************************************************
     66  */
     67 void M4MP4W_table32ToBE(M4OSA_UInt32* tab, M4OSA_UInt32 nb);
     68 
     69 /**
     70  ******************************************************************************
     71  * Convert an unsigned 32 bits integer from LE into BE
     72  ******************************************************************************
     73  */
     74 void M4MP4W_convertInt32BE(M4OSA_UInt32* valPtr);
     75 
     76 /**
     77  ******************************************************************************
     78  * Re-allocation function
     79  ******************************************************************************
     80  */
     81 void* M4MP4W_realloc(M4OSA_MemAddr32 ptr, M4OSA_UInt32 oldSize, M4OSA_UInt32 newSize);
     82 
     83 /**
     84  ******************************************************************************
     85  * De-allocate the context
     86  * This method is no longer in the writer external interface, but is called from
     87  * the function M4MP4W_closeWrite
     88  ******************************************************************************
     89  */
     90 M4OSA_ERR M4MP4W_freeContext(M4OSA_Context context);
     91 
     92 
     93 #ifdef _M4MP4W_OPTIMIZE_FOR_PHONE
     94 /**
     95  ******************************************************************************
     96  * Put Hi and Lo u16 part in a u32 variable
     97  ******************************************************************************
     98  */
     99 M4OSA_Void M4MP4W_put32_Hi(M4OSA_UInt32* tab, M4OSA_UInt16 Hi);
    100 M4OSA_Void M4MP4W_put32_Lo(M4OSA_UInt32* tab, M4OSA_UInt16 Lo);
    101 M4OSA_UInt16 M4MP4W_get32_Hi(M4OSA_UInt32* tab);
    102 M4OSA_UInt16 M4MP4W_get32_Lo(M4OSA_UInt32* tab);
    103 #endif
    104 
    105 #endif /* _M4MP4W_USE_CST_MEMORY_WRITER */
    106 
    107 #ifdef __cplusplus
    108 }
    109 #endif /* __cplusplus */
    110 
    111 #endif /*M4MP4W_UTILS_H*/
    112 
    113