27 #if !defined(_opusenc_h)
28 # define _opusenc_h (1)
53 # if defined(__cplusplus)
61 # if defined(OPE_BUILD) && defined(DLL_EXPORT)
62 # define OPE_EXPORT __declspec(dllexport)
66 # elif defined(__GNUC__) && defined(OPE_BUILD)
67 # define OPE_EXPORT __attribute__ ((visibility ("default")))
86 #define OPE_API_VERSION 0
90 #define OPE_BAD_ARG -11
91 #define OPE_INTERNAL_ERROR -13
92 #define OPE_UNIMPLEMENTED -15
93 #define OPE_ALLOC_FAIL -17
96 #define OPE_CANNOT_OPEN -30
97 #define OPE_TOO_LATE -31
98 #define OPE_UNRECOVERABLE -32
99 #define OPE_INVALID_PICTURE -33
100 #define OPE_INVALID_ICON -34
106 #define OPE_SET_DECISION_DELAY_REQUEST 14000
107 #define OPE_GET_DECISION_DELAY_REQUEST 14001
108 #define OPE_SET_MUXING_DELAY_REQUEST 14002
109 #define OPE_GET_MUXING_DELAY_REQUEST 14003
110 #define OPE_SET_COMMENT_PADDING_REQUEST 14004
111 #define OPE_GET_COMMENT_PADDING_REQUEST 14005
112 #define OPE_SET_SERIALNO_REQUEST 14006
113 #define OPE_GET_SERIALNO_REQUEST 14007
114 #define OPE_SET_PACKET_CALLBACK_REQUEST 14008
116 #define OPE_SET_HEADER_GAIN_REQUEST 14010
117 #define OPE_GET_HEADER_GAIN_REQUEST 14011
127 #define OPE_SET_DECISION_DELAY(x) OPE_SET_DECISION_DELAY_REQUEST, __opus_check_int(x)
128 #define OPE_GET_DECISION_DELAY(x) OPE_GET_DECISION_DELAY_REQUEST, __opus_check_int_ptr(x)
129 #define OPE_SET_MUXING_DELAY(x) OPE_SET_MUXING_DELAY_REQUEST, __opus_check_int(x)
130 #define OPE_GET_MUXING_DELAY(x) OPE_GET_MUXING_DELAY_REQUEST, __opus_check_int_ptr(x)
131 #define OPE_SET_COMMENT_PADDING(x) OPE_SET_COMMENT_PADDING_REQUEST, __opus_check_int(x)
132 #define OPE_GET_COMMENT_PADDING(x) OPE_GET_COMMENT_PADDING_REQUEST, __opus_check_int_ptr(x)
133 #define OPE_SET_SERIALNO(x) OPE_SET_SERIALNO_REQUEST, __opus_check_int(x)
134 #define OPE_GET_SERIALNO(x) OPE_GET_SERIALNO_REQUEST, __opus_check_int_ptr(x)
136 #define OPE_SET_PACKET_CALLBACK(x,u) OPE_SET_PACKET_CALLBACK_REQUEST, (x), (u)
138 #define OPE_SET_HEADER_GAIN(x,u) OPE_SET_HEADER_GAIN_REQUEST, __opus_check_int(x)
139 #define OPE_GET_HEADER_GAIN(x,u) OPE_GET_HEADER_GAIN_REQUEST, __opus_check_int_ptr(x)
152 typedef int (*
ope_write_func)(
void *user_data,
const unsigned char *ptr, opus_int32 len);
158 typedef int (*
ope_packet_func)(
void *user_data,
const unsigned char *packet_ptr, opus_int32 packet_len, opus_uint32 flags);
171 typedef struct OggOpusComments OggOpusComments;
174 typedef struct OggOpusEnc OggOpusEnc;
203 OPE_EXPORT
int ope_comments_add(OggOpusComments *comments,
const char *tag,
const char *val);
219 OPE_EXPORT
int ope_comments_add_picture(OggOpusComments *comments,
const char *filename,
int picture_type,
const char *description);
241 OPE_EXPORT OggOpusEnc *
ope_encoder_create_file(
const char *path, OggOpusComments *comments, opus_int32 rate,
int channels,
int family,
int *error);
254 OggOpusComments *comments, opus_int32 rate,
int channels,
int family,
int *error);
265 OPE_EXPORT OggOpusEnc *
ope_encoder_create_pull(OggOpusComments *comments, opus_int32 rate,
int channels,
int family,
int *error);
279 OPE_EXPORT
int ope_encoder_write(OggOpusEnc *enc,
const opus_int16 *pcm,
int samples_per_channel);
287 OPE_EXPORT
int ope_encoder_get_page(OggOpusEnc *enc,
unsigned char **page, opus_int32 *len,
int flush);
354 # if defined(__cplusplus)
OPE_EXPORT const char * ope_strerror(int error)
Converts a libopusenc error code into a human readable string.
OPE_EXPORT int ope_encoder_drain(OggOpusEnc *enc)
Finalizes the stream, but does not deallocate the object.
OPE_EXPORT OggOpusEnc * ope_encoder_create_callbacks(const OpusEncCallbacks *callbacks, void *user_data, OggOpusComments *comments, opus_int32 rate, int channels, int family, int *error)
Create a new OggOpus stream to be handled using callbacks.
int(* ope_write_func)(void *user_data, const unsigned char *ptr, opus_int32 len)
Called for writing a page.
Definition: opusenc.h:152
int(* ope_close_func)(void *user_data)
Called for closing a stream.
Definition: opusenc.h:155
ope_write_func write
Callback for writing to the stream.
Definition: opusenc.h:163
OPE_EXPORT int ope_encoder_continue_new_file(OggOpusEnc *enc, const char *path, OggOpusComments *comments)
Ends the stream and create a new file.
OPE_EXPORT int ope_encoder_write_float(OggOpusEnc *enc, const float *pcm, int samples_per_channel)
Add/encode any number of float samples to the stream.
OPE_EXPORT const char * ope_get_version_string(void)
Returns a string representing the version of libopusenc being used at run time.
OPE_EXPORT int ope_encoder_flush_header(OggOpusEnc *enc)
Write out the header now rather than wait for audio to begin.
OPE_EXPORT int ope_encoder_ctl(OggOpusEnc *enc, int request,...)
Sets encoder options.
Callback functions for accessing the stream.
Definition: opusenc.h:161
OPE_EXPORT OggOpusEnc * ope_encoder_create_pull(OggOpusComments *comments, opus_int32 rate, int channels, int family, int *error)
Create a new OggOpus stream to be used along with.ope_encoder_get_page().
OPE_EXPORT void ope_encoder_destroy(OggOpusEnc *enc)
Deallocates the obect.
OPE_EXPORT int ope_encoder_write(OggOpusEnc *enc, const opus_int16 *pcm, int samples_per_channel)
Add/encode any number of 16-bit linear samples to the stream.
OPE_EXPORT int ope_encoder_chain_current(OggOpusEnc *enc, OggOpusComments *comments)
Ends the stream and create a new stream within the same file.
int(* ope_packet_func)(void *user_data, const unsigned char *packet_ptr, opus_int32 packet_len, opus_uint32 flags)
Called on every packet encoded (including header).
Definition: opusenc.h:158
OPE_EXPORT int ope_get_abi_version(void)
ABI version for this header.
OPE_EXPORT OggOpusEnc * ope_encoder_create_file(const char *path, OggOpusComments *comments, opus_int32 rate, int channels, int family, int *error)
Create a new OggOpus file.
OPE_EXPORT int ope_encoder_get_page(OggOpusEnc *enc, unsigned char **page, opus_int32 *len, int flush)
Get the next page from the stream (only if using ope_encoder_create_pull()).
OPE_EXPORT int ope_encoder_continue_new_callbacks(OggOpusEnc *enc, void *user_data, OggOpusComments *comments)
Ends the stream and create a new file (callback-based).
ope_close_func close
Callback for closing the stream.
Definition: opusenc.h:165