17 #if !defined(_opusfile_h)
18 # define _opusfile_h (1)
56 # if defined(__cplusplus)
62 # include <opus_multistream.h>
65 # if !defined(OP_GNUC_PREREQ)
66 # if defined(__GNUC__)&&defined(__GNUC_MINOR__)
67 # define OP_GNUC_PREREQ(_maj,_min) \
68 ((__GNUC__<<16)+__GNUC_MINOR__>=((_maj)<<16)+(_min))
70 # define OP_GNUC_PREREQ(_maj,_min) 0
74 # if OP_GNUC_PREREQ(4,0)
75 # pragma GCC visibility push(default)
80 typedef struct OggOpusFile OggOpusFile;
83 # if OP_GNUC_PREREQ(3,4)
84 # define OP_WARN_UNUSED_RESULT __attribute__((__warn_unused_result__))
86 # define OP_WARN_UNUSED_RESULT
88 # if OP_GNUC_PREREQ(3,4)
89 # define OP_ARG_NONNULL(_x) __attribute__((__nonnull__(_x)))
91 # define OP_ARG_NONNULL(_x)
105 #define OP_FALSE (-1)
113 #define OP_EREAD (-128)
117 #define OP_EFAULT (-129)
120 #define OP_EIMPL (-130)
122 #define OP_EINVAL (-131)
127 #define OP_ENOTFORMAT (-132)
130 #define OP_EBADHEADER (-133)
132 #define OP_EVERSION (-134)
134 #define OP_ENOTAUDIO (-135)
138 #define OP_EBADPACKET (-136)
142 #define OP_EBADLINK (-137)
144 #define OP_ENOSEEK (-138)
146 #define OP_EBADTIMESTAMP (-139)
155 #define OPUS_CHANNEL_COUNT_MAX (255)
291 const unsigned char *_data,
size_t _len) OP_ARG_NONNULL(2);
325 const unsigned char *_data,
size_t _len) OP_ARG_NONNULL(2);
345 OP_ARG_NONNULL(1) OP_ARG_NONNULL(2) OP_ARG_NONNULL(3);
358 OP_ARG_NONNULL(1) OP_ARG_NONNULL(2);
376 OP_ARG_NONNULL(1) OP_ARG_NONNULL(2);
386 OP_ARG_NONNULL(1) OP_ARG_NONNULL(2);
413 #define OP_SSL_SKIP_CERTIFICATE_CHECK_REQUEST (6464)
414 #define OP_HTTP_PROXY_HOST_REQUEST (6528)
415 #define OP_HTTP_PROXY_PORT_REQUEST (6592)
416 #define OP_HTTP_PROXY_USER_REQUEST (6656)
417 #define OP_HTTP_PROXY_PASS_REQUEST (6720)
419 #define OP_URL_OPT(_request) ((_request)+(char *)0)
423 #define OP_CHECK_INT(_x) ((void)((_x)==(opus_int32)0),(opus_int32)(_x))
424 #define OP_CHECK_CONST_CHAR_PTR(_x) ((_x)+((_x)-(const char *)(_x)))
432 #define OP_SSL_SKIP_CERTIFICATE_CHECK(_b) \
433 OP_URL_OPT(OP_SSL_SKIP_CERTIFICATE_CHECK_REQUEST),OP_CHECK_INT(_b)
443 #define OP_HTTP_PROXY_HOST(_host) \
444 OP_URL_OPT(OP_HTTP_PROXY_HOST_REQUEST),OP_CHECK_CONST_CHAR_PTR(_host)
456 #define OP_HTTP_PROXY_PORT(_port) \
457 OP_URL_OPT(OP_HTTP_PROXY_PORT_REQUEST),OP_CHECK_INT(_port)
469 #define OP_HTTP_PROXY_USER(_user) \
470 OP_URL_OPT(OP_HTTP_PROXY_USER_REQUEST),OP_CHECK_CONST_CHAR_PTR(_host)
482 #define OP_HTTP_PROXY_PASS(_pass) \
483 OP_URL_OPT(OP_HTTP_PROXY_PASS_REQUEST),OP_CHECK_CONST_CHAR_PTR(_host)
510 typedef int (*
op_read_func)(
void *_stream,
unsigned char *_ptr,
int _nbytes);
521 typedef int (*
op_seek_func)(
void *_stream,opus_int64 _offset,
int _whence);
571 const char *_path,
const char *_mode) OP_ARG_NONNULL(1) OP_ARG_NONNULL(2)
588 int _fd,const
char *_mode) OP_ARG_NONNULL(1) OP_ARG_NONNULL(3);
606 const
char *_path,const
char *_mode,
void *_stream) OP_ARG_NONNULL(1)
607 OP_ARG_NONNULL(2) OP_ARG_NONNULL(3) OP_ARG_NONNULL(4);
620 const
unsigned char *_data,
size_t _size) OP_ARG_NONNULL(1);
641 const
char *_url,va_list _ap) OP_ARG_NONNULL(1) OP_ARG_NONNULL(2);
658 const
char *_url,...) OP_ARG_NONNULL(1) OP_ARG_NONNULL(2);
704 const
unsigned char *_initial_data,
size_t _initial_bytes);
715 OP_WARN_UNUSED_RESULT OggOpusFile *
op_open_file(const
char *_path,
int *_error)
726 OP_WARN_UNUSED_RESULT OggOpusFile *
op_open_memory(const
unsigned char *_data,
727 size_t _size,
int *_error);
750 OP_WARN_UNUSED_RESULT OggOpusFile *
op_vopen_url(const
char *_url,
751 int *_error,va_list _ap) OP_ARG_NONNULL(1);
769 OP_WARN_UNUSED_RESULT OggOpusFile *
op_open_url(const
char *_url,
770 int *_error,...) OP_ARG_NONNULL(1);
847 size_t _initial_bytes,
int *_error) OP_ARG_NONNULL(2);
859 OP_WARN_UNUSED_RESULT OggOpusFile *
op_test_file(const
char *_path,
int *_error)
871 OP_WARN_UNUSED_RESULT OggOpusFile *
op_test_memory(const
unsigned char *_data,
872 size_t _size,
int *_error);
897 OP_WARN_UNUSED_RESULT OggOpusFile *
op_vtest_url(const
char *_url,
898 int *_error,va_list _ap) OP_ARG_NONNULL(1);
916 OP_WARN_UNUSED_RESULT OggOpusFile *
op_test_url(const
char *_url,
917 int *_error,...) OP_ARG_NONNULL(1);
980 size_t _initial_bytes,
int *_error) OP_ARG_NONNULL(2);
1012 void op_free(OggOpusFile *_of);
1049 int op_seekable(OggOpusFile *_of) OP_ARG_NONNULL(1);
1074 opus_uint32
op_serialno(OggOpusFile *_of,
int _li) OP_ARG_NONNULL(1);
1109 opus_int64
op_raw_total(OggOpusFile *_of,
int _li) OP_ARG_NONNULL(1);
1127 ogg_int64_t
op_pcm_total(OggOpusFile *_of,
int _li) OP_ARG_NONNULL(1);
1191 opus_int32
op_bitrate(OggOpusFile *_of,
int _li) OP_ARG_NONNULL(1);
1210 opus_int64
op_raw_tell(OggOpusFile *_of) OP_ARG_NONNULL(1);
1219 ogg_int64_t
op_pcm_tell(OggOpusFile *_of) OP_ARG_NONNULL(1);
1265 int op_raw_seek(OggOpusFile *_of,opus_int64 _byte_offset) OP_ARG_NONNULL(1);
1281 int op_pcm_seek(OggOpusFile *_of,ogg_int64_t _pcm_offset) OP_ARG_NONNULL(1);
1406 OP_WARN_UNUSED_RESULT
int op_read(OggOpusFile *_of,
1407 opus_int16 *_pcm,
int _buf_size,
int *_li) OP_ARG_NONNULL(1);
1488 float *_pcm,
int _buf_size,
int *_li) OP_ARG_NONNULL(1);
1549 opus_int16 *_pcm,
int _buf_size) OP_ARG_NONNULL(1);
1610 float *_pcm,
int _buf_size) OP_ARG_NONNULL(1);
1615 # if OP_GNUC_PREREQ(4,0)
1616 # pragma GCC visibility pop
1619 # if defined(__cplusplus)