blob: 58336d24f56e3c9326acb5da441eb98cc9fcd35a [file] [log] [blame]
Chisato Kenmochi94704432017-01-10 11:56:48 +09001/*
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
20extern "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
32typedef 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
46typedef struct _handle_ldac_struct *HANDLE_LDAC;
47
48typedef 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 */
63DECLSPEC int ldaclib_get_version(void);
64DECLSPEC int ldaclib_get_major_version(void);
65DECLSPEC int ldaclib_get_minor_version(void);
66DECLSPEC int ldaclib_get_branch_version(void);
67
68DECLSPEC LDAC_RESULT ldaclib_get_sampling_rate_index(int, int *);
69DECLSPEC LDAC_RESULT ldaclib_get_sampling_rate(int, int *);
70DECLSPEC LDAC_RESULT ldaclib_get_frame_samples(int, int *);
71DECLSPEC LDAC_RESULT ldaclib_get_nlnn(int, int *);
72DECLSPEC LDAC_RESULT ldaclib_get_channel(int, int *);
73DECLSPEC LDAC_RESULT ldaclib_get_channel_config_index(int, int *);
74DECLSPEC LDAC_RESULT ldaclib_check_nlnn_shift(int, int);
75
76DECLSPEC HANDLE_LDAC ldaclib_get_handle(void);
77DECLSPEC LDAC_RESULT ldaclib_free_handle(HANDLE_LDAC);
78
79DECLSPEC LDAC_RESULT ldaclib_set_config_info(HANDLE_LDAC, int, int, int, int);
80DECLSPEC LDAC_RESULT ldaclib_get_config_info(HANDLE_LDAC, int *, int *, int *, int *);
81DECLSPEC LDAC_RESULT ldaclib_set_frame_header(HANDLE_LDAC, unsigned char *, int, int, int, int);
82
83/* Encoder API Functions */
84DECLSPEC LDAC_RESULT ldaclib_get_encode_setting(int, int, int *, int *, int *, int *, int *, int *, int *);
85DECLSPEC LDAC_RESULT ldaclib_set_encode_frame_length(HANDLE_LDAC, int);
86DECLSPEC LDAC_RESULT ldaclib_get_encode_frame_length(HANDLE_LDAC, int *);
87DECLSPEC LDAC_RESULT ldaclib_set_encode_info(HANDLE_LDAC, int, int, int, int, int, int, int);
88DECLSPEC LDAC_RESULT ldaclib_init_encode(HANDLE_LDAC);
89DECLSPEC LDAC_RESULT ldaclib_free_encode(HANDLE_LDAC);
90DECLSPEC LDAC_RESULT ldaclib_encode(HANDLE_LDAC, char *[], LDAC_SMPL_FMT_T, unsigned char *, int *);
91DECLSPEC LDAC_RESULT ldaclib_flush_encode(HANDLE_LDAC, LDAC_SMPL_FMT_T, unsigned char *, int *);
92
93
94/* Error Code Dispatch */
95DECLSPEC LDAC_RESULT ldaclib_get_error_code(HANDLE_LDAC, int *);
96DECLSPEC LDAC_RESULT ldaclib_get_internal_error_code(HANDLE_LDAC, int *);
97DECLSPEC LDAC_RESULT ldaclib_clear_error_code(HANDLE_LDAC);
98DECLSPEC 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