EncoderPlugin: pass config_param reference
This commit is contained in:
parent
81c3224076
commit
ca0d09c50f
|
@ -49,7 +49,7 @@ struct Encoder {
|
|||
struct EncoderPlugin {
|
||||
const char *name;
|
||||
|
||||
Encoder *(*init)(const struct config_param *param,
|
||||
Encoder *(*init)(const config_param ¶m,
|
||||
GError **error);
|
||||
|
||||
void (*finish)(Encoder *encoder);
|
||||
|
@ -87,7 +87,7 @@ struct EncoderPlugin {
|
|||
* @return an encoder object on success, NULL on failure
|
||||
*/
|
||||
static inline Encoder *
|
||||
encoder_init(const EncoderPlugin &plugin, const config_param *param,
|
||||
encoder_init(const EncoderPlugin &plugin, const config_param ¶m,
|
||||
GError **error_r)
|
||||
{
|
||||
return plugin.init(param, error_r);
|
||||
|
|
|
@ -63,17 +63,16 @@ flac_encoder_quark(void)
|
|||
}
|
||||
|
||||
static bool
|
||||
flac_encoder_configure(struct flac_encoder *encoder,
|
||||
const struct config_param *param, G_GNUC_UNUSED GError **error)
|
||||
flac_encoder_configure(struct flac_encoder *encoder, const config_param ¶m,
|
||||
gcc_unused GError **error)
|
||||
{
|
||||
encoder->compression = config_get_block_unsigned(param,
|
||||
"compression", 5);
|
||||
encoder->compression = param.GetBlockValue("compression", 5u);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static Encoder *
|
||||
flac_encoder_init(const struct config_param *param, GError **error)
|
||||
flac_encoder_init(const config_param ¶m, GError **error)
|
||||
{
|
||||
flac_encoder *encoder = new flac_encoder();
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ struct LameEncoder final {
|
|||
|
||||
LameEncoder():encoder(lame_encoder_plugin) {}
|
||||
|
||||
bool Configure(const config_param *param, GError **error);
|
||||
bool Configure(const config_param ¶m, GError **error);
|
||||
};
|
||||
|
||||
static inline GQuark
|
||||
|
@ -53,12 +53,12 @@ lame_encoder_quark(void)
|
|||
}
|
||||
|
||||
bool
|
||||
LameEncoder::Configure(const config_param *param, GError **error)
|
||||
LameEncoder::Configure(const config_param ¶m, GError **error)
|
||||
{
|
||||
const char *value;
|
||||
char *endptr;
|
||||
|
||||
value = config_get_block_string(param, "quality", nullptr);
|
||||
value = param.GetBlockValue("quality");
|
||||
if (value != nullptr) {
|
||||
/* a quality was configured (VBR) */
|
||||
|
||||
|
@ -68,26 +68,26 @@ LameEncoder::Configure(const config_param *param, GError **error)
|
|||
g_set_error(error, lame_encoder_quark(), 0,
|
||||
"quality \"%s\" is not a number in the "
|
||||
"range -1 to 10, line %i",
|
||||
value, param->line);
|
||||
value, param.line);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (config_get_block_string(param, "bitrate", nullptr) != nullptr) {
|
||||
if (param.GetBlockValue("bitrate") != nullptr) {
|
||||
g_set_error(error, lame_encoder_quark(), 0,
|
||||
"quality and bitrate are "
|
||||
"both defined (line %i)",
|
||||
param->line);
|
||||
param.line);
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
/* a bit rate was configured */
|
||||
|
||||
value = config_get_block_string(param, "bitrate", nullptr);
|
||||
value = param.GetBlockValue("bitrate");
|
||||
if (value == nullptr) {
|
||||
g_set_error(error, lame_encoder_quark(), 0,
|
||||
"neither bitrate nor quality defined "
|
||||
"at line %i",
|
||||
param->line);
|
||||
param.line);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -97,7 +97,7 @@ LameEncoder::Configure(const config_param *param, GError **error)
|
|||
if (*endptr != '\0' || bitrate <= 0) {
|
||||
g_set_error(error, lame_encoder_quark(), 0,
|
||||
"bitrate at line %i should be a positive integer",
|
||||
param->line);
|
||||
param.line);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -106,7 +106,7 @@ LameEncoder::Configure(const config_param *param, GError **error)
|
|||
}
|
||||
|
||||
static Encoder *
|
||||
lame_encoder_init(const struct config_param *param, GError **error_r)
|
||||
lame_encoder_init(const config_param ¶m, GError **error_r)
|
||||
{
|
||||
LameEncoder *encoder = new LameEncoder();
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ struct NullEncoder final {
|
|||
};
|
||||
|
||||
static Encoder *
|
||||
null_encoder_init(gcc_unused const struct config_param *param,
|
||||
null_encoder_init(gcc_unused const config_param ¶m,
|
||||
gcc_unused GError **error)
|
||||
{
|
||||
NullEncoder *encoder = new NullEncoder();
|
||||
|
|
|
@ -75,9 +75,9 @@ opus_encoder_quark(void)
|
|||
|
||||
static bool
|
||||
opus_encoder_configure(struct opus_encoder *encoder,
|
||||
const struct config_param *param, GError **error_r)
|
||||
const config_param ¶m, GError **error_r)
|
||||
{
|
||||
const char *value = config_get_block_string(param, "bitrate", "auto");
|
||||
const char *value = param.GetBlockValue("bitrate", "auto");
|
||||
if (strcmp(value, "auto") == 0)
|
||||
encoder->bitrate = OPUS_AUTO;
|
||||
else if (strcmp(value, "max") == 0)
|
||||
|
@ -93,15 +93,14 @@ opus_encoder_configure(struct opus_encoder *encoder,
|
|||
}
|
||||
}
|
||||
|
||||
encoder->complexity = config_get_block_unsigned(param, "complexity",
|
||||
10);
|
||||
encoder->complexity = param.GetBlockValue("complexity", 10u);
|
||||
if (encoder->complexity > 10) {
|
||||
g_set_error(error_r, opus_encoder_quark(), 0,
|
||||
"Invalid complexity");
|
||||
return false;
|
||||
}
|
||||
|
||||
value = config_get_block_string(param, "signal", "auto");
|
||||
value = param.GetBlockValue("signal", "auto");
|
||||
if (strcmp(value, "auto") == 0)
|
||||
encoder->signal = OPUS_AUTO;
|
||||
else if (strcmp(value, "voice") == 0)
|
||||
|
@ -118,7 +117,7 @@ opus_encoder_configure(struct opus_encoder *encoder,
|
|||
}
|
||||
|
||||
static Encoder *
|
||||
opus_encoder_init(const struct config_param *param, GError **error)
|
||||
opus_encoder_init(const config_param ¶m, GError **error)
|
||||
{
|
||||
opus_encoder *encoder = new opus_encoder();
|
||||
|
||||
|
|
|
@ -48,7 +48,7 @@ struct TwolameEncoder final {
|
|||
|
||||
TwolameEncoder():encoder(twolame_encoder_plugin) {}
|
||||
|
||||
bool Configure(const config_param *param, GError **error);
|
||||
bool Configure(const config_param ¶m, GError **error);
|
||||
};
|
||||
|
||||
static inline GQuark
|
||||
|
@ -58,12 +58,12 @@ twolame_encoder_quark(void)
|
|||
}
|
||||
|
||||
bool
|
||||
TwolameEncoder::Configure(const config_param *param, GError **error)
|
||||
TwolameEncoder::Configure(const config_param ¶m, GError **error)
|
||||
{
|
||||
const char *value;
|
||||
char *endptr;
|
||||
|
||||
value = config_get_block_string(param, "quality", nullptr);
|
||||
value = param.GetBlockValue("quality");
|
||||
if (value != nullptr) {
|
||||
/* a quality was configured (VBR) */
|
||||
|
||||
|
@ -73,26 +73,26 @@ TwolameEncoder::Configure(const config_param *param, GError **error)
|
|||
g_set_error(error, twolame_encoder_quark(), 0,
|
||||
"quality \"%s\" is not a number in the "
|
||||
"range -1 to 10, line %i",
|
||||
value, param->line);
|
||||
value, param.line);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (config_get_block_string(param, "bitrate", nullptr) != nullptr) {
|
||||
if (param.GetBlockValue("bitrate") != nullptr) {
|
||||
g_set_error(error, twolame_encoder_quark(), 0,
|
||||
"quality and bitrate are "
|
||||
"both defined (line %i)",
|
||||
param->line);
|
||||
param.line);
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
/* a bit rate was configured */
|
||||
|
||||
value = config_get_block_string(param, "bitrate", nullptr);
|
||||
value = param.GetBlockValue("bitrate");
|
||||
if (value == nullptr) {
|
||||
g_set_error(error, twolame_encoder_quark(), 0,
|
||||
"neither bitrate nor quality defined "
|
||||
"at line %i",
|
||||
param->line);
|
||||
param.line);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -102,7 +102,7 @@ TwolameEncoder::Configure(const config_param *param, GError **error)
|
|||
if (*endptr != '\0' || bitrate <= 0) {
|
||||
g_set_error(error, twolame_encoder_quark(), 0,
|
||||
"bitrate at line %i should be a positive integer",
|
||||
param->line);
|
||||
param.line);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -111,7 +111,7 @@ TwolameEncoder::Configure(const config_param *param, GError **error)
|
|||
}
|
||||
|
||||
static Encoder *
|
||||
twolame_encoder_init(const struct config_param *param, GError **error_r)
|
||||
twolame_encoder_init(const config_param ¶m, GError **error_r)
|
||||
{
|
||||
g_debug("libtwolame version %s", get_twolame_version());
|
||||
|
||||
|
|
|
@ -62,9 +62,9 @@ vorbis_encoder_quark(void)
|
|||
|
||||
static bool
|
||||
vorbis_encoder_configure(struct vorbis_encoder *encoder,
|
||||
const struct config_param *param, GError **error)
|
||||
const config_param ¶m, GError **error)
|
||||
{
|
||||
const char *value = config_get_block_string(param, "quality", nullptr);
|
||||
const char *value = param.GetBlockValue("quality");
|
||||
if (value != nullptr) {
|
||||
/* a quality was configured (VBR) */
|
||||
|
||||
|
@ -76,26 +76,26 @@ vorbis_encoder_configure(struct vorbis_encoder *encoder,
|
|||
g_set_error(error, vorbis_encoder_quark(), 0,
|
||||
"quality \"%s\" is not a number in the "
|
||||
"range -1 to 10, line %i",
|
||||
value, param->line);
|
||||
value, param.line);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (config_get_block_string(param, "bitrate", nullptr) != nullptr) {
|
||||
if (param.GetBlockValue("bitrate") != nullptr) {
|
||||
g_set_error(error, vorbis_encoder_quark(), 0,
|
||||
"quality and bitrate are "
|
||||
"both defined (line %i)",
|
||||
param->line);
|
||||
param.line);
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
/* a bit rate was configured */
|
||||
|
||||
value = config_get_block_string(param, "bitrate", nullptr);
|
||||
value = param.GetBlockValue("bitrate");
|
||||
if (value == nullptr) {
|
||||
g_set_error(error, vorbis_encoder_quark(), 0,
|
||||
"neither bitrate nor quality defined "
|
||||
"at line %i",
|
||||
param->line);
|
||||
param.line);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -106,7 +106,7 @@ vorbis_encoder_configure(struct vorbis_encoder *encoder,
|
|||
if (*endptr != '\0' || encoder->bitrate <= 0) {
|
||||
g_set_error(error, vorbis_encoder_quark(), 0,
|
||||
"bitrate at line %i should be a positive integer",
|
||||
param->line);
|
||||
param.line);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -115,7 +115,7 @@ vorbis_encoder_configure(struct vorbis_encoder *encoder,
|
|||
}
|
||||
|
||||
static Encoder *
|
||||
vorbis_encoder_init(const struct config_param *param, GError **error)
|
||||
vorbis_encoder_init(const config_param ¶m, GError **error)
|
||||
{
|
||||
vorbis_encoder *encoder = new vorbis_encoder();
|
||||
|
||||
|
|
|
@ -83,7 +83,7 @@ fill_wave_header(struct wave_header *header, int channels, int bits,
|
|||
}
|
||||
|
||||
static Encoder *
|
||||
wave_encoder_init(gcc_unused const struct config_param *param,
|
||||
wave_encoder_init(gcc_unused const config_param ¶m,
|
||||
gcc_unused GError **error)
|
||||
{
|
||||
WaveEncoder *encoder = new WaveEncoder();
|
||||
|
|
|
@ -123,7 +123,7 @@ HttpdOutput::Configure(const config_param ¶m, GError **error_r)
|
|||
|
||||
/* initialize encoder */
|
||||
|
||||
encoder = encoder_init(*encoder_plugin, ¶m, error_r);
|
||||
encoder = encoder_init(*encoder_plugin, param, error_r);
|
||||
if (encoder == nullptr)
|
||||
return false;
|
||||
|
||||
|
|
|
@ -108,7 +108,7 @@ RecorderOutput::Configure(const config_param ¶m, GError **error_r)
|
|||
|
||||
/* initialize encoder */
|
||||
|
||||
encoder = encoder_init(*encoder_plugin, ¶m, error_r);
|
||||
encoder = encoder_init(*encoder_plugin, param, error_r);
|
||||
if (encoder == nullptr)
|
||||
return false;
|
||||
|
||||
|
|
|
@ -185,7 +185,7 @@ ShoutOutput::Configure(const config_param ¶m, GError **error_r)
|
|||
return false;
|
||||
}
|
||||
|
||||
encoder = encoder_init(*encoder_plugin, ¶m, error_r);
|
||||
encoder = encoder_init(*encoder_plugin, param, error_r);
|
||||
if (encoder == nullptr)
|
||||
return false;
|
||||
|
||||
|
|
|
@ -71,7 +71,7 @@ int main(int argc, char **argv)
|
|||
config_param param;
|
||||
param.AddBlockParam("quality", "5.0", -1);
|
||||
|
||||
const auto encoder = encoder_init(*plugin, ¶m, &error);
|
||||
const auto encoder = encoder_init(*plugin, param, &error);
|
||||
if (encoder == NULL) {
|
||||
g_printerr("Failed to initialize encoder: %s\n",
|
||||
error->message);
|
||||
|
|
|
@ -56,7 +56,7 @@ main(G_GNUC_UNUSED int argc, G_GNUC_UNUSED char **argv)
|
|||
config_param param;
|
||||
param.AddBlockParam("quality", "5.0", -1);
|
||||
|
||||
const auto encoder = encoder_init(*plugin, ¶m, NULL);
|
||||
const auto encoder = encoder_init(*plugin, param, NULL);
|
||||
assert(encoder != NULL);
|
||||
|
||||
/* open the encoder */
|
||||
|
|
Loading…
Reference in New Issue