18d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/****************************************************************************** 28d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * 38d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Copyright (C) 2015 The Android Open Source Project 48d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * 58d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Licensed under the Apache License, Version 2.0 (the "License"); 68d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * you may not use this file except in compliance with the License. 78d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * You may obtain a copy of the License at: 88d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * 98d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * http://www.apache.org/licenses/LICENSE-2.0 108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * 118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Unless required by applicable law or agreed to in writing, software 128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * distributed under the License is distributed on an "AS IS" BASIS, 138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * See the License for the specific language governing permissions and 158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * limitations under the License. 168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * 178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S ***************************************************************************** 188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore 198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/ 208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************* 238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @file 248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* ih264e_version.c 258d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* 268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @brief 278d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* Contains version info for H264 encoder 288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* 298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @author 308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* ittiam 318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* 328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @par List of Functions: 338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* - ih264e_get_version() 348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* 358d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @remarks 368d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* None 378d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* 388d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************* 398d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/ 408d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 418d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/ 428d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* File Includes */ 438d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/ 448d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* system include files */ 458d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#include <stdio.h> 468d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#include <stddef.h> 478d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#include <stdlib.h> 488d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#include <string.h> 498d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 508d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* user include files */ 518d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#include "ih264_typedefs.h" 528d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#include "iv2.h" 538d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#include "ive2.h" 548d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#include "ih264e.h" 558d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#include "ih264_defs.h" 568d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#include "ih264_debug.h" 578d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#include "ih264_structs.h" 588d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#include "ih264e_version.h" 598d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 608d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 618d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/ 628d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Constant Macros */ 638d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/ 648d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 658d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 668d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Name of the codec and target platform (All Cortex A processors in this case) 678d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 688d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define CODEC_NAME "H264ENC" 698d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 708d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Codec release type, production or evaluation 718d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 728d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define CODEC_RELEASE_TYPE "production" 738d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 748d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Version string. First two digits signify major version and last two minor 758d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 768d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define CODEC_RELEASE_VER "01.00" 778d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 788d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S * Vendor name 798d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S */ 808d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define CODEC_VENDOR "ITTIAM" 818d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 828d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define MAX_STRLEN 511 838d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 848d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************* 858d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* Concatenates various strings to form a version string 868d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************* 878d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/ 888d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S#define VERSION(version_string, codec_name, codec_release_type, codec_release_ver, codec_vendor) \ 8985a43d2fcf9572145dd013a1a43ff11b327bcbbcMartin Storsjo snprintf(version_string, MAX_STRLEN, \ 9085a43d2fcf9572145dd013a1a43ff11b327bcbbcMartin Storsjo "@(#)Id:%s_%s Ver:%s Released by %s Build: %s @ %s", \ 9185a43d2fcf9572145dd013a1a43ff11b327bcbbcMartin Storsjo codec_name, codec_release_type, codec_release_ver, codec_vendor, __DATE__, __TIME__) 928d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 938d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/ 948d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/* Function Definitions */ 958d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/*****************************************************************************/ 968d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 978d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S/** 988d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************* 998d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* 1008d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @brief 1018d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* Fills the version info in the given char pointer 1028d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* 1038d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @par Description: 1048d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* Fills the version info in the given char pointer 1058d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* 1068d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @param[in] pc_version 1078d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* Pointer to hold version info 1088d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* 1098d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @param[in] u4_version_bufsize 1108d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* Size of the buffer passed 1118d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* 1128d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @returns error status 1138d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* 1148d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* @remarks none 1158d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S* 1168d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S******************************************************************************* 1178d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S*/ 1188d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha SIV_STATUS_T ih264e_get_version(CHAR *pc_version, UWORD32 u4_version_bufsize) 1198d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S{ 1208d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S CHAR ac_version_tmp[MAX_STRLEN]; 1218d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 1228d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S VERSION(ac_version_tmp, CODEC_NAME, CODEC_RELEASE_TYPE, CODEC_RELEASE_VER, 1238d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S CODEC_VENDOR); 1248d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S 12585a43d2fcf9572145dd013a1a43ff11b327bcbbcMartin Storsjo if (u4_version_bufsize >= (strlen(ac_version_tmp) + 1)) 1268d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S { 12785a43d2fcf9572145dd013a1a43ff11b327bcbbcMartin Storsjo memcpy(pc_version, ac_version_tmp, (strlen(ac_version_tmp) + 1)); 1288d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S return IV_SUCCESS; 1298d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S } 1308d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S else 1318d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S { 1328d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S return IV_FAIL; 1338d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S } 1348d3d303c7942ced6a987a52db8977d768dc3605fHamsalekha S} 135