MPD
Data Structures | Functions
encoder_plugin.h File Reference
#include <glib.h>
#include <stdbool.h>
#include <stddef.h>

Go to the source code of this file.

Data Structures

struct  encoder
 
struct  encoder_plugin
 

Functions

static void encoder_struct_init (struct encoder *encoder, const struct encoder_plugin *plugin)
 Initializes an encoder object.
 
static struct encoderencoder_init (const struct encoder_plugin *plugin, const struct config_param *param, GError **error)
 Creates a new encoder object.
 
static void encoder_finish (struct encoder *encoder)
 Frees an encoder object.
 
static bool encoder_open (struct encoder *encoder, struct audio_format *audio_format, GError **error)
 Opens an encoder object.
 
static void encoder_close (struct encoder *encoder)
 Closes an encoder object.
 
static bool encoder_flush (struct encoder *encoder, GError **error)
 Flushes an encoder object, make everything which might currently be buffered available by encoder_read().
 
static bool encoder_pre_tag (struct encoder *encoder, GError **error)
 Prepare for sending a tag to the encoder.
 
static bool encoder_tag (struct encoder *encoder, const struct tag *tag, GError **error)
 Sends a tag to the encoder.
 
static bool encoder_write (struct encoder *encoder, const void *data, size_t length, GError **error)
 Writes raw PCM data to the encoder.
 
static size_t encoder_read (struct encoder *encoder, void *dest, size_t length)
 Reads encoded data from the encoder.
 
static const char * encoder_get_mime_type (struct encoder *encoder)
 Get mime type of encoded content.
 

Function Documentation

static void encoder_close ( struct encoder encoder)
inlinestatic

Closes an encoder object.

This disables the encoder, and readies it for reusal by calling encoder_open() again.

Parameters
encoderthe encoder

Definition at line 129 of file encoder_plugin.h.

static void encoder_finish ( struct encoder encoder)
inlinestatic

Frees an encoder object.

Parameters
encoderthe encoder

Definition at line 99 of file encoder_plugin.h.

static bool encoder_flush ( struct encoder encoder,
GError **  error 
)
inlinestatic

Flushes an encoder object, make everything which might currently be buffered available by encoder_read().

Parameters
encoderthe encoder
errorlocation to store the error occuring, or NULL to ignore errors.
Returns
true on success

Definition at line 144 of file encoder_plugin.h.

static const char* encoder_get_mime_type ( struct encoder encoder)
inlinestatic

Get mime type of encoded content.

Parameters
pluginthe encoder plugin
Returns
an constant string, NULL on failure

Definition at line 228 of file encoder_plugin.h.

static struct encoder* encoder_init ( const struct encoder_plugin plugin,
const struct config_param param,
GError **  error 
)
staticread

Creates a new encoder object.

Parameters
pluginthe encoder plugin
paramoptional configuration
errorlocation to store the error occuring, or NULL to ignore errors.
Returns
an encoder object on success, NULL on failure

Definition at line 87 of file encoder_plugin.h.

static bool encoder_open ( struct encoder encoder,
struct audio_format audio_format,
GError **  error 
)
inlinestatic

Opens an encoder object.

You must call this prior to using it. Before you free it, you must call encoder_close(). You may open and close (reuse) one encoder any number of times.

Parameters
encoderthe encoder
audio_formatthe encoder's input audio format; the plugin may modify the struct to adapt it to its abilities
errorlocation to store the error occuring, or NULL to ignore errors.
Returns
true on success

Definition at line 116 of file encoder_plugin.h.

static bool encoder_pre_tag ( struct encoder encoder,
GError **  error 
)
inlinestatic

Prepare for sending a tag to the encoder.

This is used by some encoders to flush the previous sub-stream, in preparation to begin a new one.

Parameters
encoderthe encoder
tagthe tag object
errorlocation to store the error occuring, or NULL to ignore errors.
Returns
true on success

Definition at line 163 of file encoder_plugin.h.

static size_t encoder_read ( struct encoder encoder,
void *  dest,
size_t  length 
)
inlinestatic

Reads encoded data from the encoder.

Parameters
encoderthe encoder
destthe destination buffer to copy to
lengththe maximum length of the destination buffer
Returns
the number of bytes written to #dest

Definition at line 216 of file encoder_plugin.h.

static void encoder_struct_init ( struct encoder encoder,
const struct encoder_plugin plugin 
)
inlinestatic

Initializes an encoder object.

This should be used by encoder plugins to initialize their base class.

Definition at line 72 of file encoder_plugin.h.

static bool encoder_tag ( struct encoder encoder,
const struct tag tag,
GError **  error 
)
inlinestatic

Sends a tag to the encoder.

Instructions: call encoder_pre_tag(); then obtain flushed data with encoder_read(); finally call encoder_tag().

Parameters
encoderthe encoder
tagthe tag object
errorlocation to store the error occuring, or NULL to ignore errors.
Returns
true on success

Definition at line 183 of file encoder_plugin.h.

static bool encoder_write ( struct encoder encoder,
const void *  data,
size_t  length,
GError **  error 
)
inlinestatic

Writes raw PCM data to the encoder.

Parameters
encoderthe encoder
datathe buffer containing PCM samples
lengththe length of the buffer in bytes
errorlocation to store the error occuring, or NULL to ignore errors.
Returns
true on success

Definition at line 201 of file encoder_plugin.h.