| /****************************************************************************** |
| * |
| * Copyright (C) 2015 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at: |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| * |
| ***************************************************************************** |
| * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore |
| */ |
| |
| /** |
| ******************************************************************************* |
| * @file |
| * ih264e_version.c |
| * |
| * @brief |
| * Contains version info for H264 encoder |
| * |
| * @author |
| * ittiam |
| * |
| * @par List of Functions: |
| * - ih264e_get_version() |
| * |
| * @remarks |
| * None |
| * |
| ******************************************************************************* |
| */ |
| |
| /*****************************************************************************/ |
| /* File Includes */ |
| /*****************************************************************************/ |
| /* system include files */ |
| #include <stdio.h> |
| #include <stddef.h> |
| #include <stdlib.h> |
| #include <string.h> |
| |
| /* user include files */ |
| #include "ih264_typedefs.h" |
| #include "iv2.h" |
| #include "ive2.h" |
| #include "ih264e.h" |
| #include "ih264_defs.h" |
| #include "ih264_debug.h" |
| #include "ih264_structs.h" |
| #include "ih264e_version.h" |
| |
| |
| /*****************************************************************************/ |
| /* Constant Macros */ |
| /*****************************************************************************/ |
| |
| /** |
| * Name of the codec and target platform (All Cortex A processors in this case) |
| */ |
| #define CODEC_NAME "H264ENC" |
| /** |
| * Codec release type, production or evaluation |
| */ |
| #define CODEC_RELEASE_TYPE "production" |
| /** |
| * Version string. First two digits signify major version and last two minor |
| */ |
| #define CODEC_RELEASE_VER "01.00" |
| /** |
| * Vendor name |
| */ |
| #define CODEC_VENDOR "ITTIAM" |
| |
| #define MAX_STRLEN 511 |
| /** |
| ******************************************************************************* |
| * Concatenates various strings to form a version string |
| ******************************************************************************* |
| */ |
| #ifdef __ANDROID__ |
| #define VERSION(version_string, codec_name, codec_release_type, codec_release_ver, codec_vendor) \ |
| snprintf(version_string, MAX_STRLEN, \ |
| "@(#)Id:%s_%s Ver:%s Released by %s", \ |
| codec_name, codec_release_type, codec_release_ver, codec_vendor) |
| #else |
| #define VERSION(version_string, codec_name, codec_release_type, codec_release_ver, codec_vendor) \ |
| snprintf(version_string, MAX_STRLEN, \ |
| "@(#)Id:%s_%s Ver:%s Released by %s Build: %s @ %s", \ |
| codec_name, codec_release_type, codec_release_ver, codec_vendor, __DATE__, __TIME__) |
| #endif |
| |
| /*****************************************************************************/ |
| /* Function Definitions */ |
| /*****************************************************************************/ |
| |
| /** |
| ******************************************************************************* |
| * |
| * @brief |
| * Fills the version info in the given char pointer |
| * |
| * @par Description: |
| * Fills the version info in the given char pointer |
| * |
| * @param[in] pc_version |
| * Pointer to hold version info |
| * |
| * @param[in] u4_version_bufsize |
| * Size of the buffer passed |
| * |
| * @returns error status |
| * |
| * @remarks none |
| * |
| ******************************************************************************* |
| */ |
| IV_STATUS_T ih264e_get_version(CHAR *pc_version, UWORD32 u4_version_bufsize) |
| { |
| CHAR ac_version_tmp[MAX_STRLEN]; |
| |
| VERSION(ac_version_tmp, CODEC_NAME, CODEC_RELEASE_TYPE, CODEC_RELEASE_VER, |
| CODEC_VENDOR); |
| |
| if (u4_version_bufsize >= (strlen(ac_version_tmp) + 1)) |
| { |
| memcpy(pc_version, ac_version_tmp, (strlen(ac_version_tmp) + 1)); |
| return IV_SUCCESS; |
| } |
| else |
| { |
| return IV_FAIL; |
| } |
| } |