You could access this page securely.

API documentation for libmpg123, libout123, and libsyn123

Note: This API doc is automatically generated from the current development version that you can get via Subversion or as a daily snapshot from http://mpg123.org/snapshot. There may be differences (additions) compared to the latest stable release. See NEWS.libmpg123, NEWS.libout123, NEWS.libsyn123, and the overall NEWS file on libmpg123 versions and important changes between them.
Let me emphasize that the policy for the lib*123 family is to always stay backwards compatible -- only additions are planned (and it's not yet planned to change the plans;-).
mpg123.h
Go to the documentation of this file.
1 /*
2  libmpg123: MPEG Audio Decoder library (version 1.26.0)
3 
4  copyright 1995-2015 by the mpg123 project
5  free software under the terms of the LGPL 2.1
6  see COPYING and AUTHORS files in distribution or http://mpg123.org
7 */
8 
9 #ifndef MPG123_LIB_H
10 #define MPG123_LIB_H
11 
12 #include <fmt123.h>
13 
20 #define MPG123_API_VERSION 45
21 
22 #ifndef MPG123_EXPORT
23 
30 #ifdef BUILD_MPG123_DLL
31 /* The dll exports. */
32 #define MPG123_EXPORT __declspec(dllexport)
33 #else
34 #ifdef LINK_MPG123_DLL
35 /* The exe imports. */
36 #define MPG123_EXPORT __declspec(dllimport)
37 #else
38 /* Nothing on normal/UNIX builds */
39 #define MPG123_EXPORT
40 #endif
41 #endif
42 #endif
43 
44 /* This is for Visual Studio, so this header works as distributed in the binary downloads */
45 #if defined(_MSC_VER) && !defined(MPG123_DEF_SSIZE_T)
46 #define MPG123_DEF_SSIZE_T
47 #include <stddef.h>
48 typedef ptrdiff_t ssize_t;
49 #endif
50 
51 #ifndef MPG123_NO_CONFIGURE /* Enable use of this file without configure. */
52 #include <stdlib.h>
53 #include <sys/types.h>
54 
55 /* Simplified large file handling.
56  I used to have a check here that prevents building for a library with conflicting large file setup
57  (application that uses 32 bit offsets with library that uses 64 bits).
58  While that was perfectly fine in an environment where there is one incarnation of the library,
59  it hurt GNU/Linux and Solaris systems with multilib where the distribution fails to provide the
60  correct header matching the 32 bit library (where large files need explicit support) or
61  the 64 bit library (where there is no distinction).
62 
63  New approach: When the app defines _FILE_OFFSET_BITS, it wants non-default large file support,
64  and thus functions with added suffix (mpg123_open_64).
65  Any mismatch will be caught at link time because of the _FILE_OFFSET_BITS setting used when
66  building libmpg123. Plus, there's dual mode large file support in mpg123 since 1.12 now.
67  Link failure is not the expected outcome of any half-sane usage anymore.
68 
69  More complication: What about client code defining _LARGEFILE64_SOURCE? It might want direct access to the _64 functions, along with the ones without suffix. Well, that's possible now via defining MPG123_NO_LARGENAME and MPG123_LARGESUFFIX, respectively, for disabling or enforcing the suffix names.
70 */
71 
72 /*
73  Now, the renaming of large file aware functions.
74  By default, it appends underscore _FILE_OFFSET_BITS (so, mpg123_seek_64 for mpg123_seek), if _FILE_OFFSET_BITS is defined. You can force a different suffix via MPG123_LARGESUFFIX (that must include the underscore), or you can just disable the whole mess by defining MPG123_NO_LARGENAME.
75 */
76 #if (!defined MPG123_NO_LARGENAME) && ((defined _FILE_OFFSET_BITS) || (defined MPG123_LARGESUFFIX))
77 
78 /* Need some trickery to concatenate the value(s) of the given macro(s). */
79 #define MPG123_MACROCAT_REALLY(a, b) a ## b
80 #define MPG123_MACROCAT(a, b) MPG123_MACROCAT_REALLY(a, b)
81 #ifndef MPG123_LARGESUFFIX
82 #define MPG123_LARGESUFFIX MPG123_MACROCAT(_, _FILE_OFFSET_BITS)
83 #endif
84 #define MPG123_LARGENAME(func) MPG123_MACROCAT(func, MPG123_LARGESUFFIX)
85 
86 #define mpg123_open_fixed MPG123_LARGENAME(mpg123_open_fixed)
87 #define mpg123_open MPG123_LARGENAME(mpg123_open)
88 #define mpg123_open_fd MPG123_LARGENAME(mpg123_open_fd)
89 #define mpg123_open_handle MPG123_LARGENAME(mpg123_open_handle)
90 #define mpg123_framebyframe_decode MPG123_LARGENAME(mpg123_framebyframe_decode)
91 #define mpg123_decode_frame MPG123_LARGENAME(mpg123_decode_frame)
92 #define mpg123_tell MPG123_LARGENAME(mpg123_tell)
93 #define mpg123_tellframe MPG123_LARGENAME(mpg123_tellframe)
94 #define mpg123_tell_stream MPG123_LARGENAME(mpg123_tell_stream)
95 #define mpg123_seek MPG123_LARGENAME(mpg123_seek)
96 #define mpg123_feedseek MPG123_LARGENAME(mpg123_feedseek)
97 #define mpg123_seek_frame MPG123_LARGENAME(mpg123_seek_frame)
98 #define mpg123_timeframe MPG123_LARGENAME(mpg123_timeframe)
99 #define mpg123_index MPG123_LARGENAME(mpg123_index)
100 #define mpg123_set_index MPG123_LARGENAME(mpg123_set_index)
101 #define mpg123_position MPG123_LARGENAME(mpg123_position)
102 #define mpg123_length MPG123_LARGENAME(mpg123_length)
103 #define mpg123_framelength MPG123_LARGENAME(mpg123_framelength)
104 #define mpg123_set_filesize MPG123_LARGENAME(mpg123_set_filesize)
105 #define mpg123_replace_reader MPG123_LARGENAME(mpg123_replace_reader)
106 #define mpg123_replace_reader_handle MPG123_LARGENAME(mpg123_replace_reader_handle)
107 #define mpg123_framepos MPG123_LARGENAME(mpg123_framepos)
108 
109 #endif /* largefile hackery */
110 
111 #endif /* MPG123_NO_CONFIGURE */
112 
113 #ifdef __cplusplus
114 extern "C" {
115 #endif
116 
127 struct mpg123_handle_struct;
128 
132 typedef struct mpg123_handle_struct mpg123_handle;
133 
141 MPG123_EXPORT int mpg123_init(void);
142 
148 MPG123_EXPORT void mpg123_exit(void);
149 
158 MPG123_EXPORT mpg123_handle *mpg123_new(const char* decoder, int *error);
159 
164 
170 MPG123_EXPORT void mpg123_free(void *ptr);
171 
174 {
200 };
201 
204 {
211  ,MPG123_QUIET = 0x20
212  ,MPG123_GAPLESS = 0x40
215  ,MPG123_FUZZY = 0x200
219  ,MPG123_SKIP_ID3V2 = 0x2000
222  ,MPG123_PICTURE = 0x10000
223  ,MPG123_NO_PEEK_END = 0x20000
231  ,MPG123_FORCE_ENDIAN = 0x100000
237  ,MPG123_BIG_ENDIAN = 0x200000
238  ,MPG123_NO_READAHEAD = 0x400000
261 };
262 
265 {
270 };
271 
281 , enum mpg123_parms type, long value, double fvalue );
282 
292 , enum mpg123_parms type, long *value, double *fvalue );
293 
296 {
315 };
316 
322 
332 MPG123_EXPORT int mpg123_feature2(int key);
333 
334 /* @} */
335 
336 
370 {
419 };
420 
425 MPG123_EXPORT const char* mpg123_plain_strerror(int errcode);
426 
435 
441 
456 MPG123_EXPORT const char **mpg123_decoders(void);
457 
461 MPG123_EXPORT const char **mpg123_supported_decoders(void);
462 
468 MPG123_EXPORT int mpg123_decoder(mpg123_handle *mh, const char* decoder_name);
469 
480 
508 {
511 };
512 
520 MPG123_EXPORT void mpg123_rates(const long **list, size_t *number);
521 
526 MPG123_EXPORT void mpg123_encodings(const int **list, size_t *number);
527 
531 MPG123_EXPORT int mpg123_encsize(int encoding);
532 
539 
546 
554 , long rate, int channels, int encodings );
555 
567 , long rate, int channels, int encodings );
568 
577 , long rate, int encoding );
578 
591 , long *rate, int *channels, int *encoding );
592 
605 , long *rate, int *channels, int *encoding, int clear_flag );
606 
660 MPG123_EXPORT int mpg123_open_fixed(mpg123_handle *mh, const char *path
661 , int channels, int encoding);
662 
670 MPG123_EXPORT int mpg123_open(mpg123_handle *mh, const char *path);
671 
679 
687 MPG123_EXPORT int mpg123_open_handle(mpg123_handle *mh, void *iohandle);
688 
697 
703 
716 , void *outmemory, size_t outmemsize, size_t *done );
717 
726 , const unsigned char *in, size_t size );
727 
748 , const unsigned char *inmemory, size_t inmemsize
749 , void *outmemory, size_t outmemsize, size_t *done );
750 
760 , off_t *num, unsigned char **audio, size_t *bytes );
761 
772 , off_t *num, unsigned char **audio, size_t *bytes );
773 
781 
798 , unsigned long *header, unsigned char **bodydata, size_t *bodybytes );
799 
808 
838 
844 
850 
859 , off_t sampleoff, int whence );
860 
870 , off_t sampleoff, int whence, off_t *input_offset );
871 
879 , off_t frameoff, int whence );
880 
884 MPG123_EXPORT off_t mpg123_timeframe(mpg123_handle *mh, double sec);
885 
896 , off_t **offsets, off_t *step, size_t *fill );
897 
908 , off_t *offsets, off_t step, size_t fill );
909 
917 MPG123_EXPORT int mpg123_position( mpg123_handle *mh, off_t frame_offset, off_t buffered_bytes, off_t *current_frame, off_t *frames_left, double *current_seconds, double *seconds_left);
918 
929 {
932  ,MPG123_LR=0x3
933 };
934 
943 , enum mpg123_channels channel, int band, double val );
944 
951  , enum mpg123_channels channel, int band);
952 
958 
965 MPG123_EXPORT int mpg123_volume(mpg123_handle *mh, double vol);
966 
972 MPG123_EXPORT int mpg123_volume_change(mpg123_handle *mh, double change);
973 
984 MPG123_EXPORT int mpg123_getvolume(mpg123_handle *mh, double *base, double *really, double *rva_db);
985 
986 /* TODO: Set some preamp in addition / to replace internal RVA handling? */
987 
1001 };
1002 
1008 };
1009 
1010 
1018 };
1019 
1020 
1027 };
1028 
1031 {
1033  int layer;
1034  long rate;
1036  int mode_ext;
1039  int emphasis;
1040  int bitrate;
1041  int abr_rate;
1043 };
1044 
1051 {
1052  double xr[2][2][576];
1053  double sfb[2][2][22]; /* [2][2][SBMAX_l] */
1054  double sfb_s[2][2][3*13]; /* [2][2][3*SBMAX_s] */
1055  int qss[2][2];
1056  int big_values[2][2];
1057  int sub_gain[2][2][3];
1058  int scalefac_scale[2][2];
1059  int preflag[2][2];
1060  int blocktype[2][2];
1061  int mixed[2][2];
1062  int mainbits[2][2];
1063  int sfbits[2][2];
1064  int scfsi[2];
1065  int maindata;
1066  int padding;
1067 };
1068 
1075 
1083 , struct mpg123_moreinfo *mi );
1084 
1089 MPG123_EXPORT size_t mpg123_safe_buffer(void);
1090 
1099 
1106 
1120 
1127 MPG123_EXPORT int mpg123_set_filesize(mpg123_handle *mh, off_t size);
1128 
1134 
1140 
1146 
1147 
1150 {
1158 };
1159 
1168 , enum mpg123_state key, long *val, double *fval );
1169 
1183 typedef struct
1184 {
1185  char* p;
1186  size_t size;
1187  size_t fill;
1188 } mpg123_string;
1189 
1194 
1199 
1206 
1213 
1219 MPG123_EXPORT int mpg123_resize_string(mpg123_string* sb, size_t news);
1220 
1230 MPG123_EXPORT int mpg123_grow_string(mpg123_string* sb, size_t news);
1231 
1239 
1253 
1259 MPG123_EXPORT int mpg123_add_string(mpg123_string* sb, const char* stuff);
1260 
1269 , const char *stuff, size_t from, size_t count );
1270 
1276 MPG123_EXPORT int mpg123_set_string(mpg123_string* sb, const char* stuff);
1277 
1286 , const char *stuff, size_t from, size_t count );
1287 
1296 MPG123_EXPORT size_t mpg123_strlen(mpg123_string *sb, int utf8);
1297 
1303 
1312 
1315 {
1331 };
1332 
1335 {
1341 };
1342 
1348 MPG123_EXPORT enum mpg123_text_encoding mpg123_enc_from_id3(unsigned char id3_enc_byte);
1349 
1359 MPG123_EXPORT int mpg123_store_utf8(mpg123_string *sb, enum mpg123_text_encoding enc, const unsigned char *source, size_t source_size);
1360 
1367 typedef struct
1368 {
1369  char lang[3];
1370  char id[4];
1373 } mpg123_text;
1374 
1377 {
1399 };
1400 
1405 typedef struct
1406 {
1407  char type;
1410  size_t size;
1411  unsigned char* data;
1412 } mpg123_picture;
1413 
1419 typedef struct
1420 {
1421  unsigned char version;
1428  /* Encountered ID3v2 fields are appended to these lists.
1429  There can be multiple occurences, the pointers above always point to the last encountered data. */
1431  size_t comments;
1433  size_t texts;
1435  size_t extras;
1438  size_t pictures;
1439 } mpg123_id3v2;
1440 
1445 typedef struct
1446 {
1447  char tag[3];
1448  char title[30];
1449  char artist[30];
1450  char album[30];
1451  char year[4];
1452  char comment[30];
1453  unsigned char genre;
1454 } mpg123_id3v1;
1455 
1456 #define MPG123_ID3 0x3
1457 #define MPG123_NEW_ID3 0x1
1458 #define MPG123_ICY 0xc
1459 #define MPG123_NEW_ICY 0x4
1465 MPG123_EXPORT int mpg123_meta_check(mpg123_handle *mh);
1466 
1471 
1477 , mpg123_id3v1 **v1, mpg123_id3v2 **v2 );
1478 
1491 , unsigned char **v1, size_t *v1_size
1492 , unsigned char **v2, size_t *v2_size );
1493 
1499 MPG123_EXPORT int mpg123_icy(mpg123_handle *mh, char **icy_meta);
1500 
1505 MPG123_EXPORT char* mpg123_icy2utf8(const char* icy_text);
1506 
1507 
1508 /* @} */
1509 
1510 
1527 struct mpg123_pars_struct;
1528 
1530 typedef struct mpg123_pars_struct mpg123_pars;
1531 
1539 , const char* decoder, int *error );
1540 
1546 
1551 
1558 
1565 
1576 , long rate, int channels, int encodings);
1577 
1589 , long rate, int channels, int encodings);
1590 
1598 MPG123_EXPORT int mpg123_fmt_support(mpg123_pars *mp, long rate, int encoding);
1599 
1609 , enum mpg123_parms type, long value, double fvalue );
1610 
1620 , enum mpg123_parms type, long *value, double *fvalue);
1621 
1622 /* @} */
1623 
1624 
1645 , void *data, size_t size);
1646 
1653 
1668 , ssize_t (*r_read) (int, void *, size_t)
1669 , off_t (*r_lseek)(int, off_t, int)
1670 );
1671 
1687 , ssize_t (*r_read) (void *, void *, size_t)
1688 , off_t (*r_lseek)(void *, off_t, int)
1689 , void (*cleanup)(void*) );
1690 
1691 /* @} */
1692 
1693 #ifdef __cplusplus
1694 }
1695 #endif
1696 
1697 #endif
MPG123_EXPORT int mpg123_open_handle(mpg123_handle *mh, void *iohandle)
struct mpg123_handle_struct mpg123_handle
Definition: mpg123.h:132
MPG123_EXPORT int mpg123_par(mpg123_pars *mp, enum mpg123_parms type, long value, double fvalue)
MPG123_EXPORT int mpg123_framebyframe_next(mpg123_handle *mh)
size_t fill
Definition: mpg123.h:1187
MPG123_EXPORT int mpg123_format2(mpg123_handle *mh, long rate, int channels, int encodings)
MPG123_EXPORT mpg123_handle * mpg123_parnew(mpg123_pars *mp, const char *decoder, int *error)
MPG123_EXPORT size_t mpg123_strlen(mpg123_string *sb, int utf8)
MPG123_EXPORT off_t mpg123_length(mpg123_handle *mh)
size_t texts
Definition: mpg123.h:1433
MPG123_EXPORT int mpg123_info(mpg123_handle *mh, struct mpg123_frameinfo *mi)
MPG123_EXPORT off_t mpg123_tell(mpg123_handle *mh)
MPG123_EXPORT void mpg123_encodings(const int **list, size_t *number)
MPG123_EXPORT off_t mpg123_seek(mpg123_handle *mh, off_t sampleoff, int whence)
MPG123_EXPORT int mpg123_move_string(mpg123_string *from, mpg123_string *to)
mpg123_errors
Definition: mpg123.h:369
mpg123_string * comment
Definition: mpg123.h:1427
MPG123_EXPORT off_t mpg123_seek_frame(mpg123_handle *mh, off_t frameoff, int whence)
MPG123_EXPORT void mpg123_rates(const long **list, size_t *number)
MPG123_EXPORT size_t mpg123_safe_buffer(void)
MPG123_EXPORT int mpg123_errcode(mpg123_handle *mh)
unsigned char genre
Definition: mpg123.h:1453
MPG123_EXPORT int mpg123_framebyframe_decode(mpg123_handle *mh, off_t *num, unsigned char **audio, size_t *bytes)
MPG123_EXPORT void mpg123_exit(void)
MPG123_EXPORT int mpg123_add_string(mpg123_string *sb, const char *stuff)
MPG123_EXPORT int mpg123_spf(mpg123_handle *mh)
MPG123_EXPORT off_t mpg123_framepos(mpg123_handle *mh)
MPG123_EXPORT size_t mpg123_outblock(mpg123_handle *mh)
MPG123_EXPORT int mpg123_getparam(mpg123_handle *mh, enum mpg123_parms type, long *value, double *fvalue)
mpg123_text_encoding
Definition: mpg123.h:1314
enum mpg123_flags flags
Definition: mpg123.h:1038
mpg123_picture * picture
Definition: mpg123.h:1436
size_t size
Definition: mpg123.h:1186
MPG123_EXPORT int mpg123_chomp_string(mpg123_string *sb)
MPG123_EXPORT int mpg123_id3(mpg123_handle *mh, mpg123_id3v1 **v1, mpg123_id3v2 **v2)
size_t extras
Definition: mpg123.h:1435
MPG123_EXPORT int mpg123_id3_raw(mpg123_handle *mh, unsigned char **v1, size_t *v1_size, unsigned char **v2, size_t *v2_size)
MPG123_EXPORT int mpg123_fmt2(mpg123_pars *mp, long rate, int channels, int encodings)
mpg123_id3_enc
Definition: mpg123.h:1334
mpg123_string * artist
Definition: mpg123.h:1423
MPG123_EXPORT int mpg123_set_index(mpg123_handle *mh, off_t *offsets, off_t step, size_t fill)
MPG123_EXPORT void mpg123_delete_pars(mpg123_pars *mp)
mpg123_string * genre
Definition: mpg123.h:1426
MPG123_EXPORT int mpg123_framedata(mpg123_handle *mh, unsigned long *header, unsigned char **bodydata, size_t *bodybytes)
MPG123_EXPORT void mpg123_init_string(mpg123_string *sb)
MPG123_EXPORT off_t mpg123_timeframe(mpg123_handle *mh, double sec)
MPG123_EXPORT const char * mpg123_strerror(mpg123_handle *mh)
size_t comments
Definition: mpg123.h:1431
MPG123_EXPORT int mpg123_close(mpg123_handle *mh)
struct mpg123_pars_struct mpg123_pars
Definition: mpg123.h:1530
MPG123_EXPORT int mpg123_decode(mpg123_handle *mh, const unsigned char *inmemory, size_t inmemsize, void *outmemory, size_t outmemsize, size_t *done)
mpg123_string text
Definition: mpg123.h:1372
MPG123_EXPORT int mpg123_feed(mpg123_handle *mh, const unsigned char *in, size_t size)
MPG123_EXPORT int mpg123_replace_buffer(mpg123_handle *mh, void *data, size_t size)
MPG123_EXPORT const char * mpg123_plain_strerror(int errcode)
MPG123_EXPORT int mpg123_fmt(mpg123_pars *mp, long rate, int channels, int encodings)
MPG123_EXPORT const char * mpg123_current_decoder(mpg123_handle *mh)
MPG123_EXPORT char * mpg123_icy2utf8(const char *icy_text)
MPG123_EXPORT int mpg123_index(mpg123_handle *mh, off_t **offsets, off_t *step, size_t *fill)
mpg123_text * extra
Definition: mpg123.h:1434
MPG123_EXPORT int mpg123_resize_string(mpg123_string *sb, size_t news)
MPG123_EXPORT int mpg123_open_fixed(mpg123_handle *mh, const char *path, int channels, int encoding)
mpg123_state
Definition: mpg123.h:1149
MPG123_EXPORT int mpg123_fmt_support(mpg123_pars *mp, long rate, int encoding)
MPG123_EXPORT const char ** mpg123_decoders(void)
MPG123_EXPORT int mpg123_init(void)
MPG123_EXPORT off_t mpg123_tellframe(mpg123_handle *mh)
MPG123_EXPORT int mpg123_feature2(int key)
unsigned char * data
Definition: mpg123.h:1411
char * p
Definition: mpg123.h:1185
MPG123_EXPORT mpg123_pars * mpg123_new_pars(int *error)
MPG123_EXPORT enum mpg123_text_encoding mpg123_enc_from_id3(unsigned char id3_enc_byte)
MPG123_EXPORT int mpg123_volume(mpg123_handle *mh, double vol)
mpg123_param_rva
Definition: mpg123.h:264
MPG123_EXPORT int mpg123_getformat2(mpg123_handle *mh, long *rate, int *channels, int *encoding, int clear_flag)
mpg123_parms
Definition: mpg123.h:173
mpg123_id3_pic_type
Definition: mpg123.h:1376
enum mpg123_version version
Definition: mpg123.h:1032
mpg123_text * text
Definition: mpg123.h:1432
MPG123_EXPORT int mpg123_store_utf8(mpg123_string *sb, enum mpg123_text_encoding enc, const unsigned char *source, size_t source_size)
MPG123_EXPORT int mpg123_add_substring(mpg123_string *sb, const char *stuff, size_t from, size_t count)
MPG123_EXPORT int mpg123_format(mpg123_handle *mh, long rate, int channels, int encodings)
MPG123_EXPORT double mpg123_geteq(mpg123_handle *mh, enum mpg123_channels channel, int band)
MPG123_EXPORT int mpg123_open_feed(mpg123_handle *mh)
mpg123_string * album
Definition: mpg123.h:1424
size_t pictures
Definition: mpg123.h:1438
mpg123_string mime_type
Definition: mpg123.h:1409
MPG123_EXPORT void mpg123_delete(mpg123_handle *mh)
MPG123_EXPORT int mpg123_grow_string(mpg123_string *sb, size_t news)
MPG123_EXPORT int mpg123_volume_change(mpg123_handle *mh, double change)
mpg123_mode
Definition: mpg123.h:1013
mpg123_channelcount
Definition: mpg123.h:507
MPG123_EXPORT int mpg123_param(mpg123_handle *mh, enum mpg123_parms type, long value, double fvalue)
mpg123_text * comment_list
Definition: mpg123.h:1430
MPG123_EXPORT int mpg123_read(mpg123_handle *mh, void *outmemory, size_t outmemsize, size_t *done)
mpg123_string description
Definition: mpg123.h:1371
MPG123_EXPORT void mpg123_free_string(mpg123_string *sb)
MPG123_EXPORT int mpg123_format_none(mpg123_handle *mh)
MPG123_EXPORT void mpg123_free(void *ptr)
MPG123_EXPORT int mpg123_position(mpg123_handle *mh, off_t frame_offset, off_t buffered_bytes, off_t *current_frame, off_t *frames_left, double *current_seconds, double *seconds_left)
MPG123_EXPORT off_t mpg123_tell_stream(mpg123_handle *mh)
MPG123_EXPORT const char ** mpg123_supported_decoders(void)
MPG123_EXPORT int mpg123_replace_reader_handle(mpg123_handle *mh, ssize_t(*r_read)(void *, void *, size_t), off_t(*r_lseek)(void *, off_t, int), void(*cleanup)(void *))
MPG123_EXPORT int mpg123_set_substring(mpg123_string *sb, const char *stuff, size_t from, size_t count)
MPG123_EXPORT int mpg123_set_moreinfo(mpg123_handle *mh, struct mpg123_moreinfo *mi)
MPG123_EXPORT int mpg123_same_string(mpg123_string *a, mpg123_string *b)
MPG123_EXPORT int mpg123_fmt_none(mpg123_pars *mp)
MPG123_EXPORT int mpg123_open_fd(mpg123_handle *mh, int fd)
MPG123_EXPORT int mpg123_set_string(mpg123_string *sb, const char *stuff)
MPG123_EXPORT int mpg123_getpar(mpg123_pars *mp, enum mpg123_parms type, long *value, double *fvalue)
#define MPG123_EXPORT
Definition: mpg123.h:39
mpg123_string * year
Definition: mpg123.h:1425
MPG123_EXPORT double mpg123_tpf(mpg123_handle *mh)
MPG123_EXPORT int mpg123_getvolume(mpg123_handle *mh, double *base, double *really, double *rva_db)
MPG123_EXPORT mpg123_handle * mpg123_new(const char *decoder, int *error)
MPG123_EXPORT int mpg123_decoder(mpg123_handle *mh, const char *decoder_name)
mpg123_flags
Definition: mpg123.h:1022
MPG123_EXPORT int mpg123_format_all(mpg123_handle *mh)
MPG123_EXPORT int mpg123_getstate(mpg123_handle *mh, enum mpg123_state key, long *val, double *fval)
MPG123_EXPORT int mpg123_reset_eq(mpg123_handle *mh)
mpg123_param_flags
Definition: mpg123.h:203
MPG123_EXPORT long mpg123_clip(mpg123_handle *mh)
MPG123_EXPORT int mpg123_scan(mpg123_handle *mh)
MPG123_EXPORT int mpg123_open(mpg123_handle *mh, const char *path)
MPG123_EXPORT int mpg123_copy_string(mpg123_string *from, mpg123_string *to)
MPG123_EXPORT int mpg123_decode_frame(mpg123_handle *mh, off_t *num, unsigned char **audio, size_t *bytes)
MPG123_EXPORT int mpg123_format_support(mpg123_handle *mh, long rate, int encoding)
MPG123_EXPORT int mpg123_fmt_all(mpg123_pars *mp)
MPG123_EXPORT int mpg123_icy(mpg123_handle *mh, char **icy_meta)
MPG123_EXPORT int mpg123_encsize(int encoding)
MPG123_EXPORT off_t mpg123_framelength(mpg123_handle *mh)
enum mpg123_mode mode
Definition: mpg123.h:1035
MPG123_EXPORT int mpg123_replace_reader(mpg123_handle *mh, ssize_t(*r_read)(int, void *, size_t), off_t(*r_lseek)(int, off_t, int))
size_t size
Definition: mpg123.h:1410
MPG123_EXPORT int mpg123_eq(mpg123_handle *mh, enum mpg123_channels channel, int band, double val)
MPG123_EXPORT int mpg123_set_filesize(mpg123_handle *mh, off_t size)
MPG123_EXPORT int mpg123_getformat(mpg123_handle *mh, long *rate, int *channels, int *encoding)
MPG123_EXPORT mpg123_string * mpg123_new_string(const char *val)
MPG123_EXPORT void mpg123_meta_free(mpg123_handle *mh)
mpg123_string description
Definition: mpg123.h:1408
enum mpg123_vbr vbr
Definition: mpg123.h:1042
MPG123_EXPORT int mpg123_feature(const enum mpg123_feature_set key)
mpg123_string * title
Definition: mpg123.h:1422
mpg123_feature_set
Definition: mpg123.h:295
MPG123_EXPORT off_t mpg123_feedseek(mpg123_handle *mh, off_t sampleoff, int whence, off_t *input_offset)
mpg123_version
Definition: mpg123.h:1004
mpg123_vbr
Definition: mpg123.h:997
unsigned char version
Definition: mpg123.h:1421
MPG123_EXPORT void mpg123_delete_string(mpg123_string *sb)
mpg123_channels
Definition: mpg123.h:928
Hopefully valid HTML! Valid CSS!