|
MPD
0.17~git
|
The MPD Decoder API. More...
#include "check.h"#include "decoder_command.h"#include "decoder_plugin.h"#include "input_stream.h"#include "replay_gain_info.h"#include "tag.h"#include "audio_format.h"#include "conf.h"#include <stdbool.h>Go to the source code of this file.
Functions | |
| void | decoder_initialized (struct decoder *decoder, const struct audio_format *audio_format, bool seekable, float total_time) |
| Notify the player thread that it has finished initialization and that it has read the song's meta data. | |
| enum decoder_command | decoder_get_command (struct decoder *decoder) |
| Determines the pending decoder command. | |
| void | decoder_command_finished (struct decoder *decoder) |
| Called by the decoder when it has performed the requested command (dc->command). | |
| double | decoder_seek_where (struct decoder *decoder) |
| Call this when you have received the DECODE_COMMAND_SEEK command. | |
| void | decoder_seek_error (struct decoder *decoder) |
| Call this right before decoder_command_finished() when seeking has failed. | |
| size_t | decoder_read (struct decoder *decoder, struct input_stream *is, void *buffer, size_t length) |
| Blocking read from the input stream. | |
| void | decoder_timestamp (struct decoder *decoder, double t) |
| Sets the time stamp for the next data chunk [seconds]. | |
| enum decoder_command | decoder_data (struct decoder *decoder, struct input_stream *is, const void *data, size_t length, uint16_t kbit_rate) |
| This function is called by the decoder plugin when it has successfully decoded block of input data. | |
| enum decoder_command | decoder_tag (struct decoder *decoder, struct input_stream *is, const struct tag *tag) |
| This function is called by the decoder plugin when it has successfully decoded a tag. | |
| float | decoder_replay_gain (struct decoder *decoder, const struct replay_gain_info *replay_gain_info) |
| Set replay gain values for the following chunks. | |
| void | decoder_mixramp (struct decoder *decoder, float replay_gain_db, char *mixramp_start, char *mixramp_end) |
| Store MixRamp tags. | |
The MPD Decoder API.
This is the public API which is used by decoder plugins to communicate with the mpd core.
Definition in file decoder_api.h.
| void decoder_command_finished | ( | struct decoder * | decoder | ) |
Called by the decoder when it has performed the requested command (dc->command).
This function resets dc->command and wakes up the player thread.
| decoder | the decoder object |
| enum decoder_command decoder_data | ( | struct decoder * | decoder, |
| struct input_stream * | is, | ||
| const void * | data, | ||
| size_t | length, | ||
| uint16_t | kbit_rate | ||
| ) |
This function is called by the decoder plugin when it has successfully decoded block of input data.
| decoder | the decoder object |
| is | an input stream which is buffering while we are waiting for the player |
| data | the source buffer |
| length | the number of bytes in the buffer |
| enum decoder_command decoder_get_command | ( | struct decoder * | decoder | ) |
Determines the pending decoder command.
| decoder | the decoder object |
| void decoder_initialized | ( | struct decoder * | decoder, |
| const struct audio_format * | audio_format, | ||
| bool | seekable, | ||
| float | total_time | ||
| ) |
Notify the player thread that it has finished initialization and that it has read the song's meta data.
| decoder | the decoder object |
| audio_format | the audio format which is going to be sent to decoder_data() |
| seekable | true if the song is seekable |
| total_time | the total number of seconds in this song; -1 if unknown |
| void decoder_mixramp | ( | struct decoder * | decoder, |
| float | replay_gain_db, | ||
| char * | mixramp_start, | ||
| char * | mixramp_end | ||
| ) |
Store MixRamp tags.
| decoder | the decoder object |
| replay_gain_db | the ReplayGain adjustment used for this song |
| mixramp_start | the mixramp_start tag; may be NULL to invalidate |
| mixramp_end | the mixramp_end tag; may be NULL to invalidate |
| size_t decoder_read | ( | struct decoder * | decoder, |
| struct input_stream * | is, | ||
| void * | buffer, | ||
| size_t | length | ||
| ) |
Blocking read from the input stream.
| decoder | the decoder object |
| is | the input stream to read from |
| buffer | the destination buffer |
| length | the maximum number of bytes to read |
| float decoder_replay_gain | ( | struct decoder * | decoder, |
| const struct replay_gain_info * | replay_gain_info | ||
| ) |
Set replay gain values for the following chunks.
| decoder | the decoder object |
| rgi | the replay_gain_info object; may be NULL to invalidate the previous replay gain values |
| void decoder_seek_error | ( | struct decoder * | decoder | ) |
Call this right before decoder_command_finished() when seeking has failed.
| decoder | the decoder object |
| double decoder_seek_where | ( | struct decoder * | decoder | ) |
Call this when you have received the DECODE_COMMAND_SEEK command.
| decoder | the decoder object |
| enum decoder_command decoder_tag | ( | struct decoder * | decoder, |
| struct input_stream * | is, | ||
| const struct tag * | tag | ||
| ) |
This function is called by the decoder plugin when it has successfully decoded a tag.
| decoder | the decoder object |
| is | an input stream which is buffering while we are waiting for the player |
| tag | the tag to send |
| void decoder_timestamp | ( | struct decoder * | decoder, |
| double | t | ||
| ) |
Sets the time stamp for the next data chunk [seconds].
The MPD core automatically counts it up, and a decoder plugin only needs to use this function if it thinks that adding to the time stamp based on the buffer size won't work.
1.7.5.1