00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00033 #ifndef OPUS_DEFINES_H
00034 #define OPUS_DEFINES_H
00035
00036 #include "opus_types.h"
00037
00038 #ifdef __cplusplus
00039 extern "C" {
00040 #endif
00041
00046 #define OPUS_OK 0
00047
00048 #define OPUS_BAD_ARG -1
00049
00050 #define OPUS_BUFFER_TOO_SMALL -2
00051
00052 #define OPUS_INTERNAL_ERROR -3
00053
00054 #define OPUS_INVALID_PACKET -4
00055
00056 #define OPUS_UNIMPLEMENTED -5
00057
00058 #define OPUS_INVALID_STATE -6
00059
00060 #define OPUS_ALLOC_FAIL -7
00061
00066 #ifndef OPUS_EXPORT
00067 # if defined(WIN32)
00068 # if defined(OPUS_BUILD) && defined(DLL_EXPORT)
00069 # define OPUS_EXPORT __declspec(dllexport)
00070 # else
00071 # define OPUS_EXPORT
00072 # endif
00073 # elif defined(__GNUC__) && defined(OPUS_BUILD)
00074 # define OPUS_EXPORT __attribute__ ((visibility ("default")))
00075 # else
00076 # define OPUS_EXPORT
00077 # endif
00078 #endif
00079
00080 # if !defined(OPUS_GNUC_PREREQ)
00081 # if defined(__GNUC__)&&defined(__GNUC_MINOR__)
00082 # define OPUS_GNUC_PREREQ(_maj,_min) \
00083 ((__GNUC__<<16)+__GNUC_MINOR__>=((_maj)<<16)+(_min))
00084 # else
00085 # define OPUS_GNUC_PREREQ(_maj,_min) 0
00086 # endif
00087 # endif
00088
00089 #if (!defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L) )
00090 # if OPUS_GNUC_PREREQ(3,0)
00091 # define OPUS_RESTRICT __restrict__
00092 # elif (defined(_MSC_VER) && _MSC_VER >= 1400)
00093 # define OPUS_RESTRICT __restrict
00094 # else
00095 # define OPUS_RESTRICT
00096 # endif
00097 #else
00098 # define OPUS_RESTRICT restrict
00099 #endif
00100
00101 #if (!defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L) )
00102 # if OPUS_GNUC_PREREQ(2,7)
00103 # define OPUS_INLINE __inline__
00104 # elif (defined(_MSC_VER))
00105 # define OPUS_INLINE __inline
00106 # else
00107 # define OPUS_INLINE
00108 # endif
00109 #else
00110 # define OPUS_INLINE inline
00111 #endif
00112
00116 #if defined(__GNUC__) && OPUS_GNUC_PREREQ(3, 4)
00117 # define OPUS_WARN_UNUSED_RESULT __attribute__ ((__warn_unused_result__))
00118 #else
00119 # define OPUS_WARN_UNUSED_RESULT
00120 #endif
00121 #if !defined(OPUS_BUILD) && defined(__GNUC__) && OPUS_GNUC_PREREQ(3, 4)
00122 # define OPUS_ARG_NONNULL(_x) __attribute__ ((__nonnull__(_x)))
00123 #else
00124 # define OPUS_ARG_NONNULL(_x)
00125 #endif
00126
00130 #define OPUS_SET_APPLICATION_REQUEST 4000
00131 #define OPUS_GET_APPLICATION_REQUEST 4001
00132 #define OPUS_SET_BITRATE_REQUEST 4002
00133 #define OPUS_GET_BITRATE_REQUEST 4003
00134 #define OPUS_SET_MAX_BANDWIDTH_REQUEST 4004
00135 #define OPUS_GET_MAX_BANDWIDTH_REQUEST 4005
00136 #define OPUS_SET_VBR_REQUEST 4006
00137 #define OPUS_GET_VBR_REQUEST 4007
00138 #define OPUS_SET_BANDWIDTH_REQUEST 4008
00139 #define OPUS_GET_BANDWIDTH_REQUEST 4009
00140 #define OPUS_SET_COMPLEXITY_REQUEST 4010
00141 #define OPUS_GET_COMPLEXITY_REQUEST 4011
00142 #define OPUS_SET_INBAND_FEC_REQUEST 4012
00143 #define OPUS_GET_INBAND_FEC_REQUEST 4013
00144 #define OPUS_SET_PACKET_LOSS_PERC_REQUEST 4014
00145 #define OPUS_GET_PACKET_LOSS_PERC_REQUEST 4015
00146 #define OPUS_SET_DTX_REQUEST 4016
00147 #define OPUS_GET_DTX_REQUEST 4017
00148 #define OPUS_SET_VBR_CONSTRAINT_REQUEST 4020
00149 #define OPUS_GET_VBR_CONSTRAINT_REQUEST 4021
00150 #define OPUS_SET_FORCE_CHANNELS_REQUEST 4022
00151 #define OPUS_GET_FORCE_CHANNELS_REQUEST 4023
00152 #define OPUS_SET_SIGNAL_REQUEST 4024
00153 #define OPUS_GET_SIGNAL_REQUEST 4025
00154 #define OPUS_GET_LOOKAHEAD_REQUEST 4027
00155
00156 #define OPUS_GET_SAMPLE_RATE_REQUEST 4029
00157 #define OPUS_GET_FINAL_RANGE_REQUEST 4031
00158 #define OPUS_GET_PITCH_REQUEST 4033
00159 #define OPUS_SET_GAIN_REQUEST 4034
00160 #define OPUS_GET_GAIN_REQUEST 4045
00161 #define OPUS_SET_LSB_DEPTH_REQUEST 4036
00162 #define OPUS_GET_LSB_DEPTH_REQUEST 4037
00163 #define OPUS_GET_LAST_PACKET_DURATION_REQUEST 4039
00164 #define OPUS_SET_EXPERT_FRAME_DURATION_REQUEST 4040
00165 #define OPUS_GET_EXPERT_FRAME_DURATION_REQUEST 4041
00166 #define OPUS_SET_PREDICTION_DISABLED_REQUEST 4042
00167 #define OPUS_GET_PREDICTION_DISABLED_REQUEST 4043
00168
00169
00170
00171
00172 #define __opus_check_int(x) (((void)((x) == (opus_int32)0)), (opus_int32)(x))
00173 #define __opus_check_int_ptr(ptr) ((ptr) + ((ptr) - (opus_int32*)(ptr)))
00174 #define __opus_check_uint_ptr(ptr) ((ptr) + ((ptr) - (opus_uint32*)(ptr)))
00175 #define __opus_check_val16_ptr(ptr) ((ptr) + ((ptr) - (opus_val16*)(ptr)))
00176
00182
00183 #define OPUS_AUTO -1000
00184 #define OPUS_BITRATE_MAX -1
00188 #define OPUS_APPLICATION_VOIP 2048
00189
00191 #define OPUS_APPLICATION_AUDIO 2049
00192
00194 #define OPUS_APPLICATION_RESTRICTED_LOWDELAY 2051
00195
00196 #define OPUS_SIGNAL_VOICE 3001
00197 #define OPUS_SIGNAL_MUSIC 3002
00198 #define OPUS_BANDWIDTH_NARROWBAND 1101
00199 #define OPUS_BANDWIDTH_MEDIUMBAND 1102
00200 #define OPUS_BANDWIDTH_WIDEBAND 1103
00201 #define OPUS_BANDWIDTH_SUPERWIDEBAND 1104
00202 #define OPUS_BANDWIDTH_FULLBAND 1105
00204 #define OPUS_FRAMESIZE_ARG 5000
00205 #define OPUS_FRAMESIZE_2_5_MS 5001
00206 #define OPUS_FRAMESIZE_5_MS 5002
00207 #define OPUS_FRAMESIZE_10_MS 5003
00208 #define OPUS_FRAMESIZE_20_MS 5004
00209 #define OPUS_FRAMESIZE_40_MS 5005
00210 #define OPUS_FRAMESIZE_60_MS 5006
00245 #define OPUS_SET_COMPLEXITY(x) OPUS_SET_COMPLEXITY_REQUEST, __opus_check_int(x)
00246
00251 #define OPUS_GET_COMPLEXITY(x) OPUS_GET_COMPLEXITY_REQUEST, __opus_check_int_ptr(x)
00252
00264 #define OPUS_SET_BITRATE(x) OPUS_SET_BITRATE_REQUEST, __opus_check_int(x)
00265
00272 #define OPUS_GET_BITRATE(x) OPUS_GET_BITRATE_REQUEST, __opus_check_int_ptr(x)
00273
00287 #define OPUS_SET_VBR(x) OPUS_SET_VBR_REQUEST, __opus_check_int(x)
00288
00298 #define OPUS_GET_VBR(x) OPUS_GET_VBR_REQUEST, __opus_check_int_ptr(x)
00299
00316 #define OPUS_SET_VBR_CONSTRAINT(x) OPUS_SET_VBR_CONSTRAINT_REQUEST, __opus_check_int(x)
00317
00326 #define OPUS_GET_VBR_CONSTRAINT(x) OPUS_GET_VBR_CONSTRAINT_REQUEST, __opus_check_int_ptr(x)
00327
00341 #define OPUS_SET_FORCE_CHANNELS(x) OPUS_SET_FORCE_CHANNELS_REQUEST, __opus_check_int(x)
00342
00351 #define OPUS_GET_FORCE_CHANNELS(x) OPUS_GET_FORCE_CHANNELS_REQUEST, __opus_check_int_ptr(x)
00352
00369 #define OPUS_SET_MAX_BANDWIDTH(x) OPUS_SET_MAX_BANDWIDTH_REQUEST, __opus_check_int(x)
00370
00382 #define OPUS_GET_MAX_BANDWIDTH(x) OPUS_GET_MAX_BANDWIDTH_REQUEST, __opus_check_int_ptr(x)
00383
00401 #define OPUS_SET_BANDWIDTH(x) OPUS_SET_BANDWIDTH_REQUEST, __opus_check_int(x)
00402
00413 #define OPUS_SET_SIGNAL(x) OPUS_SET_SIGNAL_REQUEST, __opus_check_int(x)
00414
00423 #define OPUS_GET_SIGNAL(x) OPUS_GET_SIGNAL_REQUEST, __opus_check_int_ptr(x)
00424
00425
00440 #define OPUS_SET_APPLICATION(x) OPUS_SET_APPLICATION_REQUEST, __opus_check_int(x)
00441
00454 #define OPUS_GET_APPLICATION(x) OPUS_GET_APPLICATION_REQUEST, __opus_check_int_ptr(x)
00455
00469 #define OPUS_GET_LOOKAHEAD(x) OPUS_GET_LOOKAHEAD_REQUEST, __opus_check_int_ptr(x)
00470
00480 #define OPUS_SET_INBAND_FEC(x) OPUS_SET_INBAND_FEC_REQUEST, __opus_check_int(x)
00481
00489 #define OPUS_GET_INBAND_FEC(x) OPUS_GET_INBAND_FEC_REQUEST, __opus_check_int_ptr(x)
00490
00498 #define OPUS_SET_PACKET_LOSS_PERC(x) OPUS_SET_PACKET_LOSS_PERC_REQUEST, __opus_check_int(x)
00499
00504 #define OPUS_GET_PACKET_LOSS_PERC(x) OPUS_GET_PACKET_LOSS_PERC_REQUEST, __opus_check_int_ptr(x)
00505
00515 #define OPUS_SET_DTX(x) OPUS_SET_DTX_REQUEST, __opus_check_int(x)
00516
00524 #define OPUS_GET_DTX(x) OPUS_GET_DTX_REQUEST, __opus_check_int_ptr(x)
00525
00543 #define OPUS_SET_LSB_DEPTH(x) OPUS_SET_LSB_DEPTH_REQUEST, __opus_check_int(x)
00544
00549 #define OPUS_GET_LSB_DEPTH(x) OPUS_GET_LSB_DEPTH_REQUEST, __opus_check_int_ptr(x)
00550
00572 #define OPUS_SET_EXPERT_FRAME_DURATION(x) OPUS_SET_EXPERT_FRAME_DURATION_REQUEST, __opus_check_int(x)
00573
00587 #define OPUS_GET_EXPERT_FRAME_DURATION(x) OPUS_GET_EXPERT_FRAME_DURATION_REQUEST, __opus_check_int_ptr(x)
00588
00598 #define OPUS_SET_PREDICTION_DISABLED(x) OPUS_SET_PREDICTION_DISABLED_REQUEST, __opus_check_int(x)
00599
00607 #define OPUS_GET_PREDICTION_DISABLED(x) OPUS_GET_PREDICTION_DISABLED_REQUEST, __opus_check_int_ptr(x)
00608
00650 #define OPUS_RESET_STATE 4028
00651
00660 #define OPUS_GET_FINAL_RANGE(x) OPUS_GET_FINAL_RANGE_REQUEST, __opus_check_uint_ptr(x)
00661
00674 #define OPUS_GET_BANDWIDTH(x) OPUS_GET_BANDWIDTH_REQUEST, __opus_check_int_ptr(x)
00675
00682 #define OPUS_GET_SAMPLE_RATE(x) OPUS_GET_SAMPLE_RATE_REQUEST, __opus_check_int_ptr(x)
00683
00701 #define OPUS_SET_GAIN(x) OPUS_SET_GAIN_REQUEST, __opus_check_int(x)
00702
00706 #define OPUS_GET_GAIN(x) OPUS_GET_GAIN_REQUEST, __opus_check_int_ptr(x)
00707
00711 #define OPUS_GET_LAST_PACKET_DURATION(x) OPUS_GET_LAST_PACKET_DURATION_REQUEST, __opus_check_int_ptr(x)
00712
00723 #define OPUS_GET_PITCH(x) OPUS_GET_PITCH_REQUEST, __opus_check_int_ptr(x)
00724
00736 OPUS_EXPORT const char *opus_strerror(int error);
00737
00746 OPUS_EXPORT const char *opus_get_version_string(void);
00749 #ifdef __cplusplus
00750 }
00751 #endif
00752
00753 #endif