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