# 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;-).
Functions
mpg123 decoder selection

Functions to list and select the available decoders. Perhaps the most prominent feature of mpg123: You have several (optimized) decoders to choose from (on x86 and PPC (MacOS) systems, that is). More...

## Functions
const MPG123_EXPORT char ** | mpg123_decoders (void)
const MPG123_EXPORT char ** | mpg123_supported_decoders (void)
MPG123_EXPORT int | mpg123_decoder (mpg123_handle *mh, const char *decoder_name)
const MPG123_EXPORT char * | mpg123_current_decoder (mpg123_handle *mh)

## Detailed Description

Functions to list and select the available decoders. Perhaps the most prominent feature of mpg123: You have several (optimized) decoders to choose from (on x86 and PPC (MacOS) systems, that is).

## Function Documentation

## ◆ mpg123_decoders()

const MPG123_EXPORT char** mpg123_decoders | ( | void |  | ) |

Get available decoder list.

Returns
  NULL-terminated array of generally available decoder names (plain 8bit ASCII)

## ◆ mpg123_supported_decoders()

const MPG123_EXPORT char** mpg123_supported_decoders | ( | void |  | ) |

Get supported decoder list.

This possibly writes to static storage in the library, so avoid calling concurrently, please.

Returns
  NULL-terminated array of the decoders supported by the CPU (plain 8bit ASCII)

## ◆ mpg123_decoder()

MPG123_EXPORT int mpg123_decoder | ( | mpg123_handle * | mh,
|  | const char * | decoder_name
| ) |  |

Set the active decoder.

Parameters

  mh | handle
  decoder_name | name of decoder

Returns
  MPG123_OK on success

## ◆ mpg123_current_decoder()

const MPG123_EXPORT char* mpg123_current_decoder | ( | mpg123_handle * | mh | ) |

Get the currently active decoder name. The active decoder engine can vary depening on output constraints, mostly non-resampling, integer output is accelerated via 3DNow & Co. but for other modes a fallback engine kicks in. Note that this can return a decoder that is only active in the hidden and not available as decoder choice from the outside.

Parameters

  mh | handle

Returns
  The decoder name or NULL on error.