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
3 
4  copyright 1995-2023 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 48
22 #define MPG123_PATCHLEVEL 3
23 
24 #ifndef MPG123_EXPORT
32 #ifdef BUILD_MPG123_DLL
33 /* The dll exports. */
34 #define MPG123_EXPORT __declspec(dllexport)
35 #else
36 #ifdef LINK_MPG123_DLL
37 /* The exe imports. */
38 #define MPG123_EXPORT __declspec(dllimport)
39 #else
40 /* Nothing on normal/UNIX builds */
41 #define MPG123_EXPORT
42 #endif
43 #endif
44 #endif
45 
57 #ifndef MPG123_ENUM_API
58 
59 #define mpg123_param mpg123_param2
60 #define mpg123_getparam mpg123_getparam2
61 #define mpg123_feature mpg123_feature2
62 #define mpg123_eq mpg123_eq2
63 #define mpg123_geteq mpg123_geteq2
64 #define mpg123_frameinfo mpg123_frameinfo2
65 #define mpg123_info mpg123_info2
66 #define mpg123_getstate mpg123_getstate2
67 #define mpg123_enc_from_id3 mpg123_enc_from_id3_2
68 #define mpg123_store_utf8 mpg123_store_utf8_2
69 #define mpg123_par mpg123_par2
70 #define mpg123_getpar mpg123_getpar2
71 
72 #endif
73 
74 #include <stddef.h>
75 #include <stdint.h>
76 
77 #ifndef MPG123_PORTABLE_API
78 #include <sys/types.h>
79 /* A little hack to help MSVC not having ssize_t. */
80 #ifdef _MSC_VER
81 typedef ptrdiff_t mpg123_ssize_t;
82 #else
83 typedef ssize_t mpg123_ssize_t;
84 #endif
85 #endif
86 
87 
88 /* Handling of large file offsets.
89  When client code defines _FILE_OFFSET_BITS, it wants non-default large file support,
90  and thus functions with added suffix (mpg123_open_64). The default library build provides
91  wrapper and alias functions to accomodate client code variations (dual-mode library like glibc).
92 
93  Client code can definie MPG123_NO_LARGENAME and MPG123_LARGESUFFIX, respectively, for disabling
94  or enforcing the suffixes. If explicit usage of 64 bit offsets is desired, the int64_t API
95  (functions with 64 suffix without underscore, notablly mpg123_reader64()) can be used since
96  API version 48 (mpg123 1.32).
97 
98  When in doubt, use the explicit 64 bit functions and avoid off_t in the API. You can define
99  MPG123_PORTABLE_API to ensure that. That being said, if you and your compiler do not have
100  problems with the concept of off_t, just use the normal API and be happy. Both 32 and 64
101  bit versions will be present where appropriate.
102 */
103 
104 #ifndef MPG123_PORTABLE_API
105 /*
106  Now, the renaming of large file aware functions.
107  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.
108 */
109 #if (!defined MPG123_NO_LARGENAME) && ((defined _FILE_OFFSET_BITS) || (defined MPG123_LARGESUFFIX))
110 
111 /* Need some trickery to concatenate the value(s) of the given macro(s). */
112 #define MPG123_MACROCAT_REALLY(a, b) a ## b
113 #define MPG123_MACROCAT(a, b) MPG123_MACROCAT_REALLY(a, b)
114 #ifndef MPG123_LARGESUFFIX
115 #define MPG123_LARGESUFFIX MPG123_MACROCAT(_, _FILE_OFFSET_BITS)
116 #endif
117 #define MPG123_LARGENAME(func) MPG123_MACROCAT(func, MPG123_LARGESUFFIX)
118 
119 #define mpg123_open_fixed MPG123_LARGENAME(mpg123_open_fixed)
120 #define mpg123_open MPG123_LARGENAME(mpg123_open)
121 #define mpg123_open_fd MPG123_LARGENAME(mpg123_open_fd)
122 #define mpg123_open_handle MPG123_LARGENAME(mpg123_open_handle)
123 #define mpg123_framebyframe_decode MPG123_LARGENAME(mpg123_framebyframe_decode)
124 #define mpg123_decode_frame MPG123_LARGENAME(mpg123_decode_frame)
125 #define mpg123_tell MPG123_LARGENAME(mpg123_tell)
126 #define mpg123_tellframe MPG123_LARGENAME(mpg123_tellframe)
127 #define mpg123_tell_stream MPG123_LARGENAME(mpg123_tell_stream)
128 #define mpg123_seek MPG123_LARGENAME(mpg123_seek)
129 #define mpg123_feedseek MPG123_LARGENAME(mpg123_feedseek)
130 #define mpg123_seek_frame MPG123_LARGENAME(mpg123_seek_frame)
131 #define mpg123_timeframe MPG123_LARGENAME(mpg123_timeframe)
132 #define mpg123_index MPG123_LARGENAME(mpg123_index)
133 #define mpg123_set_index MPG123_LARGENAME(mpg123_set_index)
134 #define mpg123_position MPG123_LARGENAME(mpg123_position)
135 #define mpg123_length MPG123_LARGENAME(mpg123_length)
136 #define mpg123_framelength MPG123_LARGENAME(mpg123_framelength)
137 #define mpg123_set_filesize MPG123_LARGENAME(mpg123_set_filesize)
138 #define mpg123_replace_reader MPG123_LARGENAME(mpg123_replace_reader)
139 #define mpg123_replace_reader_handle MPG123_LARGENAME(mpg123_replace_reader_handle)
140 #define mpg123_framepos MPG123_LARGENAME(mpg123_framepos)
141 
142 #endif /* largefile hackery */
143 #endif
144 
145 #ifdef __cplusplus
146 extern "C" {
147 #endif
148 
159 struct mpg123_handle_struct;
160 
164 typedef struct mpg123_handle_struct mpg123_handle;
165 
173 const char *mpg123_distversion(unsigned int *major, unsigned int *minor, unsigned int *patch);
174 
179 unsigned int mpg123_libversion(unsigned int *patch);
180 
195 
202 
211 MPG123_EXPORT mpg123_handle *mpg123_new(const char* decoder, int *error);
212 
217 
223 MPG123_EXPORT void mpg123_free(void *ptr);
224 
227 {
253 };
254 
257 {
258  MPG123_FORCE_MONO = 0x7
264  ,MPG123_QUIET = 0x20
265  ,MPG123_GAPLESS = 0x40
268  ,MPG123_FUZZY = 0x200
272  ,MPG123_SKIP_ID3V2 = 0x2000
275  ,MPG123_PICTURE = 0x10000
276  ,MPG123_NO_PEEK_END = 0x20000
284  ,MPG123_FORCE_ENDIAN = 0x100000
290  ,MPG123_BIG_ENDIAN = 0x200000
291  ,MPG123_NO_READAHEAD = 0x400000
314 };
315 
318 {
319  MPG123_RVA_OFF = 0
323 };
324 
325 #ifdef MPG123_ENUM_API
338 , enum mpg123_parms type, long value, double fvalue );
339 #endif
340 
353 , int type, long value, double fvalue );
354 
355 #ifdef MPG123_ENUM_API
368 , enum mpg123_parms type, long *value, double *fvalue );
369 #endif
370 
383 , int type, long *value, double *fvalue );
384 
387 {
406 };
407 
408 #ifdef MPG123_ENUM_API
418 #endif
419 
429 
466 {
516 };
517 
522 MPG123_EXPORT const char* mpg123_plain_strerror(int errcode);
523 
532 
538 
553 MPG123_EXPORT const char **mpg123_decoders(void);
554 
563 
569 MPG123_EXPORT int mpg123_decoder(mpg123_handle *mh, const char* decoder_name);
570 
581 
609 {
610  MPG123_MONO = 1
612 };
613 
621 MPG123_EXPORT void mpg123_rates(const long **list, size_t *number);
622 
627 MPG123_EXPORT void mpg123_encodings(const int **list, size_t *number);
628 
632 MPG123_EXPORT int mpg123_encsize(int encoding);
633 
640 
647 
655 , long rate, int channels, int encodings );
656 
668 , long rate, int channels, int encodings );
669 
678 , long rate, int encoding );
679 
692 , long *rate, int *channels, int *encoding );
693 
706 , long *rate, int *channels, int *encoding, int clear_flag );
707 
718 #ifndef MPG123_PORTABLE_API
763 , int channels, int encoding);
764 
780 MPG123_EXPORT int mpg123_open(mpg123_handle *mh, const char *path);
781 
789 #endif
790 
800 
809 
815 
828 , void *outmemory, size_t outmemsize, size_t *done );
829 
838 , const unsigned char *in, size_t size );
839 
860 , const unsigned char *inmemory, size_t inmemsize
861 , void *outmemory, size_t outmemsize, size_t *done );
862 
863 #ifndef MPG123_PORTABLE_API
873 , off_t *num, unsigned char **audio, size_t *bytes );
874 
885 , off_t *num, unsigned char **audio, size_t *bytes );
886 #endif /* un-portable API */
887 
897 , int64_t *num, unsigned char **audio, size_t *bytes );
898 
909 , int64_t *num, unsigned char **audio, size_t *bytes );
910 
918 
935 , unsigned long *header, unsigned char **bodydata, size_t *bodybytes );
936 
937 #ifndef MPG123_PORTABLE_API
946 #endif
947 
956 
1008 #ifndef MPG123_PORTABLE_API
1015 #endif
1016 
1023 
1024 #ifndef MPG123_PORTABLE_API
1030 #endif
1031 
1037 
1038 #ifndef MPG123_PORTABLE_API
1044 #endif
1045 
1051 
1052 
1053 #ifndef MPG123_PORTABLE_API
1064 , off_t sampleoff, int whence );
1065 #endif
1066 
1076 , int64_t sampleoff, int whence );
1077 
1078 #ifndef MPG123_PORTABLE_API
1092 , off_t sampleoff, int whence, off_t *input_offset );
1093 #endif
1094 
1107 , int64_t sampleoff, int whence, int64_t *input_offset );
1108 
1109 #ifndef MPG123_PORTABLE_API
1119 , off_t frameoff, int whence );
1120 #endif
1121 
1130 , int64_t frameoff, int whence );
1131 
1132 #ifndef MPG123_PORTABLE_API
1137 
1150 , off_t **offsets, off_t *step, size_t *fill );
1151 #endif
1152 
1157 
1168 , int64_t **offsets, int64_t *step, size_t *fill );
1169 
1170 #ifndef MPG123_PORTABLE_API
1183 , off_t *offsets, off_t step, size_t fill );
1184 #endif
1185 
1196 , int64_t *offsets, int64_t step, size_t fill );
1197 
1198 
1199 #ifndef MPG123_PORTABLE_API
1207 MPG123_EXPORT int mpg123_position( mpg123_handle *mh, off_t INT123_frame_offset, off_t buffered_bytes, off_t *current_frame, off_t *frames_left, double *current_seconds, double *seconds_left);
1208 #endif
1209 
1220 {
1221  MPG123_LEFT=0x1
1224 };
1225 
1226 #ifdef MPG123_ENUM_API
1240 , enum mpg123_channels channel, int band, double val );
1241 #endif
1242 
1256 , int channel, int band, double val );
1257 
1267 , int channel, int a, int b, double factor );
1268 
1278 , int channel, int a, int b, double db );
1279 
1280 #ifdef MPG123_ENUM_API
1292  , enum mpg123_channels channel, int band);
1293 #endif
1294 
1305 MPG123_EXPORT double mpg123_geteq2(mpg123_handle *mh, int channel, int band);
1306 
1312 
1320 
1327 
1334 
1345 MPG123_EXPORT int mpg123_getvolume(mpg123_handle *mh, double *base, double *really, double *rva_db);
1346 
1347 /* TODO: Set some preamp in addition / to replace internal RVA handling? */
1348 
1361  MPG123_ABR
1362 };
1363 
1368  MPG123_2_5
1369 };
1370 
1371 
1378  MPG123_M_MONO
1379 };
1380 
1381 
1387  MPG123_ORIGINAL=0x8
1388 };
1389 
1390 #ifdef MPG123_ENUM_API
1393 {
1394  enum mpg123_version version;
1395  int layer;
1396  long rate;
1397  enum mpg123_mode mode;
1398  int mode_ext;
1400  enum mpg123_flags flags;
1401  int emphasis;
1402  int bitrate;
1403  int abr_rate;
1404  enum mpg123_vbr vbr;
1405 };
1406 #endif
1407 
1410 {
1411  int version;
1412  int layer;
1413  long rate;
1414  int mode;
1415  int mode_ext;
1417  int flags;
1418  int emphasis;
1419  int bitrate;
1420  int abr_rate;
1421  int vbr;
1422 };
1423 
1430 {
1431  double xr[2][2][576];
1432  double sfb[2][2][22];
1433  double sfb_s[2][2][3*13];
1434  int qss[2][2];
1435  int big_values[2][2];
1436  int sub_gain[2][2][3];
1437  int scalefac_scale[2][2];
1438  int preflag[2][2];
1439  int blocktype[2][2];
1440  int mixed[2][2];
1441  int mainbits[2][2];
1442  int sfbits[2][2];
1443  int scfsi[2];
1444  int maindata;
1445  int padding;
1446 };
1447 
1448 #ifdef MPG123_ENUM_API
1460 #endif
1461 
1473 
1481 , struct mpg123_moreinfo *mi );
1482 
1488 
1497 
1498 #ifndef MPG123_PORTABLE_API
1505 
1519 
1527 #endif
1528 
1535 
1549 
1557 
1563 
1569 
1575 
1576 
1579 {
1580  MPG123_ACCURATE = 1
1587 };
1588 
1589 #ifdef MPG123_ENUM_API
1602 , enum mpg123_state key, long *val, double *fval );
1603 #endif
1604 
1617 , int key, long *val, double *fval );
1618 
1632 typedef struct
1633 {
1634  char* p;
1635  size_t size;
1636  size_t fill;
1637 } mpg123_string;
1638 
1643 
1648 
1655 
1662 
1669 
1680 
1688 
1702 
1708 MPG123_EXPORT int mpg123_add_string(mpg123_string* sb, const char* stuff);
1709 
1718 , const char *stuff, size_t from, size_t count );
1719 
1725 MPG123_EXPORT int mpg123_set_string(mpg123_string* sb, const char* stuff);
1726 
1735 , const char *stuff, size_t from, size_t count );
1736 
1746 
1752 
1761 
1764 {
1765  mpg123_text_unknown = 0
1780 };
1781 
1784 {
1785  mpg123_id3_latin1 = 0
1790 };
1791 
1792 #ifdef MPG123_ENUM_API
1801 MPG123_EXPORT enum mpg123_text_encoding mpg123_enc_from_id3(unsigned char id3_enc_byte);
1802 #endif
1803 
1812 MPG123_EXPORT int mpg123_enc_from_id3_2(unsigned char id3_enc_byte);
1813 
1814 #ifdef MPG123_ENUM_API
1828 MPG123_EXPORT int mpg123_store_utf8(mpg123_string *sb, enum mpg123_text_encoding enc, const unsigned char *source, size_t source_size);
1829 #endif
1830 
1845 , int enc, const unsigned char *source, size_t source_size);
1846 
1853 typedef struct
1854 {
1855  char lang[3];
1856  char id[4];
1859 } mpg123_text;
1860 
1863 {
1885 };
1886 
1891 typedef struct
1892 {
1893  char type;
1896  size_t size;
1897  unsigned char* data;
1898 } mpg123_picture;
1899 
1905 typedef struct
1906 {
1907  unsigned char version;
1914  /* Encountered ID3v2 fields are appended to these lists.
1915  There can be multiple occurences, the pointers above always point to the last encountered data. */
1917  size_t comments;
1919  size_t texts;
1921  size_t extras;
1924  size_t pictures;
1925 } mpg123_id3v2;
1926 
1931 typedef struct
1932 {
1933  char tag[3];
1934  char title[30];
1935  char artist[30];
1936  char album[30];
1937  char year[4];
1938  char comment[30];
1939  unsigned char genre;
1940 } mpg123_id3v1;
1941 
1942 #define MPG123_ID3 0x3
1943 #define MPG123_NEW_ID3 0x1
1944 #define MPG123_ICY 0xc
1945 #define MPG123_NEW_ICY 0x4
1952 
1957 
1963 , mpg123_id3v1 **v1, mpg123_id3v2 **v2 );
1964 
1979 , unsigned char **v1, size_t *v1_size
1980 , unsigned char **v2, size_t *v2_size );
1981 
1987 MPG123_EXPORT int mpg123_icy(mpg123_handle *mh, char **icy_meta);
1988 
1993 MPG123_EXPORT char* mpg123_icy2utf8(const char* icy_text);
1994 
1995 
2015 struct mpg123_pars_struct;
2016 
2018 typedef struct mpg123_pars_struct mpg123_pars;
2019 
2027 , const char* decoder, int *error );
2028 
2034 
2039 
2046 
2053 
2064 , long rate, int channels, int encodings);
2065 
2077 , long rate, int channels, int encodings);
2078 
2086 MPG123_EXPORT int mpg123_fmt_support(mpg123_pars *mp, long rate, int encoding);
2087 
2088 #ifdef MPG123_ENUM_API
2101 , enum mpg123_parms type, long value, double fvalue );
2102 #endif
2103 
2116 , int type, long value, double fvalue );
2117 
2118 #ifdef MPG123_ENUM_API
2131 , enum mpg123_parms type, long *value, double *fvalue );
2132 #endif
2133 
2146 , int type, long *value, double *fvalue );
2147 
2171 , void *data, size_t size);
2172 
2179 
2180 #ifndef MPG123_PORTABLE_API
2195 , mpg123_ssize_t (*r_read) (int, void *, size_t)
2196 , off_t (*r_lseek)(int, off_t, int)
2197 );
2198 
2214 , mpg123_ssize_t (*r_read) (void *, void *, size_t)
2215 , off_t (*r_lseek)(void *, off_t, int)
2216 , void (*cleanup)(void*) );
2217 #endif
2218 
2237 MPG123_EXPORT int mpg123_reader64( mpg123_handle *mh, int (*r_read) (void *, void *, size_t, size_t *), int64_t (*r_lseek)(void *, int64_t, int), void (*cleanup)(void*) );
2238 
2241 #ifdef __cplusplus
2242 }
2243 #endif
2244 
2245 #endif
MPG123_EXPORT int mpg123_getpar(mpg123_pars *mp, enum mpg123_parms type, long *value, double *fvalue)
struct mpg123_pars_struct mpg123_pars
Definition: mpg123.h:2018
MPG123_EXPORT int mpg123_fmt2(mpg123_pars *mp, long rate, int channels, int encodings)
MPG123_EXPORT int mpg123_getpar2(mpg123_pars *mp, int type, long *value, double *fvalue)
MPG123_EXPORT int mpg123_fmt(mpg123_pars *mp, long rate, int channels, int encodings)
MPG123_EXPORT int mpg123_par2(mpg123_pars *mp, int type, long value, double fvalue)
MPG123_EXPORT int mpg123_fmt_support(mpg123_pars *mp, long rate, int encoding)
MPG123_EXPORT void mpg123_delete_pars(mpg123_pars *mp)
MPG123_EXPORT int mpg123_par(mpg123_pars *mp, enum mpg123_parms type, long value, double fvalue)
MPG123_EXPORT mpg123_handle * mpg123_parnew(mpg123_pars *mp, const char *decoder, int *error)
MPG123_EXPORT mpg123_pars * mpg123_new_pars(int *error)
MPG123_EXPORT int mpg123_fmt_all(mpg123_pars *mp)
MPG123_EXPORT int mpg123_fmt_none(mpg123_pars *mp)
MPG123_EXPORT const char ** mpg123_supported_decoders(void)
MPG123_EXPORT const char * mpg123_current_decoder(mpg123_handle *mh)
MPG123_EXPORT const char ** mpg123_decoders(void)
MPG123_EXPORT int mpg123_decoder(mpg123_handle *mh, const char *decoder_name)
MPG123_EXPORT const char * mpg123_strerror(mpg123_handle *mh)
MPG123_EXPORT int mpg123_errcode(mpg123_handle *mh)
mpg123_errors
Definition: mpg123.h:466
MPG123_EXPORT const char * mpg123_plain_strerror(int errcode)
@ MPG123_NEED_MORE
Definition: mpg123.h:469
@ MPG123_LSEEK_FAILED
Definition: mpg123.h:511
@ MPG123_BAD_PARAM
Definition: mpg123.h:476
@ MPG123_ERR_16TO8TABLE
Definition: mpg123.h:475
@ MPG123_BAD_CHANNEL
Definition: mpg123.h:473
@ MPG123_NO_SEEK
Definition: mpg123.h:494
@ MPG123_BAD_PARS
Definition: mpg123.h:496
@ MPG123_INT_OVERFLOW
Definition: mpg123.h:514
@ MPG123_BAD_HANDLE
Definition: mpg123.h:481
@ MPG123_RESYNC_FAIL
Definition: mpg123.h:499
@ MPG123_BAD_OUTFORMAT
Definition: mpg123.h:472
@ MPG123_NO_TIMEOUT
Definition: mpg123.h:492
@ MPG123_INDEX_FAIL
Definition: mpg123.h:507
@ MPG123_BAD_BUFFER
Definition: mpg123.h:477
@ MPG123_ERR
Definition: mpg123.h:470
@ MPG123_NULL_POINTER
Definition: mpg123.h:504
@ MPG123_BAD_RVA
Definition: mpg123.h:483
@ MPG123_BAD_FILE
Definition: mpg123.h:493
@ MPG123_ERR_READER
Definition: mpg123.h:489
@ MPG123_NO_SEEK_FROM_END
Definition: mpg123.h:490
@ MPG123_NOT_INITIALIZED
Definition: mpg123.h:479
@ MPG123_OUT_OF_MEM
Definition: mpg123.h:478
@ MPG123_NULL_BUFFER
Definition: mpg123.h:502
@ MPG123_OUT_OF_SYNC
Definition: mpg123.h:498
@ MPG123_NO_SPACE
Definition: mpg123.h:485
@ MPG123_ERR_NULL
Definition: mpg123.h:488
@ MPG123_BAD_TYPES
Definition: mpg123.h:486
@ MPG123_LFS_OVERFLOW
Definition: mpg123.h:513
@ MPG123_NEW_FORMAT
Definition: mpg123.h:468
@ MPG123_BAD_KEY
Definition: mpg123.h:505
@ MPG123_NO_READER
Definition: mpg123.h:495
@ MPG123_BAD_CUSTOM_IO
Definition: mpg123.h:512
@ MPG123_BAD_WHENCE
Definition: mpg123.h:491
@ MPG123_BAD_ALIGN
Definition: mpg123.h:501
@ MPG123_NO_BUFFERS
Definition: mpg123.h:482
@ MPG123_NO_INDEX
Definition: mpg123.h:506
@ MPG123_DONE
Definition: mpg123.h:467
@ MPG123_BAD_DECODER_SETUP
Definition: mpg123.h:508
@ MPG123_NO_RELSEEK
Definition: mpg123.h:503
@ MPG123_NO_GAPLESS
Definition: mpg123.h:484
@ MPG123_BAD_INDEX_PAR
Definition: mpg123.h:497
@ MPG123_BAD_VALUE
Definition: mpg123.h:510
@ MPG123_MISSING_FEATURE
Definition: mpg123.h:509
@ MPG123_BAD_BAND
Definition: mpg123.h:487
@ MPG123_OK
Definition: mpg123.h:471
@ MPG123_BAD_FLOAT
Definition: mpg123.h:515
@ MPG123_BAD_RATE
Definition: mpg123.h:474
@ MPG123_BAD_DECODER
Definition: mpg123.h:480
@ MPG123_NO_8BIT
Definition: mpg123.h:500
unsigned int mpg123_libversion(unsigned int *patch)
MPG123_EXPORT void mpg123_free(void *ptr)
mpg123_param_flags
Definition: mpg123.h:257
MPG123_EXPORT mpg123_handle * mpg123_new(const char *decoder, int *error)
MPG123_EXPORT void mpg123_delete(mpg123_handle *mh)
const char * mpg123_distversion(unsigned int *major, unsigned int *minor, unsigned int *patch)
MPG123_EXPORT int mpg123_feature2(int key)
MPG123_EXPORT int mpg123_getparam(mpg123_handle *mh, enum mpg123_parms type, long *value, double *fvalue)
struct mpg123_handle_struct mpg123_handle
Definition: mpg123.h:164
mpg123_parms
Definition: mpg123.h:227
mpg123_param_rva
Definition: mpg123.h:318
mpg123_feature_set
Definition: mpg123.h:387
MPG123_EXPORT int mpg123_getparam2(mpg123_handle *mh, int type, long *value, double *fvalue)
MPG123_EXPORT int mpg123_param2(mpg123_handle *mh, int type, long value, double fvalue)
MPG123_EXPORT void mpg123_exit(void)
MPG123_EXPORT int mpg123_param(mpg123_handle *mh, enum mpg123_parms type, long value, double fvalue)
MPG123_EXPORT int mpg123_init(void)
MPG123_EXPORT int mpg123_feature(const enum mpg123_feature_set key)
@ MPG123_IGNORE_STREAMLENGTH
Definition: mpg123.h:271
@ MPG123_FORCE_MONO
Definition: mpg123.h:258
@ MPG123_FUZZY
Definition: mpg123.h:268
@ MPG123_FORCE_FLOAT
Definition: mpg123.h:269
@ MPG123_QUIET
Definition: mpg123.h:264
@ MPG123_NO_RESYNC
Definition: mpg123.h:266
@ MPG123_IGNORE_INFOFRAME
Definition: mpg123.h:273
@ MPG123_MONO_LEFT
Definition: mpg123.h:259
@ MPG123_FORCE_8BIT
Definition: mpg123.h:263
@ MPG123_BIG_ENDIAN
Definition: mpg123.h:290
@ MPG123_PICTURE
Definition: mpg123.h:275
@ MPG123_SEEKBUFFER
Definition: mpg123.h:267
@ MPG123_GAPLESS
Definition: mpg123.h:265
@ MPG123_FORCE_STEREO
Definition: mpg123.h:262
@ MPG123_NO_PEEK_END
Definition: mpg123.h:276
@ MPG123_STORE_RAW_ID3
Definition: mpg123.h:283
@ MPG123_MONO_RIGHT
Definition: mpg123.h:260
@ MPG123_FORCE_SEEKABLE
Definition: mpg123.h:282
@ MPG123_AUTO_RESAMPLE
Definition: mpg123.h:274
@ MPG123_NO_READAHEAD
Definition: mpg123.h:291
@ MPG123_PLAIN_ID3TEXT
Definition: mpg123.h:270
@ MPG123_FORCE_ENDIAN
Definition: mpg123.h:284
@ MPG123_FLOAT_FALLBACK
Definition: mpg123.h:298
@ MPG123_MONO_MIX
Definition: mpg123.h:261
@ MPG123_SKIP_ID3V2
Definition: mpg123.h:272
@ MPG123_NO_FRANKENSTEIN
Definition: mpg123.h:306
@ MPG123_VERBOSE
Definition: mpg123.h:228
@ MPG123_UPSPEED
Definition: mpg123.h:235
@ MPG123_TIMEOUT
Definition: mpg123.h:241
@ MPG123_DOWNSPEED
Definition: mpg123.h:234
@ MPG123_START_FRAME
Definition: mpg123.h:236
@ MPG123_DOWN_SAMPLE
Definition: mpg123.h:232
@ MPG123_RESYNC_LIMIT
Definition: mpg123.h:243
@ MPG123_INDEX_SIZE
Definition: mpg123.h:244
@ MPG123_ADD_FLAGS
Definition: mpg123.h:230
@ MPG123_OUTSCALE
Definition: mpg123.h:240
@ MPG123_FREEFORMAT_SIZE
Definition: mpg123.h:248
@ MPG123_ICY_INTERVAL
Definition: mpg123.h:238
@ MPG123_FEEDPOOL
Definition: mpg123.h:246
@ MPG123_FEEDBUFFER
Definition: mpg123.h:247
@ MPG123_REMOVE_FLAGS
Definition: mpg123.h:242
@ MPG123_FLAGS
Definition: mpg123.h:229
@ MPG123_FORCE_RATE
Definition: mpg123.h:231
@ MPG123_DECODE_FRAMES
Definition: mpg123.h:237
@ MPG123_PREFRAMES
Definition: mpg123.h:245
@ MPG123_RVA
Definition: mpg123.h:233
@ MPG123_RVA_MIX
Definition: mpg123.h:320
@ MPG123_RVA_ALBUM
Definition: mpg123.h:321
@ MPG123_RVA_MAX
Definition: mpg123.h:322
@ MPG123_RVA_OFF
Definition: mpg123.h:319
@ MPG123_FEATURE_INDEX
Definition: mpg123.h:392
@ MPG123_FEATURE_TIMEOUT_READ
Definition: mpg123.h:401
@ MPG123_FEATURE_DECODE_LAYER3
Definition: mpg123.h:396
@ MPG123_FEATURE_DECODE_NTOM
Definition: mpg123.h:399
@ MPG123_FEATURE_EQUALIZER
Definition: mpg123.h:402
@ MPG123_FEATURE_MOREINFO
Definition: mpg123.h:403
@ MPG123_FEATURE_PARSE_ID3V2
Definition: mpg123.h:393
@ MPG123_FEATURE_PARSE_ICY
Definition: mpg123.h:400
@ MPG123_FEATURE_OUTPUT_FLOAT32
Definition: mpg123.h:404
@ MPG123_FEATURE_OUTPUT_32BIT
Definition: mpg123.h:391
@ MPG123_FEATURE_OUTPUT_FLOAT64
Definition: mpg123.h:405
@ MPG123_FEATURE_OUTPUT_8BIT
Definition: mpg123.h:389
@ MPG123_FEATURE_ABI_UTF8OPEN
Definition: mpg123.h:388
@ MPG123_FEATURE_DECODE_ACCURATE
Definition: mpg123.h:397
@ MPG123_FEATURE_DECODE_DOWNSAMPLE
Definition: mpg123.h:398
@ MPG123_FEATURE_DECODE_LAYER2
Definition: mpg123.h:395
@ MPG123_FEATURE_OUTPUT_16BIT
Definition: mpg123.h:390
@ MPG123_FEATURE_DECODE_LAYER1
Definition: mpg123.h:394
MPG123_EXPORT int mpg123_open_feed(mpg123_handle *mh)
MPG123_EXPORT int mpg123_feed(mpg123_handle *mh, const unsigned char *in, size_t size)
MPG123_EXPORT int mpg123_close(mpg123_handle *mh)
MPG123_EXPORT int mpg123_decode(mpg123_handle *mh, const unsigned char *inmemory, size_t inmemsize, void *outmemory, size_t outmemsize, size_t *done)
MPG123_EXPORT int mpg123_framebyframe_decode64(mpg123_handle *mh, int64_t *num, unsigned char **audio, size_t *bytes)
MPG123_EXPORT int mpg123_decode_frame64(mpg123_handle *mh, int64_t *num, unsigned char **audio, size_t *bytes)
MPG123_EXPORT int mpg123_open(mpg123_handle *mh, const char *path)
MPG123_EXPORT int mpg123_open_fd(mpg123_handle *mh, int fd)
MPG123_EXPORT int mpg123_open_fixed(mpg123_handle *mh, const char *path, int channels, int encoding)
MPG123_EXPORT int mpg123_framedata(mpg123_handle *mh, unsigned long *header, unsigned char **bodydata, size_t *bodybytes)
MPG123_EXPORT int mpg123_open_handle(mpg123_handle *mh, void *iohandle)
MPG123_EXPORT int mpg123_decode_frame(mpg123_handle *mh, off_t *num, unsigned char **audio, size_t *bytes)
MPG123_EXPORT int mpg123_read(mpg123_handle *mh, void *outmemory, size_t outmemsize, size_t *done)
MPG123_EXPORT int mpg123_framebyframe_next(mpg123_handle *mh)
MPG123_EXPORT int mpg123_framebyframe_decode(mpg123_handle *mh, off_t *num, unsigned char **audio, size_t *bytes)
MPG123_EXPORT int64_t mpg123_framepos64(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_replace_reader_handle(mpg123_handle *mh, mpg123_ssize_t(*r_read)(void *, void *, size_t), off_t(*r_lseek)(void *, off_t, int), void(*cleanup)(void *))
MPG123_EXPORT int mpg123_reader64(mpg123_handle *mh, int(*r_read)(void *, void *, size_t, size_t *), int64_t(*r_lseek)(void *, int64_t, int), void(*cleanup)(void *))
MPG123_EXPORT int mpg123_replace_reader(mpg123_handle *mh, mpg123_ssize_t(*r_read)(int, void *, size_t), off_t(*r_lseek)(int, off_t, int))
MPG123_EXPORT int mpg123_replace_buffer(mpg123_handle *mh, void *data, size_t size)
MPG123_EXPORT char * mpg123_icy2utf8(const char *icy_text)
MPG123_EXPORT int mpg123_same_string(mpg123_string *a, mpg123_string *b)
MPG123_EXPORT int mpg123_grow_string(mpg123_string *sb, size_t news)
MPG123_EXPORT int mpg123_meta_check(mpg123_handle *mh)
MPG123_EXPORT void mpg123_free_string(mpg123_string *sb)
MPG123_EXPORT int mpg123_set_substring(mpg123_string *sb, const char *stuff, size_t from, size_t count)
MPG123_EXPORT int mpg123_store_utf8_2(mpg123_string *sb, int enc, const unsigned char *source, size_t source_size)
mpg123_text_encoding
Definition: mpg123.h:1764
MPG123_EXPORT void mpg123_meta_free(mpg123_handle *mh)
MPG123_EXPORT mpg123_string * mpg123_new_string(const char *val)
MPG123_EXPORT size_t mpg123_strlen(mpg123_string *sb, int utf8)
MPG123_EXPORT int mpg123_resize_string(mpg123_string *sb, size_t news)
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_icy(mpg123_handle *mh, char **icy_meta)
mpg123_id3_enc
Definition: mpg123.h:1784
MPG123_EXPORT int mpg123_add_substring(mpg123_string *sb, const char *stuff, size_t from, size_t count)
MPG123_EXPORT int mpg123_id3(mpg123_handle *mh, mpg123_id3v1 **v1, mpg123_id3v2 **v2)
MPG123_EXPORT int mpg123_set_string(mpg123_string *sb, const char *stuff)
MPG123_EXPORT int mpg123_copy_string(mpg123_string *from, mpg123_string *to)
MPG123_EXPORT int mpg123_add_string(mpg123_string *sb, const char *stuff)
MPG123_EXPORT enum mpg123_text_encoding mpg123_enc_from_id3(unsigned char id3_enc_byte)
MPG123_EXPORT int mpg123_enc_from_id3_2(unsigned char id3_enc_byte)
MPG123_EXPORT void mpg123_delete_string(mpg123_string *sb)
MPG123_EXPORT int mpg123_chomp_string(mpg123_string *sb)
MPG123_EXPORT void mpg123_init_string(mpg123_string *sb)
mpg123_id3_pic_type
Definition: mpg123.h:1863
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_move_string(mpg123_string *from, mpg123_string *to)
@ mpg123_text_cp1252
Definition: mpg123.h:1769
@ mpg123_text_max
Definition: mpg123.h:1779
@ mpg123_text_utf16bom
Definition: mpg123.h:1774
@ mpg123_text_utf16be
Definition: mpg123.h:1775
@ mpg123_text_unknown
Definition: mpg123.h:1765
@ mpg123_text_icy
Definition: mpg123.h:1768
@ mpg123_text_utf16
Definition: mpg123.h:1770
@ mpg123_text_utf8
Definition: mpg123.h:1766
@ mpg123_text_latin1
Definition: mpg123.h:1767
@ mpg123_id3_latin1
Definition: mpg123.h:1785
@ mpg123_id3_utf16be
Definition: mpg123.h:1787
@ mpg123_id3_enc_max
Definition: mpg123.h:1789
@ mpg123_id3_utf16bom
Definition: mpg123.h:1786
@ mpg123_id3_utf8
Definition: mpg123.h:1788
@ mpg123_id3_pic_publisher_logo
Definition: mpg123.h:1884
@ mpg123_id3_pic_performance
Definition: mpg123.h:1879
@ mpg123_id3_pic_leaflet
Definition: mpg123.h:1869
@ mpg123_id3_pic_recording
Definition: mpg123.h:1878
@ mpg123_id3_pic_back_cover
Definition: mpg123.h:1868
@ mpg123_id3_pic_video
Definition: mpg123.h:1880
@ mpg123_id3_pic_conductor
Definition: mpg123.h:1873
@ mpg123_id3_pic_media
Definition: mpg123.h:1870
@ mpg123_id3_pic_lead
Definition: mpg123.h:1871
@ mpg123_id3_pic_artist
Definition: mpg123.h:1872
@ mpg123_id3_pic_artist_logo
Definition: mpg123.h:1883
@ mpg123_id3_pic_orchestra
Definition: mpg123.h:1874
@ mpg123_id3_pic_icon
Definition: mpg123.h:1865
@ mpg123_id3_pic_composer
Definition: mpg123.h:1875
@ mpg123_id3_pic_other
Definition: mpg123.h:1864
@ mpg123_id3_pic_location
Definition: mpg123.h:1877
@ mpg123_id3_pic_illustration
Definition: mpg123.h:1882
@ mpg123_id3_pic_front_cover
Definition: mpg123.h:1867
@ mpg123_id3_pic_lyricist
Definition: mpg123.h:1876
@ mpg123_id3_pic_fish
Definition: mpg123.h:1881
@ mpg123_id3_pic_other_icon
Definition: mpg123.h:1866
MPG123_EXPORT int mpg123_format2(mpg123_handle *mh, long rate, int channels, int encodings)
MPG123_EXPORT int mpg123_format_all(mpg123_handle *mh)
MPG123_EXPORT int mpg123_format_none(mpg123_handle *mh)
mpg123_channelcount
Definition: mpg123.h:609
MPG123_EXPORT void mpg123_encodings(const int **list, size_t *number)
MPG123_EXPORT void mpg123_rates(const long **list, size_t *number)
MPG123_EXPORT int mpg123_format(mpg123_handle *mh, long rate, int channels, int encodings)
MPG123_EXPORT int mpg123_getformat2(mpg123_handle *mh, long *rate, int *channels, int *encoding, int clear_flag)
MPG123_EXPORT int mpg123_format_support(mpg123_handle *mh, long rate, int encoding)
MPG123_EXPORT int mpg123_getformat(mpg123_handle *mh, long *rate, int *channels, int *encoding)
MPG123_EXPORT int mpg123_encsize(int encoding)
@ MPG123_STEREO
Definition: mpg123.h:611
@ MPG123_MONO
Definition: mpg123.h:610
MPG123_EXPORT int mpg123_set_index(mpg123_handle *mh, off_t *offsets, off_t step, size_t fill)
MPG123_EXPORT int mpg123_index64(mpg123_handle *mh, int64_t **offsets, int64_t *step, size_t *fill)
MPG123_EXPORT int64_t mpg123_tell64(mpg123_handle *mh)
MPG123_EXPORT off_t mpg123_tell_stream(mpg123_handle *mh)
MPG123_EXPORT int64_t mpg123_tell_stream64(mpg123_handle *mh)
MPG123_EXPORT int64_t mpg123_seek_frame64(mpg123_handle *mh, int64_t frameoff, int whence)
MPG123_EXPORT int64_t mpg123_tellframe64(mpg123_handle *mh)
MPG123_EXPORT int mpg123_set_index64(mpg123_handle *mh, int64_t *offsets, int64_t step, size_t fill)
MPG123_EXPORT off_t mpg123_tellframe(mpg123_handle *mh)
MPG123_EXPORT off_t mpg123_tell(mpg123_handle *mh)
MPG123_EXPORT off_t mpg123_feedseek(mpg123_handle *mh, off_t sampleoff, int whence, off_t *input_offset)
MPG123_EXPORT off_t mpg123_timeframe(mpg123_handle *mh, double sec)
MPG123_EXPORT int64_t mpg123_feedseek64(mpg123_handle *mh, int64_t sampleoff, int whence, int64_t *input_offset)
MPG123_EXPORT off_t mpg123_seek(mpg123_handle *mh, off_t sampleoff, int whence)
MPG123_EXPORT int mpg123_position(mpg123_handle *mh, off_t INT123_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_seek_frame(mpg123_handle *mh, off_t frameoff, int whence)
MPG123_EXPORT int mpg123_index(mpg123_handle *mh, off_t **offsets, off_t *step, size_t *fill)
MPG123_EXPORT int64_t mpg123_seek64(mpg123_handle *mh, int64_t sampleoff, int whence)
MPG123_EXPORT int64_t mpg123_timeframe64(mpg123_handle *mh, double sec)
mpg123_mode
Definition: mpg123.h:1374
mpg123_version
Definition: mpg123.h:1365
MPG123_EXPORT int mpg123_set_filesize64(mpg123_handle *mh, int64_t size)
MPG123_EXPORT int mpg123_scan(mpg123_handle *mh)
MPG123_EXPORT int mpg123_info(mpg123_handle *mh, struct mpg123_frameinfo *mi)
MPG123_EXPORT int64_t mpg123_framelength64(mpg123_handle *mh)
MPG123_EXPORT int mpg123_spf(mpg123_handle *mh)
MPG123_EXPORT int mpg123_getstate2(mpg123_handle *mh, int key, long *val, double *fval)
MPG123_EXPORT double mpg123_tpf(mpg123_handle *mh)
MPG123_EXPORT off_t mpg123_length(mpg123_handle *mh)
mpg123_vbr
Definition: mpg123.h:1358
MPG123_EXPORT int mpg123_info2(mpg123_handle *mh, struct mpg123_frameinfo2 *mi)
MPG123_EXPORT off_t mpg123_framelength(mpg123_handle *mh)
MPG123_EXPORT int mpg123_set_moreinfo(mpg123_handle *mh, struct mpg123_moreinfo *mi)
MPG123_EXPORT int mpg123_set_filesize(mpg123_handle *mh, off_t size)
MPG123_EXPORT long mpg123_clip(mpg123_handle *mh)
mpg123_state
Definition: mpg123.h:1579
mpg123_flags
Definition: mpg123.h:1383
MPG123_EXPORT int64_t mpg123_length64(mpg123_handle *mh)
MPG123_EXPORT int mpg123_getstate(mpg123_handle *mh, enum mpg123_state key, long *val, double *fval)
MPG123_EXPORT size_t mpg123_safe_buffer(void)
@ MPG123_M_MONO
Definition: mpg123.h:1378
@ MPG123_M_DUAL
Definition: mpg123.h:1377
@ MPG123_M_JOINT
Definition: mpg123.h:1376
@ MPG123_M_STEREO
Definition: mpg123.h:1375
@ MPG123_2_0
Definition: mpg123.h:1367
@ MPG123_1_0
Definition: mpg123.h:1366
@ MPG123_2_5
Definition: mpg123.h:1368
@ MPG123_CBR
Definition: mpg123.h:1359
@ MPG123_ABR
Definition: mpg123.h:1361
@ MPG123_VBR
Definition: mpg123.h:1360
@ MPG123_ACCURATE
Definition: mpg123.h:1580
@ MPG123_BUFFERFILL
Definition: mpg123.h:1581
@ MPG123_DEC_DELAY
Definition: mpg123.h:1586
@ MPG123_ENC_DELAY
Definition: mpg123.h:1584
@ MPG123_FRANKENSTEIN
Definition: mpg123.h:1582
@ MPG123_ENC_PADDING
Definition: mpg123.h:1585
@ MPG123_FRESH_DECODER
Definition: mpg123.h:1583
@ MPG123_PRIVATE
Definition: mpg123.h:1386
@ MPG123_COPYRIGHT
Definition: mpg123.h:1385
@ MPG123_CRC
Definition: mpg123.h:1384
@ MPG123_ORIGINAL
Definition: mpg123.h:1387
MPG123_EXPORT int mpg123_getvolume(mpg123_handle *mh, double *base, double *really, double *rva_db)
MPG123_EXPORT int mpg123_reset_eq(mpg123_handle *mh)
MPG123_EXPORT double mpg123_geteq2(mpg123_handle *mh, int channel, int band)
MPG123_EXPORT int mpg123_eq2(mpg123_handle *mh, int channel, int band, double val)
MPG123_EXPORT int mpg123_volume_change(mpg123_handle *mh, double change)
MPG123_EXPORT int mpg123_eq_change(mpg123_handle *mh, int channel, int a, int b, double db)
MPG123_EXPORT int mpg123_volume_change_db(mpg123_handle *mh, double db)
MPG123_EXPORT int mpg123_eq_bands(mpg123_handle *mh, int channel, int a, int b, double factor)
MPG123_EXPORT double mpg123_geteq(mpg123_handle *mh, enum mpg123_channels channel, int band)
MPG123_EXPORT int mpg123_volume(mpg123_handle *mh, double vol)
MPG123_EXPORT int mpg123_eq(mpg123_handle *mh, enum mpg123_channels channel, int band, double val)
mpg123_channels
Definition: mpg123.h:1220
@ MPG123_LEFT
Definition: mpg123.h:1221
@ MPG123_RIGHT
Definition: mpg123.h:1222
@ MPG123_LR
Definition: mpg123.h:1223
#define MPG123_EXPORT
Definition: mpg123.h:41
ssize_t mpg123_ssize_t
Definition: mpg123.h:83
void cleanup(mpg123_handle *mh, out123_handle *ao)
enum mpg123_mode mode
Definition: mpg123.h:1397
enum mpg123_vbr vbr
Definition: mpg123.h:1404
enum mpg123_flags flags
Definition: mpg123.h:1400
enum mpg123_version version
Definition: mpg123.h:1394
unsigned char genre
Definition: mpg123.h:1939
mpg123_string * genre
Definition: mpg123.h:1912
size_t texts
Definition: mpg123.h:1919
mpg123_string * title
Definition: mpg123.h:1908
mpg123_text * text
Definition: mpg123.h:1918
mpg123_string * comment
Definition: mpg123.h:1913
mpg123_string * artist
Definition: mpg123.h:1909
mpg123_string * year
Definition: mpg123.h:1911
size_t comments
Definition: mpg123.h:1917
unsigned char version
Definition: mpg123.h:1907
mpg123_text * comment_list
Definition: mpg123.h:1916
size_t pictures
Definition: mpg123.h:1924
mpg123_picture * picture
Definition: mpg123.h:1922
mpg123_string * album
Definition: mpg123.h:1910
mpg123_text * extra
Definition: mpg123.h:1920
size_t extras
Definition: mpg123.h:1921
int mainbits[2][2]
Definition: mpg123.h:1441
int preflag[2][2]
Definition: mpg123.h:1438
int scalefac_scale[2][2]
Definition: mpg123.h:1437
int mixed[2][2]
Definition: mpg123.h:1440
int sub_gain[2][2][3]
Definition: mpg123.h:1436
int sfbits[2][2]
Definition: mpg123.h:1442
int big_values[2][2]
Definition: mpg123.h:1435
int qss[2][2]
Definition: mpg123.h:1434
int blocktype[2][2]
Definition: mpg123.h:1439
double sfb_s[2][2][3 *13]
Definition: mpg123.h:1433
double xr[2][2][576]
Definition: mpg123.h:1431
int scfsi[2]
Definition: mpg123.h:1443
double sfb[2][2][22]
Definition: mpg123.h:1432
mpg123_string description
Definition: mpg123.h:1894
unsigned char * data
Definition: mpg123.h:1897
mpg123_string mime_type
Definition: mpg123.h:1895
size_t size
Definition: mpg123.h:1896
char * p
Definition: mpg123.h:1634
size_t fill
Definition: mpg123.h:1636
size_t size
Definition: mpg123.h:1635
mpg123_string text
Definition: mpg123.h:1858
mpg123_string description
Definition: mpg123.h:1857
Hopefully valid HTML! Valid CSS!