10d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/****************************************************************************** 20d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* 30d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* Copyright (C) 2012 Ittiam Systems Pvt Ltd, Bangalore 40d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* 50d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* Licensed under the Apache License, Version 2.0 (the "License"); 60d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* you may not use this file except in compliance with the License. 70d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* You may obtain a copy of the License at: 80d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* 90d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* http://www.apache.org/licenses/LICENSE-2.0 100d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* 110d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* Unless required by applicable law or agreed to in writing, software 120d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* distributed under the License is distributed on an "AS IS" BASIS, 130d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 140d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* See the License for the specific language governing permissions and 150d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* limitations under the License. 160d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* 170d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar******************************************************************************/ 180d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/** 190d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar******************************************************************************* 200d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @file 210d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* ihevcd_version.c 220d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* 230d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @brief 240d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* Contains version info for HEVC decoder 250d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* 260d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @author 270d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* Harish 280d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* 290d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @par List of Functions: 300d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* - ihevcd_get_version() 310d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* 320d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @remarks 330d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* None 340d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* 350d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar******************************************************************************* 360d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*/ 370d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/ 380d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/* File Includes */ 390d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/*****************************************************************************/ 400d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#include <stdio.h> 410d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#include <stddef.h> 420d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#include <stdlib.h> 430d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#include <string.h> 440d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 450d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#include "ihevc_typedefs.h" 460d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#include "iv.h" 470d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#include "ivd.h" 480d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#include "ihevcd_cxa.h" 490d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 500d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#include "ihevc_defs.h" 510d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#include "ihevc_debug.h" 520d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#include "ihevc_structs.h" 530d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/** 540d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * Name of the codec 550d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar */ 560d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define CODEC_NAME "HEVCDEC" 570d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/** 580d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * Codec release type, production or evaluation 590d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar */ 600d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define CODEC_RELEASE_TYPE "production" 610d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/** 620d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * Version string. First two digits signify major version and last two minor 630d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * Increment major version for API change or major feature update 640d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar */ 654d73ab3ec9823d009fa01beea164c0036b5215b9Harish Mahendrakar#define CODEC_RELEASE_VER "05.00" 660d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/** 670d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar * Vendor name 680d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar */ 690d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define CODEC_VENDOR "ITTIAM" 700d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 710d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/** 720d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar******************************************************************************* 730d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* Concatenates various strings to form a version string 740d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar******************************************************************************* 750d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*/ 76ff8f9c0a287aebc5113d376a6afb82212a53b14eHarish Mahendrakar#define MAXVERSION_STRLEN 511 779863d8f8027b2736dddbc0114ba983555e38798dDan Willemsen#ifdef __ANDROID__ 789863d8f8027b2736dddbc0114ba983555e38798dDan Willemsen#define VERSION(version_string, codec_name, codec_release_type, codec_release_ver, codec_vendor) \ 799863d8f8027b2736dddbc0114ba983555e38798dDan Willemsen snprintf(version_string, MAXVERSION_STRLEN, \ 809863d8f8027b2736dddbc0114ba983555e38798dDan Willemsen "@(#)Id:%s_%s Ver:%s Released by %s", \ 819863d8f8027b2736dddbc0114ba983555e38798dDan Willemsen codec_name, codec_release_type, codec_release_ver, codec_vendor) 829863d8f8027b2736dddbc0114ba983555e38798dDan Willemsen#else 830d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar#define VERSION(version_string, codec_name, codec_release_type, codec_release_ver, codec_vendor) \ 84ff8f9c0a287aebc5113d376a6afb82212a53b14eHarish Mahendrakar snprintf(version_string, MAXVERSION_STRLEN, \ 85ff8f9c0a287aebc5113d376a6afb82212a53b14eHarish Mahendrakar "@(#)Id:%s_%s Ver:%s Released by %s Build: %s @ %s", \ 86ff8f9c0a287aebc5113d376a6afb82212a53b14eHarish Mahendrakar codec_name, codec_release_type, codec_release_ver, codec_vendor, __DATE__, __TIME__) 879863d8f8027b2736dddbc0114ba983555e38798dDan Willemsen#endif 880d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 890d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar/** 900d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar******************************************************************************* 910d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* 920d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @brief 930d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* Fills the version info in the given string 940d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* 950d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @par Description: 960d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* 970d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* 980d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @param[in] pc_version_string 990d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* Pointer to hold version info 1000d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* 1010d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @param[in] u4_version_buffer_size 1020d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* Size of the buffer passed 1030d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* 1040d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @returns Status 1050d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* 1060d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* @remarks 1070d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* 1080d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar* 1090d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar******************************************************************************* 1100d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar*/ 1110d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish MahendrakarIV_API_CALL_STATUS_T ihevcd_get_version(CHAR *pc_version_string, 1120d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar UWORD32 u4_version_buffer_size) 1130d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar{ 114ff8f9c0a287aebc5113d376a6afb82212a53b14eHarish Mahendrakar CHAR ac_version_tmp[MAXVERSION_STRLEN + 1]; 115ff8f9c0a287aebc5113d376a6afb82212a53b14eHarish Mahendrakar UWORD32 u4_len; 1160d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar VERSION(ac_version_tmp, CODEC_NAME, CODEC_RELEASE_TYPE, CODEC_RELEASE_VER, CODEC_VENDOR); 117ff8f9c0a287aebc5113d376a6afb82212a53b14eHarish Mahendrakar u4_len = strnlen(ac_version_tmp, MAXVERSION_STRLEN) + 1; 118ff8f9c0a287aebc5113d376a6afb82212a53b14eHarish Mahendrakar if(u4_version_buffer_size >= u4_len) 1190d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar { 120ff8f9c0a287aebc5113d376a6afb82212a53b14eHarish Mahendrakar memcpy(pc_version_string, ac_version_tmp, u4_len); 1210d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar return IV_SUCCESS; 1220d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar } 1230d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar else 1240d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar { 1250d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar return IV_FAIL; 1260d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar } 1270d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 1280d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar} 1290d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 1300d8951cef4b1a1dbf4ff5ba3e8796cf1d4503098Harish Mahendrakar 131