Home | History | Annotate | Download | only in encoder
      1 /******************************************************************************
      2  *
      3  * Copyright (C) 2015 The Android Open Source Project
      4  *
      5  * Licensed under the Apache License, Version 2.0 (the "License");
      6  * you may not use this file except in compliance with the License.
      7  * You may obtain a copy of the License at:
      8  *
      9  * http://www.apache.org/licenses/LICENSE-2.0
     10  *
     11  * Unless required by applicable law or agreed to in writing, software
     12  * distributed under the License is distributed on an "AS IS" BASIS,
     13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14  * See the License for the specific language governing permissions and
     15  * limitations under the License.
     16  *
     17  *****************************************************************************
     18  * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
     19 */
     20 
     21 /**
     22 *******************************************************************************
     23 * @file
     24 *  ih264e_version.c
     25 *
     26 * @brief
     27 *  Contains version info for H264 encoder
     28 *
     29 * @author
     30 *  ittiam
     31 *
     32 * @par List of Functions:
     33 * - ih264e_get_version()
     34 *
     35 * @remarks
     36 *  None
     37 *
     38 *******************************************************************************
     39 */
     40 
     41 /*****************************************************************************/
     42 /* File Includes                                                             */
     43 /*****************************************************************************/
     44 /* system include files */
     45 #include <stdio.h>
     46 #include <stddef.h>
     47 #include <stdlib.h>
     48 #include <string.h>
     49 
     50 /* user include files */
     51 #include "ih264_typedefs.h"
     52 #include "iv2.h"
     53 #include "ive2.h"
     54 #include "ih264e.h"
     55 #include "ih264_defs.h"
     56 #include "ih264_debug.h"
     57 #include "ih264_structs.h"
     58 #include "ih264e_version.h"
     59 
     60 
     61 /*****************************************************************************/
     62 /* Constant Macros                                                           */
     63 /*****************************************************************************/
     64 
     65 /**
     66  * Name of the codec and target platform (All Cortex A processors in this case)
     67  */
     68 #define CODEC_NAME              "H264ENC"
     69 /**
     70  * Codec release type, production or evaluation
     71  */
     72 #define CODEC_RELEASE_TYPE      "production"
     73 /**
     74  * Version string. First two digits signify major version and last two minor
     75  */
     76 #define CODEC_RELEASE_VER       "01.00"
     77 /**
     78  * Vendor name
     79  */
     80 #define CODEC_VENDOR            "ITTIAM"
     81 
     82 #define MAX_STRLEN              511
     83 /**
     84 *******************************************************************************
     85 * Concatenates various strings to form a version string
     86 *******************************************************************************
     87 */
     88 #ifdef __ANDROID__
     89 #define VERSION(version_string, codec_name, codec_release_type, codec_release_ver, codec_vendor)    \
     90     snprintf(version_string, MAX_STRLEN,                                                            \
     91              "@(#)Id:%s_%s Ver:%s Released by %s",                                                  \
     92              codec_name, codec_release_type, codec_release_ver, codec_vendor)
     93 #else
     94 #define VERSION(version_string, codec_name, codec_release_type, codec_release_ver, codec_vendor)    \
     95     snprintf(version_string, MAX_STRLEN,                                                            \
     96              "@(#)Id:%s_%s Ver:%s Released by %s Build: %s @ %s",                                   \
     97              codec_name, codec_release_type, codec_release_ver, codec_vendor, __DATE__, __TIME__)
     98 #endif
     99 
    100 /*****************************************************************************/
    101 /* Function Definitions                                                      */
    102 /*****************************************************************************/
    103 
    104 /**
    105 *******************************************************************************
    106 *
    107 * @brief
    108 *  Fills the version info in the given char pointer
    109 *
    110 * @par Description:
    111 *  Fills the version info in the given char pointer
    112 *
    113 * @param[in] pc_version
    114 *  Pointer to hold version info
    115 *
    116 * @param[in] u4_version_bufsize
    117 *  Size of the buffer passed
    118 *
    119 * @returns error status
    120 *
    121 * @remarks none
    122 *
    123 *******************************************************************************
    124 */
    125 IV_STATUS_T ih264e_get_version(CHAR *pc_version, UWORD32 u4_version_bufsize)
    126 {
    127     CHAR ac_version_tmp[MAX_STRLEN];
    128 
    129     VERSION(ac_version_tmp, CODEC_NAME, CODEC_RELEASE_TYPE, CODEC_RELEASE_VER,
    130             CODEC_VENDOR);
    131 
    132     if (u4_version_bufsize >= (strlen(ac_version_tmp) + 1))
    133     {
    134         memcpy(pc_version, ac_version_tmp, (strlen(ac_version_tmp) + 1));
    135         return IV_SUCCESS;
    136     }
    137     else
    138     {
    139         return IV_FAIL;
    140     }
    141 }
    142