mpg123_enc_enum

An enum over all sample types possibly known to mpg123. The values are designed as bit flags to allow bitmasking for encoding families. This is also why the enum is not used as type for actual encoding variables, plain integers (at least 16 bit, 15 bit being used) cover the possible combinations of these flags. * Note that (your build of) libmpg123 does not necessarily support all these. Usually, you can expect the 8bit encodings and signed 16 bit. Also 32bit float will be usual beginning with mpg123-1.7.0 . What you should bear in mind is that (SSE, etc) optimized routines may be absent for some formats. We do have SSE for 16, 32 bit and float, though. 24 bit integer is done via postprocessing of 32 bit output -- just cutting the last byte, no rounding, even. If you want better, do it yourself. * All formats are in native byte order. If you need different endinaness, you can simply postprocess the output buffers (libmpg123 wouldn't do anything else). The macro MPG123_SAMPLESIZE() can be helpful there.

Values

ValueMeaning
MPG123_ENC_80x00f
MPG123_ENC_160x040
MPG123_ENC_240x4000
MPG123_ENC_320x100
MPG123_ENC_SIGNED0x080
MPG123_ENC_FLOAT0xe00
MPG123_ENC_SIGNED_16(MPG123_ENC_16 | MPG123_ENC_SIGNED | 0x10)
MPG123_ENC_UNSIGNED_16(MPG123_ENC_16 | 0x20)
MPG123_ENC_UNSIGNED_80x01
MPG123_ENC_SIGNED_8(MPG123_ENC_SIGNED | 0x02)
MPG123_ENC_ULAW_80x04
MPG123_ENC_ALAW_80x08
MPG123_ENC_SIGNED_32MPG123_ENC_32 | MPG123_ENC_SIGNED | 0x1000
MPG123_ENC_UNSIGNED_32MPG123_ENC_32 | 0x2000
MPG123_ENC_SIGNED_24MPG123_ENC_24 | MPG123_ENC_SIGNED | 0x1000
MPG123_ENC_UNSIGNED_24MPG123_ENC_24 | 0x2000
MPG123_ENC_FLOAT_320x200
MPG123_ENC_FLOAT_640x400
MPG123_ENC_ANY(MPG123_ENC_SIGNED_16 | MPG123_ENC_UNSIGNED_16 | MPG123_ENC_UNSIGNED_8 | MPG123_ENC_SIGNED_8 | MPG123_ENC_ULAW_8 | MPG123_ENC_ALAW_8 | MPG123_ENC_SIGNED_32 | MPG123_ENC_UNSIGNED_32 | MPG123_ENC_SIGNED_24 | MPG123_ENC_UNSIGNED_24 | MPG123_ENC_FLOAT_32 | MPG123_ENC_FLOAT_64)

Meta