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