33 #ifndef OPUS_DEFINES_H
34 #define OPUS_DEFINES_H
48 #define OPUS_BAD_ARG -1
50 #define OPUS_BUFFER_TOO_SMALL -2
52 #define OPUS_INTERNAL_ERROR -3
54 #define OPUS_INVALID_PACKET -4
56 #define OPUS_UNIMPLEMENTED -5
58 #define OPUS_INVALID_STATE -6
60 #define OPUS_ALLOC_FAIL -7
69 # define OPUS_EXPORT __declspec(dllexport)
73 # elif defined(__GNUC__) && defined(OPUS_BUILD)
74 # define OPUS_EXPORT __attribute__ ((visibility ("default")))
80 # if !defined(OPUS_GNUC_PREREQ)
81 # if defined(__GNUC__)&&defined(__GNUC_MINOR__)
82 # define OPUS_GNUC_PREREQ(_maj,_min) \
83 ((__GNUC__<<16)+__GNUC_MINOR__>=((_maj)<<16)+(_min))
85 # define OPUS_GNUC_PREREQ(_maj,_min) 0
89 #if (!defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L) )
90 # if OPUS_GNUC_PREREQ(3,0)
91 # define OPUS_RESTRICT __restrict__
92 # elif (defined(_MSC_VER) && _MSC_VER >= 1400)
93 # define OPUS_RESTRICT __restrict
95 # define OPUS_RESTRICT
98 # define OPUS_RESTRICT restrict
101 #if (!defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L) )
102 # if OPUS_GNUC_PREREQ(2,7)
103 # define OPUS_INLINE __inline__
104 # elif (defined(_MSC_VER))
105 # define OPUS_INLINE __inline
110 # define OPUS_INLINE inline
116 #if defined(__GNUC__) && OPUS_GNUC_PREREQ(3, 4)
117 # define OPUS_WARN_UNUSED_RESULT __attribute__ ((__warn_unused_result__))
119 # define OPUS_WARN_UNUSED_RESULT
121 #if !defined(OPUS_BUILD) && defined(__GNUC__) && OPUS_GNUC_PREREQ(3, 4)
122 # define OPUS_ARG_NONNULL(_x) __attribute__ ((__nonnull__(_x)))
124 # define OPUS_ARG_NONNULL(_x)
130 #define OPUS_SET_APPLICATION_REQUEST 4000
131 #define OPUS_GET_APPLICATION_REQUEST 4001
132 #define OPUS_SET_BITRATE_REQUEST 4002
133 #define OPUS_GET_BITRATE_REQUEST 4003
134 #define OPUS_SET_MAX_BANDWIDTH_REQUEST 4004
135 #define OPUS_GET_MAX_BANDWIDTH_REQUEST 4005
136 #define OPUS_SET_VBR_REQUEST 4006
137 #define OPUS_GET_VBR_REQUEST 4007
138 #define OPUS_SET_BANDWIDTH_REQUEST 4008
139 #define OPUS_GET_BANDWIDTH_REQUEST 4009
140 #define OPUS_SET_COMPLEXITY_REQUEST 4010
141 #define OPUS_GET_COMPLEXITY_REQUEST 4011
142 #define OPUS_SET_INBAND_FEC_REQUEST 4012
143 #define OPUS_GET_INBAND_FEC_REQUEST 4013
144 #define OPUS_SET_PACKET_LOSS_PERC_REQUEST 4014
145 #define OPUS_GET_PACKET_LOSS_PERC_REQUEST 4015
146 #define OPUS_SET_DTX_REQUEST 4016
147 #define OPUS_GET_DTX_REQUEST 4017
148 #define OPUS_SET_VBR_CONSTRAINT_REQUEST 4020
149 #define OPUS_GET_VBR_CONSTRAINT_REQUEST 4021
150 #define OPUS_SET_FORCE_CHANNELS_REQUEST 4022
151 #define OPUS_GET_FORCE_CHANNELS_REQUEST 4023
152 #define OPUS_SET_SIGNAL_REQUEST 4024
153 #define OPUS_GET_SIGNAL_REQUEST 4025
154 #define OPUS_GET_LOOKAHEAD_REQUEST 4027
156 #define OPUS_GET_SAMPLE_RATE_REQUEST 4029
157 #define OPUS_GET_FINAL_RANGE_REQUEST 4031
158 #define OPUS_GET_PITCH_REQUEST 4033
159 #define OPUS_SET_GAIN_REQUEST 4034
160 #define OPUS_GET_GAIN_REQUEST 4045
161 #define OPUS_SET_LSB_DEPTH_REQUEST 4036
162 #define OPUS_GET_LSB_DEPTH_REQUEST 4037
163 #define OPUS_GET_LAST_PACKET_DURATION_REQUEST 4039
164 #define OPUS_SET_EXPERT_FRAME_DURATION_REQUEST 4040
165 #define OPUS_GET_EXPERT_FRAME_DURATION_REQUEST 4041
166 #define OPUS_SET_PREDICTION_DISABLED_REQUEST 4042
167 #define OPUS_GET_PREDICTION_DISABLED_REQUEST 4043
172 #define __opus_check_int(x) (((void)((x) == (opus_int32)0)), (opus_int32)(x))
173 #define __opus_check_int_ptr(ptr) ((ptr) + ((ptr) - (opus_int32*)(ptr)))
174 #define __opus_check_uint_ptr(ptr) ((ptr) + ((ptr) - (opus_uint32*)(ptr)))
175 #define __opus_check_val16_ptr(ptr) ((ptr) + ((ptr) - (opus_val16*)(ptr)))
183 #define OPUS_AUTO -1000
184 #define OPUS_BITRATE_MAX -1
188 #define OPUS_APPLICATION_VOIP 2048
191 #define OPUS_APPLICATION_AUDIO 2049
194 #define OPUS_APPLICATION_RESTRICTED_LOWDELAY 2051
196 #define OPUS_SIGNAL_VOICE 3001
197 #define OPUS_SIGNAL_MUSIC 3002
198 #define OPUS_BANDWIDTH_NARROWBAND 1101
199 #define OPUS_BANDWIDTH_MEDIUMBAND 1102
200 #define OPUS_BANDWIDTH_WIDEBAND 1103
201 #define OPUS_BANDWIDTH_SUPERWIDEBAND 1104
202 #define OPUS_BANDWIDTH_FULLBAND 1105
204 #define OPUS_FRAMESIZE_ARG 5000
205 #define OPUS_FRAMESIZE_2_5_MS 5001
206 #define OPUS_FRAMESIZE_5_MS 5002
207 #define OPUS_FRAMESIZE_10_MS 5003
208 #define OPUS_FRAMESIZE_20_MS 5004
209 #define OPUS_FRAMESIZE_40_MS 5005
210 #define OPUS_FRAMESIZE_60_MS 5006
245 #define OPUS_SET_COMPLEXITY(x) OPUS_SET_COMPLEXITY_REQUEST, __opus_check_int(x)
251 #define OPUS_GET_COMPLEXITY(x) OPUS_GET_COMPLEXITY_REQUEST, __opus_check_int_ptr(x)
264 #define OPUS_SET_BITRATE(x) OPUS_SET_BITRATE_REQUEST, __opus_check_int(x)
272 #define OPUS_GET_BITRATE(x) OPUS_GET_BITRATE_REQUEST, __opus_check_int_ptr(x)
287 #define OPUS_SET_VBR(x) OPUS_SET_VBR_REQUEST, __opus_check_int(x)
298 #define OPUS_GET_VBR(x) OPUS_GET_VBR_REQUEST, __opus_check_int_ptr(x)
316 #define OPUS_SET_VBR_CONSTRAINT(x) OPUS_SET_VBR_CONSTRAINT_REQUEST, __opus_check_int(x)
326 #define OPUS_GET_VBR_CONSTRAINT(x) OPUS_GET_VBR_CONSTRAINT_REQUEST, __opus_check_int_ptr(x)
341 #define OPUS_SET_FORCE_CHANNELS(x) OPUS_SET_FORCE_CHANNELS_REQUEST, __opus_check_int(x)
351 #define OPUS_GET_FORCE_CHANNELS(x) OPUS_GET_FORCE_CHANNELS_REQUEST, __opus_check_int_ptr(x)
369 #define OPUS_SET_MAX_BANDWIDTH(x) OPUS_SET_MAX_BANDWIDTH_REQUEST, __opus_check_int(x)
382 #define OPUS_GET_MAX_BANDWIDTH(x) OPUS_GET_MAX_BANDWIDTH_REQUEST, __opus_check_int_ptr(x)
401 #define OPUS_SET_BANDWIDTH(x) OPUS_SET_BANDWIDTH_REQUEST, __opus_check_int(x)
413 #define OPUS_SET_SIGNAL(x) OPUS_SET_SIGNAL_REQUEST, __opus_check_int(x)
423 #define OPUS_GET_SIGNAL(x) OPUS_GET_SIGNAL_REQUEST, __opus_check_int_ptr(x)
440 #define OPUS_SET_APPLICATION(x) OPUS_SET_APPLICATION_REQUEST, __opus_check_int(x)
454 #define OPUS_GET_APPLICATION(x) OPUS_GET_APPLICATION_REQUEST, __opus_check_int_ptr(x)
469 #define OPUS_GET_LOOKAHEAD(x) OPUS_GET_LOOKAHEAD_REQUEST, __opus_check_int_ptr(x)
480 #define OPUS_SET_INBAND_FEC(x) OPUS_SET_INBAND_FEC_REQUEST, __opus_check_int(x)
489 #define OPUS_GET_INBAND_FEC(x) OPUS_GET_INBAND_FEC_REQUEST, __opus_check_int_ptr(x)
498 #define OPUS_SET_PACKET_LOSS_PERC(x) OPUS_SET_PACKET_LOSS_PERC_REQUEST, __opus_check_int(x)
504 #define OPUS_GET_PACKET_LOSS_PERC(x) OPUS_GET_PACKET_LOSS_PERC_REQUEST, __opus_check_int_ptr(x)
515 #define OPUS_SET_DTX(x) OPUS_SET_DTX_REQUEST, __opus_check_int(x)
524 #define OPUS_GET_DTX(x) OPUS_GET_DTX_REQUEST, __opus_check_int_ptr(x)
543 #define OPUS_SET_LSB_DEPTH(x) OPUS_SET_LSB_DEPTH_REQUEST, __opus_check_int(x)
549 #define OPUS_GET_LSB_DEPTH(x) OPUS_GET_LSB_DEPTH_REQUEST, __opus_check_int_ptr(x)
572 #define OPUS_SET_EXPERT_FRAME_DURATION(x) OPUS_SET_EXPERT_FRAME_DURATION_REQUEST, __opus_check_int(x)
587 #define OPUS_GET_EXPERT_FRAME_DURATION(x) OPUS_GET_EXPERT_FRAME_DURATION_REQUEST, __opus_check_int_ptr(x)
598 #define OPUS_SET_PREDICTION_DISABLED(x) OPUS_SET_PREDICTION_DISABLED_REQUEST, __opus_check_int(x)
607 #define OPUS_GET_PREDICTION_DISABLED(x) OPUS_GET_PREDICTION_DISABLED_REQUEST, __opus_check_int_ptr(x)
650 #define OPUS_RESET_STATE 4028
660 #define OPUS_GET_FINAL_RANGE(x) OPUS_GET_FINAL_RANGE_REQUEST, __opus_check_uint_ptr(x)
674 #define OPUS_GET_BANDWIDTH(x) OPUS_GET_BANDWIDTH_REQUEST, __opus_check_int_ptr(x)
682 #define OPUS_GET_SAMPLE_RATE(x) OPUS_GET_SAMPLE_RATE_REQUEST, __opus_check_int_ptr(x)
701 #define OPUS_SET_GAIN(x) OPUS_SET_GAIN_REQUEST, __opus_check_int(x)
706 #define OPUS_GET_GAIN(x) OPUS_GET_GAIN_REQUEST, __opus_check_int_ptr(x)
711 #define OPUS_GET_LAST_PACKET_DURATION(x) OPUS_GET_LAST_PACKET_DURATION_REQUEST, __opus_check_int_ptr(x)
723 #define OPUS_GET_PITCH(x) OPUS_GET_PITCH_REQUEST, __opus_check_int_ptr(x)
Opus reference implementation types.
const char * opus_strerror(int error)
Converts an opus error code into a human readable string.
const char * opus_get_version_string(void)
Gets the libopus version string.