1*495ae853SAndroid Build Coastguard Worker /******************************************************************************
2*495ae853SAndroid Build Coastguard Worker *
3*495ae853SAndroid Build Coastguard Worker * Copyright (C) 2015 The Android Open Source Project
4*495ae853SAndroid Build Coastguard Worker *
5*495ae853SAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License");
6*495ae853SAndroid Build Coastguard Worker * you may not use this file except in compliance with the License.
7*495ae853SAndroid Build Coastguard Worker * You may obtain a copy of the License at:
8*495ae853SAndroid Build Coastguard Worker *
9*495ae853SAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0
10*495ae853SAndroid Build Coastguard Worker *
11*495ae853SAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software
12*495ae853SAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS,
13*495ae853SAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*495ae853SAndroid Build Coastguard Worker * See the License for the specific language governing permissions and
15*495ae853SAndroid Build Coastguard Worker * limitations under the License.
16*495ae853SAndroid Build Coastguard Worker *
17*495ae853SAndroid Build Coastguard Worker *****************************************************************************
18*495ae853SAndroid Build Coastguard Worker * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
19*495ae853SAndroid Build Coastguard Worker */
20*495ae853SAndroid Build Coastguard Worker
21*495ae853SAndroid Build Coastguard Worker /**
22*495ae853SAndroid Build Coastguard Worker *******************************************************************************
23*495ae853SAndroid Build Coastguard Worker * @file
24*495ae853SAndroid Build Coastguard Worker * ih264e_version.c
25*495ae853SAndroid Build Coastguard Worker *
26*495ae853SAndroid Build Coastguard Worker * @brief
27*495ae853SAndroid Build Coastguard Worker * Contains version info of h264 encoder
28*495ae853SAndroid Build Coastguard Worker *
29*495ae853SAndroid Build Coastguard Worker * @author
30*495ae853SAndroid Build Coastguard Worker * ittiam
31*495ae853SAndroid Build Coastguard Worker *
32*495ae853SAndroid Build Coastguard Worker * @par List of Functions:
33*495ae853SAndroid Build Coastguard Worker * - ih264e_get_version
34*495ae853SAndroid Build Coastguard Worker *
35*495ae853SAndroid Build Coastguard Worker * @remarks
36*495ae853SAndroid Build Coastguard Worker * none
37*495ae853SAndroid Build Coastguard Worker *
38*495ae853SAndroid Build Coastguard Worker *******************************************************************************
39*495ae853SAndroid Build Coastguard Worker */
40*495ae853SAndroid Build Coastguard Worker
41*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
42*495ae853SAndroid Build Coastguard Worker /* File Includes */
43*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
44*495ae853SAndroid Build Coastguard Worker
45*495ae853SAndroid Build Coastguard Worker /* System Include Files */
46*495ae853SAndroid Build Coastguard Worker #include <stdio.h>
47*495ae853SAndroid Build Coastguard Worker #include <stddef.h>
48*495ae853SAndroid Build Coastguard Worker #include <stdlib.h>
49*495ae853SAndroid Build Coastguard Worker #include <string.h>
50*495ae853SAndroid Build Coastguard Worker
51*495ae853SAndroid Build Coastguard Worker /* User Include Files */
52*495ae853SAndroid Build Coastguard Worker #include "ih264_typedefs.h"
53*495ae853SAndroid Build Coastguard Worker #include "iv2.h"
54*495ae853SAndroid Build Coastguard Worker #include "ih264e_version.h"
55*495ae853SAndroid Build Coastguard Worker
56*495ae853SAndroid Build Coastguard Worker
57*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
58*495ae853SAndroid Build Coastguard Worker /* Constant Macros */
59*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
60*495ae853SAndroid Build Coastguard Worker
61*495ae853SAndroid Build Coastguard Worker /**
62*495ae853SAndroid Build Coastguard Worker * Name of the codec and target platform (All Cortex A processors in this case)
63*495ae853SAndroid Build Coastguard Worker */
64*495ae853SAndroid Build Coastguard Worker #define CODEC_NAME "H264ENC"
65*495ae853SAndroid Build Coastguard Worker /**
66*495ae853SAndroid Build Coastguard Worker * Codec release type, production or evaluation
67*495ae853SAndroid Build Coastguard Worker */
68*495ae853SAndroid Build Coastguard Worker #define CODEC_RELEASE_TYPE "production"
69*495ae853SAndroid Build Coastguard Worker /**
70*495ae853SAndroid Build Coastguard Worker * Version string. First two digits signify major version and last two minor
71*495ae853SAndroid Build Coastguard Worker */
72*495ae853SAndroid Build Coastguard Worker #define CODEC_RELEASE_VER "01.02"
73*495ae853SAndroid Build Coastguard Worker /**
74*495ae853SAndroid Build Coastguard Worker * Vendor name
75*495ae853SAndroid Build Coastguard Worker */
76*495ae853SAndroid Build Coastguard Worker #define CODEC_VENDOR "ITTIAM"
77*495ae853SAndroid Build Coastguard Worker
78*495ae853SAndroid Build Coastguard Worker #define MAX_STRLEN 511
79*495ae853SAndroid Build Coastguard Worker /**
80*495ae853SAndroid Build Coastguard Worker *******************************************************************************
81*495ae853SAndroid Build Coastguard Worker * Concatenates various strings to form a version string
82*495ae853SAndroid Build Coastguard Worker *******************************************************************************
83*495ae853SAndroid Build Coastguard Worker */
84*495ae853SAndroid Build Coastguard Worker #ifdef ANDROID
85*495ae853SAndroid Build Coastguard Worker #define VERSION(version_string, codec_name, codec_release_type, codec_release_ver, codec_vendor) \
86*495ae853SAndroid Build Coastguard Worker snprintf(version_string, MAX_STRLEN, \
87*495ae853SAndroid Build Coastguard Worker "@(#)Id:%s_%s Ver:%s Released by %s", \
88*495ae853SAndroid Build Coastguard Worker codec_name, codec_release_type, codec_release_ver, codec_vendor)
89*495ae853SAndroid Build Coastguard Worker #else
90*495ae853SAndroid Build Coastguard Worker #define VERSION(version_string, codec_name, codec_release_type, codec_release_ver, codec_vendor) \
91*495ae853SAndroid Build Coastguard Worker snprintf(version_string, MAX_STRLEN, \
92*495ae853SAndroid Build Coastguard Worker "@(#)Id:%s_%s Ver:%s Released by %s Build: %s @ %s", \
93*495ae853SAndroid Build Coastguard Worker codec_name, codec_release_type, codec_release_ver, codec_vendor, __DATE__, __TIME__)
94*495ae853SAndroid Build Coastguard Worker #endif
95*495ae853SAndroid Build Coastguard Worker
96*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
97*495ae853SAndroid Build Coastguard Worker /* Function Definitions */
98*495ae853SAndroid Build Coastguard Worker /*****************************************************************************/
99*495ae853SAndroid Build Coastguard Worker
100*495ae853SAndroid Build Coastguard Worker /**
101*495ae853SAndroid Build Coastguard Worker *******************************************************************************
102*495ae853SAndroid Build Coastguard Worker *
103*495ae853SAndroid Build Coastguard Worker * @brief
104*495ae853SAndroid Build Coastguard Worker * Fills the version info in the given char pointer
105*495ae853SAndroid Build Coastguard Worker *
106*495ae853SAndroid Build Coastguard Worker * @par Description:
107*495ae853SAndroid Build Coastguard Worker * Fills the version info in the given char pointer
108*495ae853SAndroid Build Coastguard Worker *
109*495ae853SAndroid Build Coastguard Worker * @param[in] pc_version
110*495ae853SAndroid Build Coastguard Worker * Pointer to hold version info
111*495ae853SAndroid Build Coastguard Worker *
112*495ae853SAndroid Build Coastguard Worker * @param[in] u4_version_bufsize
113*495ae853SAndroid Build Coastguard Worker * Size of the buffer passed
114*495ae853SAndroid Build Coastguard Worker *
115*495ae853SAndroid Build Coastguard Worker * @returns error status
116*495ae853SAndroid Build Coastguard Worker *
117*495ae853SAndroid Build Coastguard Worker * @remarks none
118*495ae853SAndroid Build Coastguard Worker *
119*495ae853SAndroid Build Coastguard Worker *******************************************************************************
120*495ae853SAndroid Build Coastguard Worker */
ih264e_get_version(CHAR * pc_version,UWORD32 u4_version_bufsize)121*495ae853SAndroid Build Coastguard Worker IV_STATUS_T ih264e_get_version(CHAR *pc_version, UWORD32 u4_version_bufsize)
122*495ae853SAndroid Build Coastguard Worker {
123*495ae853SAndroid Build Coastguard Worker CHAR ac_version_tmp[MAX_STRLEN];
124*495ae853SAndroid Build Coastguard Worker
125*495ae853SAndroid Build Coastguard Worker VERSION(ac_version_tmp, CODEC_NAME, CODEC_RELEASE_TYPE, CODEC_RELEASE_VER,
126*495ae853SAndroid Build Coastguard Worker CODEC_VENDOR);
127*495ae853SAndroid Build Coastguard Worker
128*495ae853SAndroid Build Coastguard Worker if (u4_version_bufsize >= (strlen(ac_version_tmp) + 1))
129*495ae853SAndroid Build Coastguard Worker {
130*495ae853SAndroid Build Coastguard Worker memcpy(pc_version, ac_version_tmp, (strlen(ac_version_tmp) + 1));
131*495ae853SAndroid Build Coastguard Worker return IV_SUCCESS;
132*495ae853SAndroid Build Coastguard Worker }
133*495ae853SAndroid Build Coastguard Worker else
134*495ae853SAndroid Build Coastguard Worker {
135*495ae853SAndroid Build Coastguard Worker return IV_FAIL;
136*495ae853SAndroid Build Coastguard Worker }
137*495ae853SAndroid Build Coastguard Worker }
138