diff options
Diffstat (limited to 'commands.c')
-rw-r--r-- | commands.c | 11 |
1 files changed, 9 insertions, 2 deletions
@@ -197,10 +197,17 @@ static void commands_get_mp3(GSocketConnection *connection, const gchar *cmd) { g_string_free(string, TRUE); - extern const struct decoder_plugin decoder_mpg123_decoder; + const struct decoder_plugin *decoder = decoder_find(path); extern const struct encoder_plugin encoder_lame_encoder; - transcode((GInputStream*)is, &decoder_mpg123_decoder, os, &encoder_lame_encoder); + if(decoder == NULL) { + g_warning("no suitable decoder found"); + goto commands_get_mp3_file_unref; + } else { + g_debug("using decoder %s", decoder->name); + } + + transcode((GInputStream*)is, decoder, os, &encoder_lame_encoder); commands_get_mp3_file_unref: |