• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2013 - 2016 Sony Corporation
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef _LDACLIB_H
18 #define _LDACLIB_H
19 #ifdef __cplusplus
20 extern "C" {
21 #endif /* __cplusplus */
22 
23 /***************************************************************************************************
24     Macro Definitions
25 ***************************************************************************************************/
26 #define LDAC_HOST_ENDIAN_LITTLE
27 
28 #define LDAC_PRCNCH        2
29 #define LDAC_FRMHDRBYTES   3
30 #define LDAC_CONFIGBYTES   4
31 
32 typedef int LDAC_RESULT;
33 #define LDAC_S_OK          ((LDAC_RESULT)0x00000000L)
34 #define LDAC_S_FALSE       ((LDAC_RESULT)0x00000001L)
35 #define LDAC_E_UNEXPECTED  ((LDAC_RESULT)0x8000FFFFL)
36 #define LDAC_E_OUTOFMEMORY ((LDAC_RESULT)0x8007000EL)
37 #define LDAC_E_INVALIDARG  ((LDAC_RESULT)0x80070057L)
38 #define LDAC_E_FAIL        ((LDAC_RESULT)0x80004005L)
39 #define LDAC_E_NOTIMPL     ((LDAC_RESULT)0x80004001L)
40 
41 #define LDAC_SUCCEEDED(result) ((LDAC_RESULT)(result)>=0)
42 #define LDAC_FAILED(result)    ((LDAC_RESULT)(result)<0)
43 
44 #define DECLSPEC
45 
46 typedef struct _handle_ldac_struct *HANDLE_LDAC;
47 
48 typedef enum {
49     LDAC_SMPL_FMT_NONE,
50     LDAC_SMPL_FMT_S08,
51     LDAC_SMPL_FMT_S16,
52     LDAC_SMPL_FMT_S24,
53     LDAC_SMPL_FMT_S32,
54     LDAC_SMPL_FMT_F32,
55     LDAC_SMPL_FMT_NUM,
56     LDAC_SMPL_FMT_MAX = 0x7fffffff
57 } LDAC_SMPL_FMT_T;
58 
59 /***************************************************************************************************
60     Function Declarations
61 ***************************************************************************************************/
62 /* Common API Functions */
63 DECLSPEC int ldaclib_get_version(void);
64 DECLSPEC int ldaclib_get_major_version(void);
65 DECLSPEC int ldaclib_get_minor_version(void);
66 DECLSPEC int ldaclib_get_branch_version(void);
67 
68 DECLSPEC LDAC_RESULT ldaclib_get_sampling_rate_index(int, int *);
69 DECLSPEC LDAC_RESULT ldaclib_get_sampling_rate(int, int *);
70 DECLSPEC LDAC_RESULT ldaclib_get_frame_samples(int, int *);
71 DECLSPEC LDAC_RESULT ldaclib_get_nlnn(int, int *);
72 DECLSPEC LDAC_RESULT ldaclib_get_channel(int, int *);
73 DECLSPEC LDAC_RESULT ldaclib_get_channel_config_index(int, int *);
74 DECLSPEC LDAC_RESULT ldaclib_check_nlnn_shift(int, int);
75 
76 DECLSPEC HANDLE_LDAC ldaclib_get_handle(void);
77 DECLSPEC LDAC_RESULT ldaclib_free_handle(HANDLE_LDAC);
78 
79 DECLSPEC LDAC_RESULT ldaclib_set_config_info(HANDLE_LDAC, int, int, int, int);
80 DECLSPEC LDAC_RESULT ldaclib_get_config_info(HANDLE_LDAC, int *, int *, int *, int *);
81 DECLSPEC LDAC_RESULT ldaclib_set_frame_header(HANDLE_LDAC, unsigned char *, int, int, int, int);
82 
83 /* Encoder API Functions */
84 DECLSPEC LDAC_RESULT ldaclib_get_encode_setting(int, int, int *, int *, int *, int *, int *, int *, int *);
85 DECLSPEC LDAC_RESULT ldaclib_set_encode_frame_length(HANDLE_LDAC, int);
86 DECLSPEC LDAC_RESULT ldaclib_get_encode_frame_length(HANDLE_LDAC, int *);
87 DECLSPEC LDAC_RESULT ldaclib_set_encode_info(HANDLE_LDAC, int, int, int, int, int, int, int);
88 DECLSPEC LDAC_RESULT ldaclib_init_encode(HANDLE_LDAC);
89 DECLSPEC LDAC_RESULT ldaclib_free_encode(HANDLE_LDAC);
90 DECLSPEC LDAC_RESULT ldaclib_encode(HANDLE_LDAC, char *[], LDAC_SMPL_FMT_T, unsigned char *, int *);
91 DECLSPEC LDAC_RESULT ldaclib_flush_encode(HANDLE_LDAC, LDAC_SMPL_FMT_T, unsigned char *, int *);
92 
93 
94 /* Error Code Dispatch */
95 DECLSPEC LDAC_RESULT ldaclib_get_error_code(HANDLE_LDAC, int *);
96 DECLSPEC LDAC_RESULT ldaclib_get_internal_error_code(HANDLE_LDAC, int *);
97 DECLSPEC LDAC_RESULT ldaclib_clear_error_code(HANDLE_LDAC);
98 DECLSPEC LDAC_RESULT ldaclib_clear_internal_error_code(HANDLE_LDAC);
99 
100 /***************************************************************************************************
101     Error Code Definitions
102 ***************************************************************************************************/
103 #define LDAC_ERR_NONE                       0
104 
105 /* Non Fatal Error */
106 #define LDAC_ERR_NON_FATAL                  1
107 
108 /* Non Fatal Error (Block Level) */
109 #define LDAC_ERR_BIT_ALLOCATION             5
110 
111 /* Non Fatal Error (Handle Level) */
112 #define LDAC_ERR_NOT_IMPLEMENTED          128
113 #define LDAC_ERR_NON_FATAL_ENCODE         132
114 
115 /* Fatal Error */
116 #define LDAC_ERR_FATAL                    256
117 
118 /* Fatal Error (Block Level) */
119 #define LDAC_ERR_SYNTAX_BAND              260
120 #define LDAC_ERR_SYNTAX_GRAD_A            261
121 #define LDAC_ERR_SYNTAX_GRAD_B            262
122 #define LDAC_ERR_SYNTAX_GRAD_C            263
123 #define LDAC_ERR_SYNTAX_GRAD_D            264
124 #define LDAC_ERR_SYNTAX_GRAD_E            265
125 #define LDAC_ERR_SYNTAX_IDSF              266
126 #define LDAC_ERR_SYNTAX_SPEC              267
127 
128 #define LDAC_ERR_BIT_PACKING              280
129 
130 #define LDAC_ERR_ALLOC_MEMORY             300
131 
132 /* Fatal Error (Handle Level) */
133 #define LDAC_ERR_FATAL_HANDLE             512
134 
135 #define LDAC_ERR_ILL_SYNCWORD             516
136 #define LDAC_ERR_ILL_SMPL_FORMAT          517
137 
138 #define LDAC_ERR_ASSERT_SAMPLING_RATE     530
139 #define LDAC_ERR_ASSERT_SUP_SAMPLING_RATE 531
140 #define LDAC_ERR_CHECK_SAMPLING_RATE      532
141 #define LDAC_ERR_ASSERT_CHANNEL_CONFIG    533
142 #define LDAC_ERR_CHECK_CHANNEL_CONFIG     534
143 #define LDAC_ERR_ASSERT_FRAME_LENGTH      535
144 #define LDAC_ERR_ASSERT_SUP_FRAME_LENGTH  536
145 #define LDAC_ERR_ASSERT_FRAME_STATUS      537
146 #define LDAC_ERR_ASSERT_NSHIFT            538
147 
148 #define LDAC_ERR_ENC_INIT_ALLOC           550
149 #define LDAC_ERR_ENC_ILL_GRADMODE         551
150 #define LDAC_ERR_ENC_ILL_GRADPAR_A        552
151 #define LDAC_ERR_ENC_ILL_GRADPAR_B        553
152 #define LDAC_ERR_ENC_ILL_GRADPAR_C        554
153 #define LDAC_ERR_ENC_ILL_GRADPAR_D        555
154 #define LDAC_ERR_ENC_ILL_NBANDS           556
155 #define LDAC_ERR_PACK_BLOCK_FAILED        557
156 
157 #define LDAC_ERR_DEC_INIT_ALLOC           570
158 #define LDAC_ERR_INPUT_BUFFER_SIZE        571
159 #define LDAC_ERR_UNPACK_BLOCK_FAILED      572
160 #define LDAC_ERR_UNPACK_BLOCK_ALIGN       573
161 #define LDAC_ERR_UNPACK_FRAME_ALIGN       574
162 #define LDAC_ERR_FRAME_LENGTH_OVER        575
163 #define LDAC_ERR_FRAME_ALIGN_OVER         576
164 
165 #define LDAC_ERR_FRAME_LIMIT              998
166 #define LDAC_ERR_TIME_EXPIRED             999
167 
168 #define LDAC_ERROR(err)       ((LDAC_ERR_NON_FATAL) <= (err) ? 1 : 0)
169 #define LDAC_FATAL_ERROR(err) ((LDAC_ERR_FATAL) <= (err) ? 1 : 0)
170 
171 #ifdef __cplusplus
172 }
173 #endif /* __cplusplus */
174 #endif /* _LDACLIB_H */
175 
176