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 48
22 #define MPG123_PATCHLEVEL 0
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 /* You can use this file directly, avoiding the autoconf replacements.
75  Might have to set MPG123_NO_LARGENAME, too, in case you have
76  _FILE_OFFSET_BITS defined where it does not make sense. */
77 #ifndef MPG123_NO_CONFIGURE
78 
79 #include <stdlib.h>
80 #include <sys/types.h>
81 
82 /* A little hack to help MSVC not having ssize_t. */
83 #ifdef _MSC_VER
84 #include <stddef.h>
85 typedef ptrdiff_t mpg123_ssize_t;
86 #else
87 typedef ssize_t mpg123_ssize_t;
88 #endif
89 
90 /* You can always enforce largefile hackery by setting MPG123_LARGESUFFIX. */
91 /* Otherwise, this header disables it if the build system decided so. */
92 #if !defined(MPG123_LARGESUFFIX) && @BUILD_NO_LARGENAME@
93 #ifndef MPG123_NO_LARGENAME
94 #define MPG123_NO_LARGENAME
95 #endif
96 #endif
97 
98 #endif /* MPG123_NO_CONFIGURE */
99 
100 /* Simplified large file handling.
101  I used to have a check here that prevents building for a library with conflicting large file setup
102  (application that uses 32 bit offsets with library that uses 64 bits).
103  While that was perfectly fine in an environment where there is one incarnation of the library,
104  it hurt GNU/Linux and Solaris systems with multilib where the distribution fails to provide the
105  correct header matching the 32 bit library (where large files need explicit support) or
106  the 64 bit library (where there is no distinction).
107 
108  New approach: When the app defines _FILE_OFFSET_BITS, it wants non-default large file support,
109  and thus functions with added suffix (mpg123_open_64).
110  Any mismatch will be caught at link time because of the _FILE_OFFSET_BITS setting used when
111  building libmpg123. Plus, there's dual mode large file support in mpg123 since 1.12 now.
112  Link failure is not the expected outcome of any half-sane usage anymore.
113 
114  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.
115 */
116 
117 /*
118  Now, the renaming of large file aware functions.
119  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.
120 */
121 #if (!defined MPG123_NO_LARGENAME) && ((defined _FILE_OFFSET_BITS) || (defined MPG123_LARGESUFFIX))
122 
123 /* Need some trickery to concatenate the value(s) of the given macro(s). */
124 #define MPG123_MACROCAT_REALLY(a, b) a ## b
125 #define MPG123_MACROCAT(a, b) MPG123_MACROCAT_REALLY(a, b)
126 #ifndef MPG123_LARGESUFFIX
127 #define MPG123_LARGESUFFIX MPG123_MACROCAT(_, _FILE_OFFSET_BITS)
128 #endif
129 #define MPG123_LARGENAME(func) MPG123_MACROCAT(func, MPG123_LARGESUFFIX)
130 
131 #define mpg123_open_fixed MPG123_LARGENAME(mpg123_open_fixed)
132 #define mpg123_open MPG123_LARGENAME(mpg123_open)
133 #define mpg123_open_fd MPG123_LARGENAME(mpg123_open_fd)
134 #define mpg123_open_handle MPG123_LARGENAME(mpg123_open_handle)
135 #define mpg123_framebyframe_decode MPG123_LARGENAME(mpg123_framebyframe_decode)
136 #define mpg123_decode_frame MPG123_LARGENAME(mpg123_decode_frame)
137 #define mpg123_tell MPG123_LARGENAME(mpg123_tell)
138 #define mpg123_tellframe MPG123_LARGENAME(mpg123_tellframe)
139 #define mpg123_tell_stream MPG123_LARGENAME(mpg123_tell_stream)
140 #define mpg123_seek MPG123_LARGENAME(mpg123_seek)
141 #define mpg123_feedseek MPG123_LARGENAME(mpg123_feedseek)
142 #define mpg123_seek_frame MPG123_LARGENAME(mpg123_seek_frame)
143 #define mpg123_timeframe MPG123_LARGENAME(mpg123_timeframe)
144 #define mpg123_index MPG123_LARGENAME(mpg123_index)
145 #define mpg123_set_index MPG123_LARGENAME(mpg123_set_index)
146 #define mpg123_position MPG123_LARGENAME(mpg123_position)
147 #define mpg123_length MPG123_LARGENAME(mpg123_length)
148 #define mpg123_framelength MPG123_LARGENAME(mpg123_framelength)
149 #define mpg123_set_filesize MPG123_LARGENAME(mpg123_set_filesize)
150 #define mpg123_replace_reader MPG123_LARGENAME(mpg123_replace_reader)
151 #define mpg123_replace_reader_handle MPG123_LARGENAME(mpg123_replace_reader_handle)
152 #define mpg123_framepos MPG123_LARGENAME(mpg123_framepos)
153 
154 #endif /* largefile hackery */
155 
156 #ifdef __cplusplus
157 extern "C" {
158 #endif
159 
170 struct mpg123_handle_struct;
171 
175 typedef struct mpg123_handle_struct mpg123_handle;
176 
184 const char *mpg123_distversion(unsigned int *major, unsigned int *minor, unsigned int *patch);
185 
190 unsigned int mpg123_libversion(unsigned int *patch);
191 
206 
213 
222 MPG123_EXPORT mpg123_handle *mpg123_new(const char* decoder, int *error);
223 
228 
234 MPG123_EXPORT void mpg123_free(void *ptr);
235 
238 {
264 };
265 
268 {
269  MPG123_FORCE_MONO = 0x7
275  ,MPG123_QUIET = 0x20
276  ,MPG123_GAPLESS = 0x40
279  ,MPG123_FUZZY = 0x200
283  ,MPG123_SKIP_ID3V2 = 0x2000
286  ,MPG123_PICTURE = 0x10000
287  ,MPG123_NO_PEEK_END = 0x20000
295  ,MPG123_FORCE_ENDIAN = 0x100000
301  ,MPG123_BIG_ENDIAN = 0x200000
302  ,MPG123_NO_READAHEAD = 0x400000
325 };
326 
329 {
330  MPG123_RVA_OFF = 0
334 };
335 
336 #ifdef MPG123_ENUM_API
349 , enum mpg123_parms type, long value, double fvalue );
350 #endif
351 
364 , int type, long value, double fvalue );
365 
366 #ifdef MPG123_ENUM_API
379 , enum mpg123_parms type, long *value, double *fvalue );
380 #endif
381 
394 , int type, long *value, double *fvalue );
395 
398 {
417 };
418 
419 #ifdef MPG123_ENUM_API
429 #endif
430 
440 
477 {
527 };
528 
533 MPG123_EXPORT const char* mpg123_plain_strerror(int errcode);
534 
543 
549 
564 MPG123_EXPORT const char **mpg123_decoders(void);
565 
574 
580 MPG123_EXPORT int mpg123_decoder(mpg123_handle *mh, const char* decoder_name);
581 
592 
620 {
621  MPG123_MONO = 1
623 };
624 
632 MPG123_EXPORT void mpg123_rates(const long **list, size_t *number);
633 
638 MPG123_EXPORT void mpg123_encodings(const int **list, size_t *number);
639 
643 MPG123_EXPORT int mpg123_encsize(int encoding);
644 
651 
658 
666 , long rate, int channels, int encodings );
667 
679 , long rate, int channels, int encodings );
680 
689 , long rate, int encoding );
690 
703 , long *rate, int *channels, int *encoding );
704 
717 , long *rate, int *channels, int *encoding, int clear_flag );
718 
773 , int channels, int encoding);
774 
790 MPG123_EXPORT int mpg123_open(mpg123_handle *mh, const char *path);
791 
799 
808 
817 
823 
836 , void *outmemory, size_t outmemsize, size_t *done );
837 
846 , const unsigned char *in, size_t size );
847 
868 , const unsigned char *inmemory, size_t inmemsize
869 , void *outmemory, size_t outmemsize, size_t *done );
870 
880 , off_t *num, unsigned char **audio, size_t *bytes );
881 
892 , off_t *num, unsigned char **audio, size_t *bytes );
893 
901 
918 , unsigned long *header, unsigned char **bodydata, size_t *bodybytes );
919 
928 
980 
986 
992 
1001 , off_t sampleoff, int whence );
1002 
1014 , off_t sampleoff, int whence, off_t *input_offset );
1015 
1023 , off_t frameoff, int whence );
1024 
1029 
1040 , off_t **offsets, off_t *step, size_t *fill );
1041 
1052 , off_t *offsets, off_t step, size_t fill );
1053 
1061 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);
1062 
1073 {
1074  MPG123_LEFT=0x1
1077 };
1078 
1079 #ifdef MPG123_ENUM_API
1093 , enum mpg123_channels channel, int band, double val );
1094 #endif
1095 
1109 , int channel, int band, double val );
1110 
1120 , int channel, int a, int b, double factor );
1121 
1131 , int channel, int a, int b, double db );
1132 
1133 #ifdef MPG123_ENUM_API
1145  , enum mpg123_channels channel, int band);
1146 #endif
1147 
1158 MPG123_EXPORT double mpg123_geteq2(mpg123_handle *mh, int channel, int band);
1159 
1165 
1173 
1180 
1187 
1198 MPG123_EXPORT int mpg123_getvolume(mpg123_handle *mh, double *base, double *really, double *rva_db);
1199 
1200 /* TODO: Set some preamp in addition / to replace internal RVA handling? */
1201 
1214  MPG123_ABR
1215 };
1216 
1221  MPG123_2_5
1222 };
1223 
1224 
1231  MPG123_M_MONO
1232 };
1233 
1234 
1240  MPG123_ORIGINAL=0x8
1241 };
1242 
1243 #ifdef MPG123_ENUM_API
1246 {
1247  enum mpg123_version version;
1248  int layer;
1249  long rate;
1250  enum mpg123_mode mode;
1251  int mode_ext;
1253  enum mpg123_flags flags;
1254  int emphasis;
1255  int bitrate;
1256  int abr_rate;
1257  enum mpg123_vbr vbr;
1258 };
1259 #endif
1260 
1263 {
1264  int version;
1265  int layer;
1266  long rate;
1267  int mode;
1268  int mode_ext;
1270  int flags;
1271  int emphasis;
1272  int bitrate;
1273  int abr_rate;
1274  int vbr;
1275 };
1276 
1283 {
1284  double xr[2][2][576];
1285  double sfb[2][2][22];
1286  double sfb_s[2][2][3*13];
1287  int qss[2][2];
1288  int big_values[2][2];
1289  int sub_gain[2][2][3];
1290  int scalefac_scale[2][2];
1291  int preflag[2][2];
1292  int blocktype[2][2];
1293  int mixed[2][2];
1294  int mainbits[2][2];
1295  int sfbits[2][2];
1296  int scfsi[2];
1297  int maindata;
1298  int padding;
1299 };
1300 
1301 #ifdef MPG123_ENUM_API
1313 #endif
1314 
1326 
1334 , struct mpg123_moreinfo *mi );
1335 
1341 
1350 
1357 
1371 
1379 
1385 
1391 
1397 
1398 
1401 {
1402  MPG123_ACCURATE = 1
1409 };
1410 
1411 #ifdef MPG123_ENUM_API
1424 , enum mpg123_state key, long *val, double *fval );
1425 #endif
1426 
1439 , int key, long *val, double *fval );
1440 
1454 typedef struct
1455 {
1456  char* p;
1457  size_t size;
1458  size_t fill;
1459 } mpg123_string;
1460 
1465 
1470 
1477 
1484 
1491 
1502 
1510 
1524 
1530 MPG123_EXPORT int mpg123_add_string(mpg123_string* sb, const char* stuff);
1531 
1540 , const char *stuff, size_t from, size_t count );
1541 
1547 MPG123_EXPORT int mpg123_set_string(mpg123_string* sb, const char* stuff);
1548 
1557 , const char *stuff, size_t from, size_t count );
1558 
1568 
1574 
1583 
1586 {
1587  mpg123_text_unknown = 0
1602 };
1603 
1606 {
1607  mpg123_id3_latin1 = 0
1612 };
1613 
1614 #ifdef MPG123_ENUM_API
1623 MPG123_EXPORT enum mpg123_text_encoding mpg123_enc_from_id3(unsigned char id3_enc_byte);
1624 #endif
1625 
1634 MPG123_EXPORT int mpg123_enc_from_id3_2(unsigned char id3_enc_byte);
1635 
1636 #ifdef MPG123_ENUM_API
1650 MPG123_EXPORT int mpg123_store_utf8(mpg123_string *sb, enum mpg123_text_encoding enc, const unsigned char *source, size_t source_size);
1651 #endif
1652 
1667 , int enc, const unsigned char *source, size_t source_size);
1668 
1675 typedef struct
1676 {
1677  char lang[3];
1678  char id[4];
1681 } mpg123_text;
1682 
1685 {
1707 };
1708 
1713 typedef struct
1714 {
1715  char type;
1718  size_t size;
1719  unsigned char* data;
1720 } mpg123_picture;
1721 
1727 typedef struct
1728 {
1729  unsigned char version;
1736  /* Encountered ID3v2 fields are appended to these lists.
1737  There can be multiple occurences, the pointers above always point to the last encountered data. */
1739  size_t comments;
1741  size_t texts;
1743  size_t extras;
1746  size_t pictures;
1747 } mpg123_id3v2;
1748 
1753 typedef struct
1754 {
1755  char tag[3];
1756  char title[30];
1757  char artist[30];
1758  char album[30];
1759  char year[4];
1760  char comment[30];
1761  unsigned char genre;
1762 } mpg123_id3v1;
1763 
1764 #define MPG123_ID3 0x3
1765 #define MPG123_NEW_ID3 0x1
1766 #define MPG123_ICY 0xc
1767 #define MPG123_NEW_ICY 0x4
1774 
1779 
1785 , mpg123_id3v1 **v1, mpg123_id3v2 **v2 );
1786 
1801 , unsigned char **v1, size_t *v1_size
1802 , unsigned char **v2, size_t *v2_size );
1803 
1809 MPG123_EXPORT int mpg123_icy(mpg123_handle *mh, char **icy_meta);
1810 
1815 MPG123_EXPORT char* mpg123_icy2utf8(const char* icy_text);
1816 
1817 
1837 struct mpg123_pars_struct;
1838 
1840 typedef struct mpg123_pars_struct mpg123_pars;
1841 
1849 , const char* decoder, int *error );
1850 
1856 
1861 
1868 
1875 
1886 , long rate, int channels, int encodings);
1887 
1899 , long rate, int channels, int encodings);
1900 
1908 MPG123_EXPORT int mpg123_fmt_support(mpg123_pars *mp, long rate, int encoding);
1909 
1910 #ifdef MPG123_ENUM_API
1923 , enum mpg123_parms type, long value, double fvalue );
1924 #endif
1925 
1938 , int type, long value, double fvalue );
1939 
1940 #ifdef MPG123_ENUM_API
1953 , enum mpg123_parms type, long *value, double *fvalue );
1954 #endif
1955 
1968 , int type, long *value, double *fvalue );
1969 
1993 , void *data, size_t size);
1994 
2001 
2016 , mpg123_ssize_t (*r_read) (int, void *, size_t)
2017 , off_t (*r_lseek)(int, off_t, int)
2018 );
2019 
2035 , mpg123_ssize_t (*r_read) (void *, void *, size_t)
2036 , off_t (*r_lseek)(void *, off_t, int)
2037 , void (*cleanup)(void*) );
2038 
2041 #ifdef __cplusplus
2042 }
2043 #endif
2044 
2045 #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:1840
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:477
MPG123_EXPORT const char * mpg123_plain_strerror(int errcode)
@ MPG123_NEED_MORE
Definition: mpg123.h:480
@ MPG123_LSEEK_FAILED
Definition: mpg123.h:522
@ MPG123_BAD_PARAM
Definition: mpg123.h:487
@ MPG123_ERR_16TO8TABLE
Definition: mpg123.h:486
@ MPG123_BAD_CHANNEL
Definition: mpg123.h:484
@ MPG123_NO_SEEK
Definition: mpg123.h:505
@ MPG123_BAD_PARS
Definition: mpg123.h:507
@ MPG123_INT_OVERFLOW
Definition: mpg123.h:525
@ MPG123_BAD_HANDLE
Definition: mpg123.h:492
@ MPG123_RESYNC_FAIL
Definition: mpg123.h:510
@ MPG123_BAD_OUTFORMAT
Definition: mpg123.h:483
@ MPG123_NO_TIMEOUT
Definition: mpg123.h:503
@ MPG123_INDEX_FAIL
Definition: mpg123.h:518
@ MPG123_BAD_BUFFER
Definition: mpg123.h:488
@ MPG123_ERR
Definition: mpg123.h:481
@ MPG123_NULL_POINTER
Definition: mpg123.h:515
@ MPG123_BAD_RVA
Definition: mpg123.h:494
@ MPG123_BAD_FILE
Definition: mpg123.h:504
@ MPG123_ERR_READER
Definition: mpg123.h:500
@ MPG123_NO_SEEK_FROM_END
Definition: mpg123.h:501
@ MPG123_NOT_INITIALIZED
Definition: mpg123.h:490
@ MPG123_OUT_OF_MEM
Definition: mpg123.h:489
@ MPG123_NULL_BUFFER
Definition: mpg123.h:513
@ MPG123_OUT_OF_SYNC
Definition: mpg123.h:509
@ MPG123_NO_SPACE
Definition: mpg123.h:496
@ MPG123_ERR_NULL
Definition: mpg123.h:499
@ MPG123_BAD_TYPES
Definition: mpg123.h:497
@ MPG123_LFS_OVERFLOW
Definition: mpg123.h:524
@ MPG123_NEW_FORMAT
Definition: mpg123.h:479
@ MPG123_BAD_KEY
Definition: mpg123.h:516
@ MPG123_NO_READER
Definition: mpg123.h:506
@ MPG123_BAD_CUSTOM_IO
Definition: mpg123.h:523
@ MPG123_BAD_WHENCE
Definition: mpg123.h:502
@ MPG123_BAD_ALIGN
Definition: mpg123.h:512
@ MPG123_NO_BUFFERS
Definition: mpg123.h:493
@ MPG123_NO_INDEX
Definition: mpg123.h:517
@ MPG123_DONE
Definition: mpg123.h:478
@ MPG123_BAD_DECODER_SETUP
Definition: mpg123.h:519
@ MPG123_NO_RELSEEK
Definition: mpg123.h:514
@ MPG123_NO_GAPLESS
Definition: mpg123.h:495
@ MPG123_BAD_INDEX_PAR
Definition: mpg123.h:508
@ MPG123_BAD_VALUE
Definition: mpg123.h:521
@ MPG123_MISSING_FEATURE
Definition: mpg123.h:520
@ MPG123_BAD_BAND
Definition: mpg123.h:498
@ MPG123_OK
Definition: mpg123.h:482
@ MPG123_BAD_FLOAT
Definition: mpg123.h:526
@ MPG123_BAD_RATE
Definition: mpg123.h:485
@ MPG123_BAD_DECODER
Definition: mpg123.h:491
@ MPG123_NO_8BIT
Definition: mpg123.h:511
unsigned int mpg123_libversion(unsigned int *patch)
MPG123_EXPORT void mpg123_free(void *ptr)
mpg123_param_flags
Definition: mpg123.h:268
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:175
mpg123_parms
Definition: mpg123.h:238
mpg123_param_rva
Definition: mpg123.h:329
mpg123_feature_set
Definition: mpg123.h:398
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:282
@ MPG123_FORCE_MONO
Definition: mpg123.h:269
@ MPG123_FUZZY
Definition: mpg123.h:279
@ MPG123_FORCE_FLOAT
Definition: mpg123.h:280
@ MPG123_QUIET
Definition: mpg123.h:275
@ MPG123_NO_RESYNC
Definition: mpg123.h:277
@ MPG123_IGNORE_INFOFRAME
Definition: mpg123.h:284
@ MPG123_MONO_LEFT
Definition: mpg123.h:270
@ MPG123_FORCE_8BIT
Definition: mpg123.h:274
@ MPG123_BIG_ENDIAN
Definition: mpg123.h:301
@ MPG123_PICTURE
Definition: mpg123.h:286
@ MPG123_SEEKBUFFER
Definition: mpg123.h:278
@ MPG123_GAPLESS
Definition: mpg123.h:276
@ MPG123_FORCE_STEREO
Definition: mpg123.h:273
@ MPG123_NO_PEEK_END
Definition: mpg123.h:287
@ MPG123_STORE_RAW_ID3
Definition: mpg123.h:294
@ MPG123_MONO_RIGHT
Definition: mpg123.h:271
@ MPG123_FORCE_SEEKABLE
Definition: mpg123.h:293
@ MPG123_AUTO_RESAMPLE
Definition: mpg123.h:285
@ MPG123_NO_READAHEAD
Definition: mpg123.h:302
@ MPG123_PLAIN_ID3TEXT
Definition: mpg123.h:281
@ MPG123_FORCE_ENDIAN
Definition: mpg123.h:295
@ MPG123_FLOAT_FALLBACK
Definition: mpg123.h:309
@ MPG123_MONO_MIX
Definition: mpg123.h:272
@ MPG123_SKIP_ID3V2
Definition: mpg123.h:283
@ MPG123_NO_FRANKENSTEIN
Definition: mpg123.h:317
@ MPG123_VERBOSE
Definition: mpg123.h:239
@ MPG123_UPSPEED
Definition: mpg123.h:246
@ MPG123_TIMEOUT
Definition: mpg123.h:252
@ MPG123_DOWNSPEED
Definition: mpg123.h:245
@ MPG123_START_FRAME
Definition: mpg123.h:247
@ MPG123_DOWN_SAMPLE
Definition: mpg123.h:243
@ MPG123_RESYNC_LIMIT
Definition: mpg123.h:254
@ MPG123_INDEX_SIZE
Definition: mpg123.h:255
@ MPG123_ADD_FLAGS
Definition: mpg123.h:241
@ MPG123_OUTSCALE
Definition: mpg123.h:251
@ MPG123_FREEFORMAT_SIZE
Definition: mpg123.h:259
@ MPG123_ICY_INTERVAL
Definition: mpg123.h:249
@ MPG123_FEEDPOOL
Definition: mpg123.h:257
@ MPG123_FEEDBUFFER
Definition: mpg123.h:258
@ MPG123_REMOVE_FLAGS
Definition: mpg123.h:253
@ MPG123_FLAGS
Definition: mpg123.h:240
@ MPG123_FORCE_RATE
Definition: mpg123.h:242
@ MPG123_DECODE_FRAMES
Definition: mpg123.h:248
@ MPG123_PREFRAMES
Definition: mpg123.h:256
@ MPG123_RVA
Definition: mpg123.h:244
@ MPG123_RVA_MIX
Definition: mpg123.h:331
@ MPG123_RVA_ALBUM
Definition: mpg123.h:332
@ MPG123_RVA_MAX
Definition: mpg123.h:333
@ MPG123_RVA_OFF
Definition: mpg123.h:330
@ MPG123_FEATURE_INDEX
Definition: mpg123.h:403
@ MPG123_FEATURE_TIMEOUT_READ
Definition: mpg123.h:412
@ MPG123_FEATURE_DECODE_LAYER3
Definition: mpg123.h:407
@ MPG123_FEATURE_DECODE_NTOM
Definition: mpg123.h:410
@ MPG123_FEATURE_EQUALIZER
Definition: mpg123.h:413
@ MPG123_FEATURE_MOREINFO
Definition: mpg123.h:414
@ MPG123_FEATURE_PARSE_ID3V2
Definition: mpg123.h:404
@ MPG123_FEATURE_PARSE_ICY
Definition: mpg123.h:411
@ MPG123_FEATURE_OUTPUT_FLOAT32
Definition: mpg123.h:415
@ MPG123_FEATURE_OUTPUT_32BIT
Definition: mpg123.h:402
@ MPG123_FEATURE_OUTPUT_FLOAT64
Definition: mpg123.h:416
@ MPG123_FEATURE_OUTPUT_8BIT
Definition: mpg123.h:400
@ MPG123_FEATURE_ABI_UTF8OPEN
Definition: mpg123.h:399
@ MPG123_FEATURE_DECODE_ACCURATE
Definition: mpg123.h:408
@ MPG123_FEATURE_DECODE_DOWNSAMPLE
Definition: mpg123.h:409
@ MPG123_FEATURE_DECODE_LAYER2
Definition: mpg123.h:406
@ MPG123_FEATURE_OUTPUT_16BIT
Definition: mpg123.h:401
@ MPG123_FEATURE_DECODE_LAYER1
Definition: mpg123.h:405
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_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 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_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:1586
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:1606
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:1685
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:1591
@ mpg123_text_max
Definition: mpg123.h:1601
@ mpg123_text_utf16bom
Definition: mpg123.h:1596
@ mpg123_text_utf16be
Definition: mpg123.h:1597
@ mpg123_text_unknown
Definition: mpg123.h:1587
@ mpg123_text_icy
Definition: mpg123.h:1590
@ mpg123_text_utf16
Definition: mpg123.h:1592
@ mpg123_text_utf8
Definition: mpg123.h:1588
@ mpg123_text_latin1
Definition: mpg123.h:1589
@ mpg123_id3_latin1
Definition: mpg123.h:1607
@ mpg123_id3_utf16be
Definition: mpg123.h:1609
@ mpg123_id3_enc_max
Definition: mpg123.h:1611
@ mpg123_id3_utf16bom
Definition: mpg123.h:1608
@ mpg123_id3_utf8
Definition: mpg123.h:1610
@ mpg123_id3_pic_publisher_logo
Definition: mpg123.h:1706
@ mpg123_id3_pic_performance
Definition: mpg123.h:1701
@ mpg123_id3_pic_leaflet
Definition: mpg123.h:1691
@ mpg123_id3_pic_recording
Definition: mpg123.h:1700
@ mpg123_id3_pic_back_cover
Definition: mpg123.h:1690
@ mpg123_id3_pic_video
Definition: mpg123.h:1702
@ mpg123_id3_pic_conductor
Definition: mpg123.h:1695
@ mpg123_id3_pic_media
Definition: mpg123.h:1692
@ mpg123_id3_pic_lead
Definition: mpg123.h:1693
@ mpg123_id3_pic_artist
Definition: mpg123.h:1694
@ mpg123_id3_pic_artist_logo
Definition: mpg123.h:1705
@ mpg123_id3_pic_orchestra
Definition: mpg123.h:1696
@ mpg123_id3_pic_icon
Definition: mpg123.h:1687
@ mpg123_id3_pic_composer
Definition: mpg123.h:1697
@ mpg123_id3_pic_other
Definition: mpg123.h:1686
@ mpg123_id3_pic_location
Definition: mpg123.h:1699
@ mpg123_id3_pic_illustration
Definition: mpg123.h:1704
@ mpg123_id3_pic_front_cover
Definition: mpg123.h:1689
@ mpg123_id3_pic_lyricist
Definition: mpg123.h:1698
@ mpg123_id3_pic_fish
Definition: mpg123.h:1703
@ mpg123_id3_pic_other_icon
Definition: mpg123.h:1688
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:620
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:622
@ MPG123_MONO
Definition: mpg123.h:621
MPG123_EXPORT int mpg123_set_index(mpg123_handle *mh, off_t *offsets, off_t step, size_t fill)
MPG123_EXPORT off_t mpg123_tell_stream(mpg123_handle *mh)
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 off_t mpg123_seek(mpg123_handle *mh, off_t sampleoff, int whence)
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 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_mode
Definition: mpg123.h:1227
mpg123_version
Definition: mpg123.h:1218
MPG123_EXPORT int mpg123_scan(mpg123_handle *mh)
MPG123_EXPORT int mpg123_info(mpg123_handle *mh, struct mpg123_frameinfo *mi)
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:1211
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:1401
mpg123_flags
Definition: mpg123.h:1236
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:1231
@ MPG123_M_DUAL
Definition: mpg123.h:1230
@ MPG123_M_JOINT
Definition: mpg123.h:1229
@ MPG123_M_STEREO
Definition: mpg123.h:1228
@ MPG123_2_0
Definition: mpg123.h:1220
@ MPG123_1_0
Definition: mpg123.h:1219
@ MPG123_2_5
Definition: mpg123.h:1221
@ MPG123_CBR
Definition: mpg123.h:1212
@ MPG123_ABR
Definition: mpg123.h:1214
@ MPG123_VBR
Definition: mpg123.h:1213
@ MPG123_ACCURATE
Definition: mpg123.h:1402
@ MPG123_BUFFERFILL
Definition: mpg123.h:1403
@ MPG123_DEC_DELAY
Definition: mpg123.h:1408
@ MPG123_ENC_DELAY
Definition: mpg123.h:1406
@ MPG123_FRANKENSTEIN
Definition: mpg123.h:1404
@ MPG123_ENC_PADDING
Definition: mpg123.h:1407
@ MPG123_FRESH_DECODER
Definition: mpg123.h:1405
@ MPG123_PRIVATE
Definition: mpg123.h:1239
@ MPG123_COPYRIGHT
Definition: mpg123.h:1238
@ MPG123_CRC
Definition: mpg123.h:1237
@ MPG123_ORIGINAL
Definition: mpg123.h:1240
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:1073
@ MPG123_LEFT
Definition: mpg123.h:1074
@ MPG123_RIGHT
Definition: mpg123.h:1075
@ MPG123_LR
Definition: mpg123.h:1076
#define MPG123_EXPORT
Definition: mpg123.h:41
ssize_t mpg123_ssize_t
Definition: mpg123.h:87
void cleanup(mpg123_handle *mh, out123_handle *ao)
enum mpg123_mode mode
Definition: mpg123.h:1250
enum mpg123_vbr vbr
Definition: mpg123.h:1257
enum mpg123_flags flags
Definition: mpg123.h:1253
enum mpg123_version version
Definition: mpg123.h:1247
unsigned char genre
Definition: mpg123.h:1761
mpg123_string * genre
Definition: mpg123.h:1734
size_t texts
Definition: mpg123.h:1741
mpg123_string * title
Definition: mpg123.h:1730
mpg123_text * text
Definition: mpg123.h:1740
mpg123_string * comment
Definition: mpg123.h:1735
mpg123_string * artist
Definition: mpg123.h:1731
mpg123_string * year
Definition: mpg123.h:1733
size_t comments
Definition: mpg123.h:1739
unsigned char version
Definition: mpg123.h:1729
mpg123_text * comment_list
Definition: mpg123.h:1738
size_t pictures
Definition: mpg123.h:1746
mpg123_picture * picture
Definition: mpg123.h:1744
mpg123_string * album
Definition: mpg123.h:1732
mpg123_text * extra
Definition: mpg123.h:1742
size_t extras
Definition: mpg123.h:1743
int mainbits[2][2]
Definition: mpg123.h:1294
int preflag[2][2]
Definition: mpg123.h:1291
int scalefac_scale[2][2]
Definition: mpg123.h:1290
int mixed[2][2]
Definition: mpg123.h:1293
int sub_gain[2][2][3]
Definition: mpg123.h:1289
int sfbits[2][2]
Definition: mpg123.h:1295
int big_values[2][2]
Definition: mpg123.h:1288
int qss[2][2]
Definition: mpg123.h:1287
int blocktype[2][2]
Definition: mpg123.h:1292
double sfb_s[2][2][3 *13]
Definition: mpg123.h:1286
double xr[2][2][576]
Definition: mpg123.h:1284
int scfsi[2]
Definition: mpg123.h:1296
double sfb[2][2][22]
Definition: mpg123.h:1285
mpg123_string description
Definition: mpg123.h:1716
unsigned char * data
Definition: mpg123.h:1719
mpg123_string mime_type
Definition: mpg123.h:1717
size_t size
Definition: mpg123.h:1718
char * p
Definition: mpg123.h:1456
size_t fill
Definition: mpg123.h:1458
size_t size
Definition: mpg123.h:1457
mpg123_string text
Definition: mpg123.h:1680
mpg123_string description
Definition: mpg123.h:1679
Hopefully valid HTML! Valid CSS!